MeetsUsersSeeder.php
1 <?php 2 3 namespace Database\Seeders; 4 5 use App\Models\Company; 6 use App\Models\Document; 7 use App\Models\Entity; 8 use App\Models\Laboratory; 9 use App\Models\Meet; 10 use App\Models\Role; 11 use App\Models\TOE; 12 use App\Models\User; 13 use App\Models\UserType; 14 use Illuminate\Database\Seeder; 15 use Illuminate\Support\Facades\DB; 16 use Illuminate\Support\Facades\Hash; 17 use Illuminate\Support\Str; 18 19 class MeetsUsersSeeder extends Seeder 20 { 21 /** 22 * Run the database seeds. 23 * 24 * @return void 25 */ 26 public function run() 27 { 28 $documents = Document::where('name', 'like', 'ACT%')->get(); 29 30 for ($i = 0; $i <= 10; $i++) { 31 $userType = UserType::inRandomOrder()->first(); 32 $role = Role::inRandomOrder()->first(); 33 $entity = Entity::inRandomOrder()->first(); 34 $meet = Meet::inRandomOrder()->first(); 35 $user = User::create( 36 [ 37 'username' => fake()->userName(), 38 'password' => Hash::make(Str::lower(fake()->userName())), 39 'user_type_id' => $userType->id, 40 'personal_identification_number' => fake()->bothify('########?'), 41 'email' => fake()->email(), 42 'name' => fake()->name, 43 'internal_identification_number' => fake()->numerify('####'), 44 ] 45 )->assignRole($role->name); 46 DB::table('meet_user')->insert(['meet_id' => $meet->id, 'user_id' => $user->id]); 47 DB::table('entity_user')->insert(['user_id' => $user->id, 'entity_id' => $entity->id, 'role_id' => $role->id]); 48 49 foreach ($documents as $document) { 50 $laboratory = Laboratory::inRandomOrder()->first(); 51 $aplicant = Company::inRandomOrder()->first(); 52 $toe = TOE::inRandomOrder()->first(); 53 $document->update(['meet_id' => $meet->id]); 54 $document->head->update(['approved_by' => $user->id]); 55 $document->dossier->update(['laboratory_id' => $laboratory->id, 'applicant_id' => $aplicant->id, 'toe_id' => $toe->id]); 56 } 57 } 58 } 59 }