WorkbookSeeder.php
1 <?php 2 3 namespace Database\Seeders; 4 5 use App\Models\Norm; 6 use App\Models\NormGroup; 7 use Illuminate\Database\Seeder; 8 9 class WorkbookSeeder extends Seeder 10 { 11 /** 12 * Run the database seeds. 13 * 14 * @return void 15 */ 16 public function run() 17 { 18 $this->seedLinceWorkbooks(); 19 $this->seedCCWorkbooks(); 20 } 21 22 public function seedLinceWorkbooks() 23 { 24 NormGroup::whereName("LINCE") 25 ->first() 26 ->norms 27 ->each(function ($norm) { 28 $norm->workbooks()->createMany([ 29 ['name' => 'MEB'], 30 ['name' => 'MCF'], 31 ['name' => 'MEC'], 32 ]); 33 }); 34 } 35 36 public function seedCCWorkbooks() 37 { 38 $workbooksPerVersion = [ 39 'v3.1R5' => [ 40 "aco_cor.1", 41 "aco_dev.1", 42 "aco_dev.2", 43 "aco_dev.3", 44 "aco_rel.1", 45 "aco_rel.2", 46 "aco_ctt.1", 47 "aco_ctt.2", 48 "aco_vul.1", 49 "aco_vul.2", 50 "aco_vul.3", 51 "adv_arc.1", 52 "adv_fsp.1", 53 "adv_fsp.2", 54 "adv_fsp.3", 55 "adv_fsp.4", 56 "adv_fsp.5", 57 "adv_fsp.6", 58 "adv_imp.1", 59 "adv_imp.2", 60 "adv_int.1", 61 "adv_int.2", 62 "adv_int.3", 63 "adv_spm.1", 64 "adv_tds.1", 65 "adv_tds.2", 66 "adv_tds.3", 67 "adv_tds.4", 68 "adv_tds.5", 69 "adv_tds.6", 70 "agd_ope.1", 71 "agd_pre.1", 72 "alc_cmc.1", 73 "alc_cmc.2", 74 "alc_cmc.3", 75 "alc_cmc.4", 76 "alc_cmc.5", 77 "alc_cms.1", 78 "alc_cms.2", 79 "alc_cms.3", 80 "alc_cms.4", 81 "alc_cms.5", 82 "alc_del.1", 83 "alc_dvs.1", 84 "alc_dvs.2", 85 "alc_flr.1", 86 "alc_flr.2", 87 "alc_flr.3", 88 "alc_lcd.1", 89 "alc_lcd.2", 90 "alc_tat.1", 91 "alc_tat.2", 92 "alc_tat.3", 93 "ape_int.1", 94 "ape_ccl.1", 95 "ape_spd.1", 96 "ape_obj.1", 97 "ape_obj.2", 98 "ape_ecd.1", 99 "ape_req.1", 100 "ape_req.2", 101 "ace_int.1", 102 "ace_ccl.1", 103 "ace_spd.1", 104 "ace_obj.1", 105 "ace_ecd.1", 106 "ace_req.1", 107 "ace_mco.1", 108 "ace_cco.1", 109 "ase_int.1", 110 "ase_ccl.1", 111 "ase_spd.1", 112 "ase_obj.1", 113 "ase_obj.2", 114 "ase_ecd.1", 115 "ase_req.1", 116 "ase_req.2", 117 "ase_tss.1", 118 "ase_tss.2", 119 "ate_cov.1", 120 "ate_cov.2", 121 "ate_cov.3", 122 "ate_dpt.1", 123 "ate_dpt.2", 124 "ate_dpt.3", 125 "ate_dpt.4", 126 "ate_fun.1", 127 "ate_fun.2", 128 "ate_ind.1", 129 "ate_ind.2", 130 "ate_ind.3", 131 "ava_van.1", 132 "ava_van.2", 133 "ava_van.3", 134 "ava_van.4", 135 "ava_van.5", 136 ], 137 '2022 R1' => [ 138 "ace_ccl.1", 139 "ace_cco.1", 140 "ace_ecd.1", 141 "ace_int.1", 142 "ace_mco.1", 143 "ace_obj.1", 144 "ace_obj.2", 145 "ace_req.1", 146 "ace_req.2", 147 "ace_spd.1", 148 "aco_cor.1", 149 "aco_ctt.1", 150 "aco_ctt.2", 151 "aco_dev.1", 152 "aco_dev.2", 153 "aco_dev.3", 154 "aco_rel.1", 155 "aco_rel.2", 156 "aco_vul.1", 157 "aco_vul.2", 158 "aco_vul.3", 159 "adv_arc.1", 160 "adv_comp.1", 161 "adv_fsp.1", 162 "adv_fsp.2", 163 "adv_fsp.3", 164 "adv_fsp.4", 165 "adv_fsp.5", 166 "adv_fsp.6", 167 "adv_imp.1", 168 "adv_imp.2", 169 "adv_int.1", 170 "adv_int.2", 171 "adv_int.3", 172 "adv_spm.1", 173 "adv_tds.1", 174 "adv_tds.2", 175 "adv_tds.3", 176 "adv_tds.4", 177 "adv_tds.5", 178 "adv_tds.6", 179 "agd_ope.1", 180 "agd_pre.1", 181 "alc_cmc.1", 182 "alc_cmc.2", 183 "alc_cmc.3", 184 "alc_cmc.4", 185 "alc_cmc.5", 186 "alc_cms.1", 187 "alc_cms.2", 188 "alc_cms.3", 189 "alc_cms.4", 190 "alc_cms.5", 191 "alc_comp.1", 192 "alc_del.1", 193 "alc_dvs.1", 194 "alc_dvs.2", 195 "alc_flr.1", 196 "alc_flr.2", 197 "alc_flr.3", 198 "alc_lcd.1", 199 "alc_lcd.2", 200 "alc_tat.1", 201 "alc_tat.2", 202 "alc_tat.3", 203 "alc_tda.1", 204 "alc_tda.2", 205 "alc_tda.3", 206 "ape_ccl.1", 207 "ape_ecd.1", 208 "ape_int.1", 209 "ape_obj.1", 210 "ape_obj.2", 211 "ape_req.1", 212 "ape_req.2", 213 "ape_spd.1", 214 "ase_ccl.1", 215 "ase_comp.1", 216 "ase_ecd.1", 217 "ase_int.1", 218 "ase_obj.1", 219 "ase_obj.2", 220 "ase_req.1", 221 "ase_req.2", 222 "ase_spd.1", 223 "ase_tss.1", 224 "ase_tss.2", 225 "ate_comp.1", 226 "ate_cov.1", 227 "ate_cov.2", 228 "ate_cov.3", 229 "ate_dpt.1", 230 "ate_dpt.2", 231 "ate_dpt.3", 232 "ate_dpt.4", 233 "ate_fun.1", 234 "ate_fun.2", 235 "ate_ind.1", 236 "ate_ind.2", 237 "ate_ind.3", 238 "ava_comp.1", 239 "ava_van.1", 240 "ava_van.2", 241 "ava_van.3", 242 "ava_van.4", 243 "ava_van.5", 244 ] 245 ]; 246 247 $group = NormGroup::whereName("Common Criteria")->first(); 248 foreach ($workbooksPerVersion as $version => $workbooks) { 249 $norm = Norm::where('version', $version)->where('norm_group_id', $group->id)->first(); 250 $newArray = []; 251 foreach ($workbooks as $item) { 252 $newArray[] = ['name' => strtoupper($item)]; 253 } 254 if ($norm) { 255 $norm->workbooks()->createMany($newArray); 256 } 257 } 258 } 259 }