*/ final class ProductFactory extends Factory { /** * The name of the factory's corresponding model. * * @var string */ protected $model = Product::class; /** * Define the model's default state. * * @return array */ public function definition(): array { $source = \collect(SourceEnum::toArray())->random()->value; $catalogue = null; $fair = null; $shop = null; if ( $source === SourceEnum::showConsumer->value || $source === SourceEnum::showCustomer->value || $source === SourceEnum::showTrade->value ) { $fair = fake()->word; } elseif ($source === SourceEnum::magazin->value) { $shop = fake()->word; } elseif ($source === SourceEnum::catalogArgumentary->value) { $catalogue = fake()->word; } $isTasted = fake()->boolean; $claim = \collect(ClaimEnum::toArray())->random()->value; return [ 'user_id' => fake()->randomElement(User::pluck('id')), 'brand_id' => fake()->randomElement(Brand::pluck('id')), 'name' => fake()->unique()->word . " " . fake()->unique()->word, 'seen_at' => fake()->dateTime(), 'source' => $source, 'fair' => $fair, 'shop' => $shop, 'catalogue' => $catalogue, 'gencod' => fake()->numberBetween(0, 9999999999999), 'picture_alt' => fake()->text, 'picture_title' => fake()->text, 'docs' => [], 'url' => fake()->url, 'certification' => \collect(CertificationEnum::toArray())->random()->value, 'origins' => [\collect(OriginEnum::toArray())->random()->value], 'claims' => [$claim], 'specified_claim' => ($claim == OriginEnum::others->value) ? fake()->text : null, 'distribution_network' => \collect(DistributionNetworkEnum::toArray())->random()->value, 'ray' => \collect(RayEnum::toArray())->random()->value, 'product_range' => \collect(RangeEnum::toArray())->random()->value, 'geo_area' => \collect(GeoAreaEnum::toArray())->random()->value, 'weight' => fake()->randomNumber(), 'pvc' => fake()->randomNumber(), 'comment' => fake()->sentence(5), 'is_tasted' => $isTasted, 'tasters_number' => ($isTasted) ? fake()->numberBetween(0, 15) : null, 'deleted_at' => fake()->dateTime(), ]; } }