49 lines
2.1 KiB
PHP
49 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace App\Observers;
|
|
|
|
use App\Models\Audition;
|
|
use App\Models\Event;
|
|
|
|
class AuditionObserver
|
|
{
|
|
public function created(Audition $audition): void
|
|
{
|
|
$message = 'Added audition #'.$audition->id.' '.$audition->name.' to event '.$audition->event->name;
|
|
$message .= '<br>Deadline: '.$audition->entry_deadline->format('m/d/Y');
|
|
$message .= '<br>Entry Fee: '.$audition->display_fee();
|
|
$message .= '<br>Grade Range: '.$audition->minimum_grade.' - '.$audition->maximum_grade;
|
|
$affected = ['auditions' => [$audition->id], 'events' => [$audition->event_id]];
|
|
auditionLog($message, $affected);
|
|
}
|
|
|
|
public function updated(Audition $audition): void
|
|
{
|
|
$message = 'Updated audition #'.$audition->getOriginal('name').' '.$audition->name;
|
|
if ($audition->event_id !== $audition->getOriginal('event_id')) {
|
|
$message .= '<br>Event: '.Event::find($audition->getOriginal('event_id'))->name.' -> '.Event::find($audition->event_id)->name;
|
|
$affected['events'] = [$audition->event_id, $audition->getOriginal('event_id')];
|
|
} else {
|
|
$affected['auditions'] = [$audition->id];
|
|
}
|
|
if ($audition->entry_deadline !== $audition->getOriginal('entry_deadline')) {
|
|
$message .= '<br>Deadline: '.$audition->entry_deadline->format('m/d/Y');
|
|
}
|
|
if ($audition->entryFee !== $audition->getOriginal('entryFee')) {
|
|
$message .= '<br>Entry Fee: '.$audition->display_fee();
|
|
}
|
|
if ($audition->minimum_grade !== $audition->getOriginal('minimum_grade') || $audition->maximum_grade !== $audition->getOriginal('maximum_grade')) {
|
|
$message .= '<br>Grade Range: '.$audition->minimum_grade.' - '.$audition->maximum_grade;
|
|
}
|
|
$affected['auditions'] = [$audition->id];
|
|
auditionLog($message, $affected);
|
|
}
|
|
|
|
public function deleted(Audition $audition): void
|
|
{
|
|
$message = 'Deleted audition #'.$audition->id.' '.$audition->name;
|
|
$affected = ['auditions' => [$audition->id]];
|
|
auditionLog($message, $affected);
|
|
}
|
|
}
|