55 lines
1.7 KiB
PHP
55 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Database\Factories;
|
|
|
|
use App\Enums\Promotions\PromotionSourceEnum;
|
|
use App\Enums\Promotions\PromotionTargetEnum;
|
|
use App\Enums\Promotions\PromotionAngleEnum;
|
|
use App\Enums\Promotions\PromotionEventEnum;
|
|
use App\Models\Brand;
|
|
use App\Models\Promo;
|
|
use App\Models\PromoDistributionNetwork;
|
|
use App\Models\PromoType;
|
|
use App\Models\User;
|
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
|
|
|
/**
|
|
* @extends Factory<\App\Models\Promo>
|
|
*/
|
|
final class PromoFactory extends Factory
|
|
{
|
|
/**
|
|
* The name of the factory's corresponding model.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $model = Promo::class;
|
|
|
|
/**
|
|
* Define the model's default state.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function definition(): array
|
|
{
|
|
return [
|
|
'user_id' => fake()->randomElement(User::pluck('id')),
|
|
'promo_type_id' => fake()->randomElement(PromoType::pluck('id')),
|
|
'promo_distribution_network_id' => fake()->randomElement(PromoDistributionNetwork::pluck('id')),
|
|
'brand_id' => fake()->randomElement(Brand::pluck('id')),
|
|
'date' => fake()->dateTime(),
|
|
'source' => \collect(PromotionSourceEnum::cases())->random(),
|
|
'shop_name' => fake()->word,
|
|
'shop_city' => fake()->word,
|
|
'sector_chief' => fake()->word,
|
|
'name' => fake()->word,
|
|
'target' => \collect(PromotionTargetEnum::cases())->random(),
|
|
'angle' => \collect(PromotionAngleEnum::cases())->random(),
|
|
'event' => \collect(PromotionEventEnum::cases())->random(),
|
|
'url' => fake()->url,
|
|
'press' => fake()->word,
|
|
'fair' => fake()->word,
|
|
'deleted_at' => fake()->dateTime(),
|
|
];
|
|
}
|
|
}
|