/
var
/
www
/
html
/
back
/
database
/
seeders
/
Upload File
HOME
<?php declare(strict_types=1); namespace Database\Seeders; use App\Domain\Project\Enums\ProjectStatusEnum; use App\Domain\Project\Requests\CreateProjectGroupRequest; use App\Domain\Project\Requests\CreateProjectRequest; use App\Domain\Project\Services\ProjectGroupService; use App\Domain\Project\Services\ProjectService; use App\Enums\ModelsEnum; use Illuminate\Database\Seeder; class ProjectSeeder extends Seeder { /** * Run the database seeds. */ public function run(): void { //Group seed /** @var ProjectGroupService $groupService */ $groupService = app()->make(ProjectGroupService::class); $groups = []; foreach (ModelsEnum::cases() as $case) { for ($i = 0; $i < 10; $i++) { $group = $groupService->create($case->value, new CreateProjectGroupRequest([ 'name' => 'Группа проектов ' . $case->value . '-' . ($i + 1) . '-' . $case->value ])); $groups[$case->value][] = $group->id; } } /** @var ProjectService $ProjectService */ $ProjectService = app()->make(ProjectService::class); foreach (ModelsEnum::cases() as $case) { for ($i = 0; $i < 10; $i++) { $ProjectService->create($case->value, new CreateProjectRequest([ 'project_group_id' => fake()->randomElement(array_merge($groups[$case->value], [null])), 'status' => fake()->randomElement([ ProjectStatusEnum::PROJECT_STATUS_ACTIVE->value, ProjectStatusEnum::PROJECT_STATUS_FINISHED->value, ]), 'offer_number' => 'Договор № ' . random_int(1000, 9999) . ' от ' . fake()->date('Y/m/d'), 'object_address' => fake()->address(), 'short_description' => 'Короткое описание для ' . $case->value . '-' . ($i + 1) . '-' . $case->value, 'description' => 'Длинное описание для ' . $case->value . '-' . ($i + 1) . '-' . $case->value, ])); } } } }