cleanup($options); } /** * @param $options array array of reset options - possible values are deleteRooms * removeAuditionsFromRoom unassignJudges * * @throws AuditionAdminException */ public function cleanup(array $options = []): true { if (! auth()->user() or ! auth()->user()->is_admin) { throw new AuditionAdminException('Only administrators may perform this action'); } // Delete all records in the audit_log_entries table AuditLogEntry::truncate(); AuditionFlag::truncate(); BonusScore::truncate(); CalculatedScore::truncate(); DoublerRequest::truncate(); EntryFlag::truncate(); ScoreSheet::truncate(); Seat::truncate(); JudgeAdvancementVote::truncate(); DB::table('entries')->delete(); NominationEnsembleEntry::truncate(); Student::query()->increment('grade'); if (in_array('deleteRooms', $options)) { DB::table('auditions')->update(['room_id' => null]); DB::table('auditions')->update(['order_in_room' => '0']); DB::table('room_user')->truncate(); DB::table('rooms')->delete(); } if (in_array('removeAuditionsFromRoom', $options)) { DB::table('auditions')->update(['room_id' => null]); DB::table('auditions')->update(['order_in_room' => '0']); } if (in_array('unassignJudges', $options)) { DB::table('room_user')->truncate(); } return true; } }