Add admin option to reset site.

This commit is contained in:
Matt Young 2025-05-29 22:11:08 -05:00
parent b5cb2a7870
commit 15e46e493a
1 changed files with 19 additions and 14 deletions

View File

@ -24,7 +24,7 @@ class YearEndCleanup
{ {
} }
public function __invoke(array $options = []): void public function __invoke(?array $options = []): void
{ {
$this->cleanup($options); $this->cleanup($options);
} }
@ -35,13 +35,16 @@ class YearEndCleanup
* *
* @throws AuditionAdminException * @throws AuditionAdminException
*/ */
public function cleanup(array $options = []): true public function cleanup(?array $options = []): true
{ {
if (! auth()->user() or ! auth()->user()->is_admin) { if (! auth()->user() or ! auth()->user()->is_admin) {
throw new AuditionAdminException('Only administrators may perform this action'); throw new AuditionAdminException('Only administrators may perform this action');
} }
$historian = new RecordHistoricalSeats;
$historian();
// Delete all records in the audit_log_entries table // Delete all records in the audit_log_entries table
AuditLogEntry::truncate(); AuditLogEntry::truncate();
AuditionFlag::truncate(); AuditionFlag::truncate();
@ -57,6 +60,7 @@ class YearEndCleanup
Student::query()->increment('grade'); Student::query()->increment('grade');
if (is_array($options)) {
if (in_array('deleteRooms', $options)) { if (in_array('deleteRooms', $options)) {
DB::table('auditions')->update(['room_id' => null]); DB::table('auditions')->update(['room_id' => null]);
DB::table('auditions')->update(['order_in_room' => '0']); DB::table('auditions')->update(['order_in_room' => '0']);
@ -72,6 +76,7 @@ class YearEndCleanup
if (in_array('unassignJudges', $options)) { if (in_array('unassignJudges', $options)) {
DB::table('room_user')->truncate(); DB::table('room_user')->truncate();
} }
}
return true; return true;