Set up logging for PrelimDefinitions

This commit is contained in:
Matt Young 2025-09-14 21:19:41 -05:00
parent 674374b6b6
commit 81b10220d6
2 changed files with 54 additions and 0 deletions

View File

@ -0,0 +1,51 @@
<?php
namespace App\Observers;
use App\Models\PrelimDefinition;
use App\Models\Room;
use App\Models\ScoringGuide;
class PrelimDefinitionObserver
{
/**
* Handle the PrelimDefinition "created" event.
*/
public function created(PrelimDefinition $prelimDefinition): void
{
$message = 'Created Prelim for '.$prelimDefinition->audition->name.'.';
$affected = ['auditions' => [$prelimDefinition->audition_id]];
auditionLog($message, $affected);
}
/**
* Handle the PrelimDefinition "updated" event.
*/
public function updated(PrelimDefinition $prelimDefinition): void
{
$message = 'Updated Prelim for '.$prelimDefinition->audition->name.'.';
if ($prelimDefinition->getOriginal('room_id') !== $prelimDefinition->room_id) {
$oldRoom = Room::find($prelimDefinition->getOriginal('room_id'));
$message .= '<br>Room: '.$oldRoom->name.' -> '.$prelimDefinition->room->name;
}
if ($prelimDefinition->getOriginal('scoring_guide_id') !== $prelimDefinition->scoring_guide_id) {
$oldScoringGuide = ScoringGuide::find($prelimDefinition->getOriginal('scoring_guide_id'));
$message .= '<br>Scoring Guide: '.$oldScoringGuide->name.' -> '.$prelimDefinition->scoringGuide->name;
}
if ($prelimDefinition->getOriginal('passing_score') !== $prelimDefinition->passing_score) {
$message .= '<br>Passing Score: '.$prelimDefinition->getOriginal('passing_score').' -> '.$prelimDefinition->passing_score;
}
auditionLog($message, ['auditions' => [$prelimDefinition->audition_id]]);
}
/**
* Handle the PrelimDefinition "deleted" event.
*/
public function deleted(PrelimDefinition $prelimDefinition): void
{
$message = 'Deleted Prelim for '.$prelimDefinition->audition->name.'.';
auditionLog($message, ['auditions' => [$prelimDefinition->audition_id]]);
}
}

View File

@ -12,6 +12,7 @@ use App\Models\BonusScore;
use App\Models\Entry;
use App\Models\EntryFlag;
use App\Models\Event;
use App\Models\PrelimDefinition;
use App\Models\School;
use App\Models\SchoolEmailDomain;
use App\Models\ScoreSheet;
@ -23,6 +24,7 @@ use App\Observers\BonusScoreObserver;
use App\Observers\EntryFlagObserver;
use App\Observers\EntryObserver;
use App\Observers\EventObserver;
use App\Observers\PrelimDefinitionObserver;
use App\Observers\SchoolEmailDomainObserver;
use App\Observers\SchoolObserver;
use App\Observers\ScoreSheetObserver;
@ -69,6 +71,7 @@ class AppServiceProvider extends ServiceProvider
EntryFlag::observe(EntryFlagObserver::class);
Event::observe(EventObserver::class);
School::observe(SchoolObserver::class);
PrelimDefinition::observe(PrelimDefinitionObserver::class);
SchoolEmailDomain::observe(SchoolEmailDomainObserver::class);
ScoreSheet::observe(ScoreSheetObserver::class);
ScoringGuide::observe(ScoringGuideObserver::class);