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]);
}
}