truncate(); DB::table('nomination_ensembles')->truncate(); DB::statement('SET FOREIGN_KEY_CHECKS=1;'); // Create First Year Ensemble $ensemble = new NominationEnsemble(); $ensemble->name = 'First Year Band'; $ensemble->entry_deadline = '2028-01-01'; $ensemble->minimum_grade = 5; $ensemble->maximum_grade = 8; $instruments = [ 'Flute', 'Oboe', 'Bassoon', 'Clarinet', 'Bass Clarinet', 'Contra Clarinet', 'Alto Sax', 'Tenor Sax', 'Bari Sax', 'Trumpet', 'Horn', 'Trombone', 'Euphonium', 'Tuba', 'String Bass', 'Percussion', ]; $data = [ 'instruments' => $instruments, 'target_size' => 100, 'max_nominations' => 10, 'rounding_direction' => 'up', ]; $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, 'optional_data' => ['shirt_size' => $faker->randomElement(['S', 'M', 'L', 'XL', '2XL'])], ]); $n = 1; foreach ($students as $student) { $nomData = [ 'rank' => $n, 'instrument' => $faker->randomElement($instruments), ]; NominationEnsembleEntry::create([ 'student_id' => $student->id, 'nomination_ensemble_id' => $ensemble->id, 'data' => $nomData, ]); $n++; } } } }