/ database / seeders / MeetCheckTemplateSeeder.php
MeetCheckTemplateSeeder.php
 1  <?php
 2  
 3  namespace Database\Seeders;
 4  
 5  use App\Enums\MeetTypeEnum;
 6  use App\Models\MeetCheckTemplate;
 7  use DB;
 8  use File;
 9  use Illuminate\Database\Console\Seeds\WithoutModelEvents;
10  use Illuminate\Database\Seeder;
11  
12  class MeetCheckTemplateSeeder extends Seeder
13  {
14      /**
15       * Run the database seeds.
16       *
17       * @return void
18       */
19      public function run()
20      {
21          $json = File::get('database/data/meet-checks.json');
22          $meetChecksTemplates = json_decode($json, true);
23          $data = [];
24  
25          foreach ($meetChecksTemplates as $key => $meetChecksTemplate) {
26              foreach ($meetChecksTemplate as $point => $value) {
27                  $values = [
28                      'point' => $point,
29                      'requirement' => is_array($value['requirement']) ? $this->handleArray($value['requirement']) : $value['requirement'],
30                      'rationale' => is_array($value['rationale']) ? $this->handleArray($value['rationale']) : $value['rationale'],
31                      'meet_type_id' => MeetTypeEnum::from($key)->value,
32                  ];
33                  array_push($data, $values);
34              }
35          }
36  
37          DB::table('meet_check_templates')->insert($data);
38      }
39  
40      private function handleArray($rationale)
41      {
42          return implode("\n", $rationale);
43      }
44  }