cleanup(); } /** * @param $options array array of reset options - possible values are deleteRooms * removeAuditionsFromRoom unassignJudges * * @throws AuditionAdminException */ public function cleanup($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(); if (in_array('deleteRooms', $options)) { DB::table('auditions')->update(['room_id' => null]); DB::table('auditions')->update(['order_in_room' => null]); DB::table('room_judges')->truncate(); DB::table('rooms')->truncate(); } if (in_array('removeAuditionsFromRoom', $options)) { DB::table('auditions')->update(['room_id' => null]); DB::table('auditions')->update(['order_in_room' => null]); } if (in_array('unassignJudges', $options)) { DB::table('room_judges')->truncate(); } return true; } }