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/database/factories/AdAudienceFactory.php
<?php

namespace Database\Factories;

use App\Model\AdAudience;
use App\Model\AdPlatform;
use App\Model\Customer;
use Illuminate\Database\Eloquent\Factories\Factory;

class AdAudienceFactory extends Factory
{
    protected $model = AdAudience::class;

    public function definition(): array
    {
        return [
            'uid' => uniqid(),
            'customer_id' => Customer::factory(),
            'name' => 'Test Audience ' . uniqid(),
            'type' => AdAudience::TYPE_CUSTOM,
            'source_type' => AdAudience::SOURCE_MAIL_LIST,
            'platform' => AdPlatform::PLATFORMS[array_rand(AdPlatform::PLATFORMS)],
            'status' => AdAudience::STATUS_DRAFT,
            'sync_status' => AdAudience::SYNC_PENDING,
            'size_estimate' => mt_rand(100, 50000),
        ];
    }

    public function synced(): static
    {
        return $this->state(fn () => [
            'status' => AdAudience::STATUS_SYNCED,
            'sync_status' => AdAudience::SYNC_COMPLETED,
            'last_synced_at' => now()->subHours(2),
        ]);
    }

    public function lookalike(): static
    {
        return $this->state(fn () => [
            'type' => AdAudience::TYPE_LOOKALIKE,
            'settings' => ['similarity_percent' => 5, 'country' => 'US'],
        ]);
    }

    public function forCustomer(Customer $customer): static
    {
        return $this->state(fn () => ['customer_id' => $customer->id]);
    }
}