%PDF- %PDF-
Direktori : /var/www/html/geotechnics/api/database/seeds/ |
Current File : /var/www/html/geotechnics/api/database/seeds/ProjectsTableSeeder.php |
<?php use App\Models\Project; use Illuminate\Database\Seeder; class ProjectsTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { //DRAFT factory(Project::class, 10) ->make([]) ->each(function (Project $project) { $this->draftProject($project); }); //WAITING FOR REVIEW factory(Project::class, 10) ->make([]) ->each(function (Project $project) { $this->draftProject($project); $project->requestQuotation(); }); //ACCEPTED QUOTATIONS factory(Project::class, 10) ->make([]) ->each(function (Project $project) { $this->draftProject($project); $project->requestQuotation(); $manager = \App\Models\User::query() ->whereHas('roles') ->orderByRaw('RAND()') ->first(); $project->acceptQuotation($manager->id); $project->save(); }); //REJECTED QUOTATIONS factory(Project::class, 10) ->make([]) ->each(function (Project $project) { $this->draftProject($project); $project->requestQuotation(); $reason = \App\Models\Category::query() ->orderByRaw('RAND()') ->first(); $project->rejectQuotation($reason); }); //IN PROGRESS PROJECTS factory(Project::class, 10) ->make([]) ->each(function (Project $project) { $this->draftProject($project); $project->requestQuotation(); $manager = \App\Models\User::query() ->whereHas('roles') ->orderByRaw('RAND()') ->first(); $project->acceptQuotation($manager->id); $project->updateProgress(rand(1, 1000)); $project->updateProgress(rand(1, 1000)); }); //FINISHED PROJECTS factory(Project::class, 10) ->make([]) ->each(function (Project $project) { $this->draftProject($project); $project->requestQuotation(); $manager = \App\Models\User::query() ->whereHas('roles') ->orderByRaw('RAND()') ->first(); $project->acceptQuotation($manager->id); $project->updateProgress(rand(1, 1000)); $project->markAsDone(); }); } private function draftProject(Project $project) { $client = \App\Models\User::query() ->whereDoesntHave('roles') ->orderByRaw('RAND()') ->first(); $project->client() ->associate($client); $service = \App\Models\Service::query() ->orderByRaw('RAND()') ->first(); $project->save(); $project->services() ->attach($service); $project->save(); } }