HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/ai.naniguide.com/app/Services/Ads/AdPixelService.php
<?php

namespace App\Services\Ads;

use App\Model\AdPixel;
use App\Model\LocalCustomer;

class AdPixelService
{
    public function create(LocalCustomer $customer, array $data): AdPixel
    {
        $pixel = new AdPixel();
        $pixel->uid = uniqid();
        $pixel->customer_id = $customer->id;
        $pixel->platform = $data['platform'];
        $pixel->pixel_id = $data['pixel_id'];
        if (isset($data['access_token']) && $data['access_token']) {
            $pixel->access_token = $data['access_token'];
        }
        $pixel->status = AdPixel::STATUS_ACTIVE;
        $pixel->save();

        AdActivityLogger::log(
            entity: $pixel,
            action: 'pixel.created',
            status: 'success',
            title: 'Tracking pixel created: ' . $pixel->pixel_id,
            platform: $pixel->platform,
        );

        return $pixel;
    }

    public function verify(AdPixel $pixel): bool
    {
        // Mock verification — in real impl this would ping platform API
        $pixel->last_verified_at = now();
        $pixel->save();

        AdActivityLogger::log(
            entity: $pixel,
            action: 'pixel.verified',
            status: 'success',
            title: 'Pixel verified: ' . $pixel->pixel_id,
            platform: $pixel->platform,
        );

        return true;
    }

    public function delete(AdPixel $pixel): void
    {
        $name = $pixel->pixel_id;
        $pixel->delete();

        AdActivityLogger::log(
            entity: new AdPixel(['customer_id' => 0]),
            action: 'pixel.deleted',
            status: 'info',
            title: 'Pixel deleted: ' . $name,
        );
    }
}