diff --git a/database/seeders/MeobdaNominationEnsembleAndEntrySeeder.php b/database/seeders/MeobdaNominationEnsembleAndEntrySeeder.php new file mode 100644 index 0000000..7f8025f --- /dev/null +++ b/database/seeders/MeobdaNominationEnsembleAndEntrySeeder.php @@ -0,0 +1,78 @@ +truncate(); + DB::table('nomination_ensembles')->truncate(); + DB::statement('SET FOREIGN_KEY_CHECKS=1;'); + + // Create First Year Ensemble + $ensemble = new NominationEnsemble(); + $ensemble->name = 'Fake Band'; + $ensemble->entry_deadline = '2028-01-01'; + $ensemble->minimum_grade = 5; + $ensemble->maximum_grade = 8; + $instrumentNames = [ + 'Flute', + 'Oboe', + 'Bassoon', + 'Clarinet', + 'Bass Clarinet', + 'Contra Clarinet', + 'Alto Sax', + 'Tenor Sax', + 'Bari Sax', + 'Trumpet', + 'Horn', + 'Trombone', + 'Euphonium', + 'Tuba', + 'String Bass', + 'Percussion', + ]; + foreach ($instrumentNames as $name) { + $instruments[] = [ + 'name' => $name, + 'max' => null, + ]; + } + $data = [ + 'instruments' => $instruments, + 'max_nominations' => 8, + 'split_names' => ['Fake Red', 'Fake Black'], + ]; + $ensemble->data = $data; + $ensemble->save(); + + // Fill the nominations table + $faker = Faker::create(); + $schools = School::all(); + foreach ($schools as $school) { + $students = Student::factory()->count(10)->create(['school_id' => $school->id, 'grade' => 5]); + foreach ($students as $student) { + $nomData = [ + 'instrument' => $faker->randomElement($instrumentNames), + ]; + NominationEnsembleEntry::create([ + 'student_id' => $student->id, + 'nomination_ensemble_id' => $ensemble->id, + 'data' => $nomData, + ]); + } + } + } +}