DossierSeeder.php
1 <?php 2 3 namespace Database\Seeders; 4 5 use App\Enums\RoleEnum; 6 use App\Http\Services\DossierService; 7 use App\Models\Certificate; 8 use App\Models\CertificateInfo; 9 use App\Models\ContactInfo; 10 use App\Models\Dossier; 11 use App\Models\Entity; 12 use App\Models\EntityUser; 13 use App\Models\Folder; 14 use App\Models\Norm; 15 use App\Models\Resolution; 16 use App\Models\Taxonomy; 17 use App\Models\User; 18 use Illuminate\Database\Seeder; 19 use Illuminate\Support\Facades\DB; 20 use Illuminate\Support\Str; 21 22 class DossierSeeder extends Seeder 23 { 24 /** 25 * Seed the application's database. 26 * 27 * @return void 28 */ 29 public function run() 30 { 31 $userId = User::first()->id; 32 33 $entity = Entity::create([ 34 'entity_type_id' => 3, 35 'code' => 345, 36 'name' => 'Samsung', 37 'nif' => Str::random(25), 38 'legal_name' => 'Samsung Inc.', 39 ]); 40 41 ContactInfo::factory()->for($entity, 'contactable')->create(); 42 43 44 $norm = Norm::where('version', 'v3.1R5')->first(); 45 $taxonomy = Taxonomy::inRandomOrder()->first(); 46 $dossierOne = Dossier::create([ 47 'code_year' => 2021, 48 'code_seq' => DossierService::getNextCodeByYear(2021), 49 'dossier_type_id' => $taxonomy->dossier_type_id, 50 'dossier_status_id' => 2, 51 'toe_id' => 1, 52 'laboratory_id' => 1, 53 'norm_id' => $norm->id, 54 'norm_scope_id' => $norm->scopes->first()->id, 55 'principal_certifier_id' => User::where('name', 'worker')->first()->id, 56 ]); 57 $dossierOne->toe->st()->associate(1); 58 $certificate = Certificate::factory()->for($dossierOne, 'dossier')->create(); 59 CertificateInfo::factory()->for($dossierOne, 'dossier')->for($certificate)->create(); 60 61 Resolution::factory()->create([ 62 'dossier_id' => $dossierOne->id 63 ]); 64 65 Dossier::all()->each(function ($dossier) { 66 DossierService::createFolders($dossier->id, User::first()->id); 67 }); 68 69 DossierService::addTaxonomy($dossierOne, $taxonomy); 70 71 if (app()->environment('local', 'testing')) { 72 $dossier = Dossier::first(); 73 $normRandom = Norm::first(); 74 75 $dossier->norm_id = $normRandom->id; 76 $dossier->save(); 77 } 78 } 79 }