diff --git a/app/Observers/EntryObserver.php b/app/Observers/EntryObserver.php index c18ec21..72268bc 100644 --- a/app/Observers/EntryObserver.php +++ b/app/Observers/EntryObserver.php @@ -2,8 +2,8 @@ namespace App\Observers; -use App\Events\AuditionChange; -use App\Events\EntryChange; +use App\Models\Audition; +use App\Models\Doubler; use App\Models\Entry; class EntryObserver @@ -13,6 +13,16 @@ class EntryObserver */ public function created(Entry $entry): void { + // Count how many entries the student has for the event + $count = $entry->student->entriesForEvent($entry->audition->event_id)->count(); + + // If less than two entries, they're not a doubler + if ($count < 2) { + return; + } + + // Update doublers for the event + Doubler::syncForEvent($entry->audition->event_id); } @@ -21,7 +31,12 @@ class EntryObserver */ public function updated(Entry $entry): void { - + // Update doubler table when an entry is updated + Doubler::syncForEvent($entry->audition->event_id); + if ($entry->wasChanged('audition_id')) { + $originalData = $entry->getOriginal(); + Doubler::syncForEvent($originalData->audition->event_id); + } } /** @@ -29,7 +44,9 @@ class EntryObserver */ public function deleted(Entry $entry): void { - + Doubler::where('student_id', $entry->student_id)->delete(); + $audition = Audition::where('id', $entry->audition_id)->first(); + Doubler::syncForEvent($audition->event_id); } /**