ldc-startcoq/database/factories/ProductFactory.php
Jérémy Munsch f43ea7c9ff
phpcs fixes
2023-09-11 12:22:32 +02:00

85 lines
3 KiB
PHP

<?php
namespace Database\Factories;
use App\Enums\Products\CertificationEnum;
use App\Enums\Products\ClaimEnum;
use App\Enums\Products\DistributionNetworkEnum;
use App\Enums\Products\GeoAreaEnum;
use App\Enums\Products\OriginEnum;
use App\Enums\Products\RangeEnum;
use App\Enums\Products\RayEnum;
use App\Enums\Products\SourceEnum;
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
{
$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(),
];
}
}