ldc-startcoq/database/factories/ProductFactory.php
2023-02-28 16:38:05 +01:00

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