<?php

namespace App\Support;

readonly class CatalogGoogleConversion
{
    /**
     * @param  array<string, mixed>  $payload
     */
    public function __construct(
        public string $accountId,
        public string $sendTo,
        public array $payload,
    ) {}

    public static function fromSendTo(?string $sendTo): ?self
    {
        $sendTo = trim((string) $sendTo);

        if (! PromptLandingPagePixels::isGoogleSendTo($sendTo)) {
            return null;
        }

        $accountId = PromptLandingPagePixels::googleAccountId($sendTo);

        if ($accountId === null || ! PromptLandingPagePixels::isSafeId($accountId)) {
            return null;
        }

        return new self($accountId, $sendTo, ['send_to' => $sendTo]);
    }
}
