/ database / seeders / MeetsUsersSeeder.php
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  }