64 lines
2.1 KiB
PHP
64 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace Database\Factories;
|
|
|
|
use App\Enums\Products\ProductSourceEnum;
|
|
use App\Enums\Products\ProductCertificationEnum;
|
|
use App\Enums\Products\ProductDistributionNetworkEnum;
|
|
use App\Enums\Products\ProductRayEnum;
|
|
use App\Enums\Products\ProductRangeEnum;
|
|
use App\Enums\Products\ProductGeoAreaEnum;
|
|
use App\Models\Brand;
|
|
use App\Models\Product;
|
|
use App\Models\User;
|
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
|
|
|
/**
|
|
* @extends Factory<\App\Models\Product>
|
|
*/
|
|
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
|
|
{
|
|
return [
|
|
'user_id' => fake()->randomElement(User::pluck('id')),
|
|
'brand_id' => fake()->randomElement(Brand::pluck('id')),
|
|
'name' => fake()->word,
|
|
'entry_date' => fake()->dateTime(),
|
|
'source' => \collect(ProductSourceEnum::cases())->random(),
|
|
'fair' => fake()->word,
|
|
'shop' => fake()->word,
|
|
'catalogue' => fake()->word,
|
|
'gencod' => fake()->word,
|
|
'picture' => fake()->word,
|
|
'docs' => fake()->text,
|
|
'url' => fake()->url,
|
|
'certification' => \collect(ProductCertificationEnum::cases())->random(),
|
|
'origins' => fake()->word,
|
|
'claims' => fake()->word,
|
|
'specified_claim' => fake()->word,
|
|
'distribution_network' => \collect(ProductDistributionNetworkEnum::cases())->random(),
|
|
'ray' => \collect(ProductRayEnum::cases())->random(),
|
|
'product_range' => \collect(ProductRangeEnum::cases())->random(),
|
|
'geo_area' => \collect(ProductGeoAreaEnum::cases())->random(),
|
|
'weight' => fake()->randomNumber(),
|
|
'pvc' => fake()->randomNumber(),
|
|
'comment' => fake()->word,
|
|
'is_tasted' => fake()->boolean,
|
|
'tasters_number' => fake()->numberBetween(0, 15),
|
|
'deleted_at' => fake()->dateTime(),
|
|
];
|
|
}
|
|
}
|