forked from eatvio/eatvio-infra
80 lines
2.7 KiB
PHP
Executable File
80 lines
2.7 KiB
PHP
Executable File
<?php
|
|
|
|
namespace Database\Factories;
|
|
|
|
use FakerRestaurant\Provider\en_US\Restaurant;
|
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
|
use Illuminate\Http\UploadedFile;
|
|
use Illuminate\Support\Facades\Storage;
|
|
|
|
/**
|
|
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Plan>
|
|
*/
|
|
class PlanFactory extends Factory
|
|
{
|
|
/**
|
|
* Define the model's default state.
|
|
*
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function definition(): array
|
|
{
|
|
|
|
$faker = \Faker\Factory::create();
|
|
$this->faker->addProvider(new Restaurant($faker));
|
|
|
|
$active = $this->faker->boolean();
|
|
|
|
$typeBody = [
|
|
'fit' => $this->faker->boolean(),
|
|
'slim' => $this->faker->boolean(),
|
|
'behavior' => $this->faker->boolean(),
|
|
'wellness' => $this->faker->boolean(),
|
|
];
|
|
|
|
$wrongTypeBody = json_encode($typeBody);
|
|
|
|
$packetsOptions1 = [
|
|
'items' => [$this->faker->fruitName(), $this->faker->meatName(), $this->faker->sauceName()],
|
|
'price' => $this->faker->randomNumber(),
|
|
'short' => $this->faker->foodName(),
|
|
'description' => $this->faker->text(),
|
|
];
|
|
|
|
|
|
$packetsOptions2 = [
|
|
'items' => [$this->faker->fruitName(), $this->faker->meatName(), $this->faker->sauceName()],
|
|
'price' => $this->faker->randomNumber(),
|
|
'short' => $this->faker->foodName(),
|
|
'description' => $this->faker->text(),
|
|
];
|
|
|
|
|
|
$packetsOptions3 = [
|
|
'items' => [$this->faker->fruitName(), $this->faker->meatName(), $this->faker->sauceName()],
|
|
'price' => $this->faker->randomNumber(),
|
|
'short' => $this->faker->foodName(),
|
|
'description' => $this->faker->text(),
|
|
];
|
|
|
|
Storage::fake('plans');
|
|
$file = UploadedFile::fake()->image('plan.png');
|
|
$fileLocalPath = $file->store('plans', 'public');
|
|
|
|
return [
|
|
'name' => $this->faker->foodName(),
|
|
// 'image' => UploadedFile::fake()->image('plans/Photo_C.png'),
|
|
'image' => $fileLocalPath,
|
|
'duration' => $this->faker->randomElement([7, 14, 21]),
|
|
'state' => $this->faker->randomElement(['active', 'draft', 'unactive']),
|
|
//'type' => $this->faker->randomElement([$typeBody, $wrongTypeBody]),
|
|
'type' => $typeBody,
|
|
'details' => $this->faker->text(),
|
|
'packets_count' => $this->faker->randomElement([1, 3]),
|
|
'packet1_options' => $packetsOptions1,
|
|
'packet2_options' => $active ? $packetsOptions2 : '',
|
|
'packet3_options' => $active ? $packetsOptions3 : '',
|
|
];
|
|
}
|
|
}
|