NotificationSeeder.php
1 <?php 2 3 namespace Database\Seeders; 4 5 use App\Models\Company; 6 use App\Models\Document; 7 use App\Models\Expert; 8 use App\Models\Laboratory; 9 use App\Models\Notification; 10 use App\Models\TOE; 11 use App\Models\User; 12 use App\Models\UserType; 13 use Illuminate\Database\Seeder; 14 use Illuminate\Support\Facades\DB; 15 use Illuminate\Support\Facades\Hash; 16 use Illuminate\Support\Str; 17 18 class NotificationSeeder extends Seeder 19 { 20 /** 21 * Run the database seeds. 22 * 23 * @return void 24 */ 25 public function run() 26 { 27 $documents = Document::where('name', 'like', 'NOT%')->get(); 28 $documentExt = Document::where('name', 'like', 'EXT%')->get()[0]; 29 30 foreach ($documents as $document) { 31 $revision = $document->head; 32 33 Notification::create([ 34 'dossier_id' => 1, 35 'revision_id' => $revision->id, 36 'notificated_report_id' => $documentExt->id, 37 ]); 38 39 $document->dossier->update([ 40 'toe_id' => TOE::first()->id, 41 'applicant_id' => Company::first()->id, 42 'laboratory_id' => Laboratory::first()->id, 43 'description' => fake()->sentence(), 44 'principal_certifier_id' => User::first()->id, 45 ]); 46 47 $document->head->update([ 48 'approved_by' => User::first()->id, 49 ]); 50 51 $expert = Expert::factory()->create(); 52 $userType = UserType::inRandomOrder()->first(); 53 $user = User::create([ 54 'username' => fake()->userName(), 55 'password' => Hash::make(Str::lower(fake()->userName())), 56 'user_type_id' => $userType->id, 57 'personal_identification_number' => fake()->bothify('########?'), 58 'email' => fake()->email(), 59 'name' => fake()->name, 60 'internal_identification_number' => fake()->numerify('####'), 61 ]); 62 63 DB::table('user_dossier')->insert([ 64 'user_id' => $user->id, 65 'dossier_id' => $document->dossier->id, 66 'external' => fake()->boolean(), 67 ]); 68 69 DB::table('expert_dossier')->insert([ 70 'expert_id' => $expert->id, 71 'dossier_id' => $document->dossier->id, 72 ]); 73 } 74 75 // original_name => {fecha americana}_{nombre del dossier}_{nombre del informe}_v-{version}.zip 76 // EXAMPLE = 2021-01-01_2021-01_informe_ATE_v1.0.zip 77 } 78 }