add some observers for logging purposes

This commit is contained in:
Matt Young 2025-07-05 23:43:42 -05:00
parent d21e568d60
commit ba55d75172
3 changed files with 131 additions and 0 deletions

View File

@ -0,0 +1,32 @@
<?php
namespace App\Observers;
use App\Models\Event;
class EventObserver
{
public function created(Event $event): void
{
$message = 'Added event '.$event->name;
$affected = ['events' => [$event->id]];
auditionLog($message, $affected);
}
public function updated(Event $event): void
{
$message = 'Renamed event '.$event->getOriginal('name').' to '.$event->name;
$affected = [
'events' => [$event->id],
'auditions' => $event->auditions->pluck('id')->toArray(),
];
auditionLog($message, $affected);
}
public function deleted(Event $event): void
{
$message = 'Removed event '.$event->name;
$affected = ['events' => [$event->id]];
auditionLog($message, $affected);
}
}

View File

@ -0,0 +1,33 @@
<?php
namespace App\Observers;
use App\Models\School;
class SchoolObserver
{
public function created(School $school): void
{
$message = 'Added school '.$school->name;
$message .= '<br>'.$school->address;
$message .= '<br>'.$school->city.', '.$school->state.' '.$school->zip;
$affected = ['schools' => [$school->id]];
auditionLog($message, $affected);
}
public function updated(School $school): void
{
$message = 'Updated school '.$school->name;
$message .= '<br>'.$school->address;
$message .= '<br>'.$school->city.', '.$school->state.' '.$school->zip;
$affected = ['schools' => [$school->id]];
auditionLog($message, $affected);
}
public function deleted(School $school): void
{
$message = 'Removed school '.$school->name;
$affected = ['schools' => [$school->id]];
auditionLog($message, $affected);
}
}

View File

@ -0,0 +1,66 @@
<?php
namespace App\Observers;
use App\Models\User;
class UserObserver
{
public function created(User $user): void
{
$message = 'Added User '.$user->full_name();
if ($user->school_id) {
$message .= '<br>School: '.$user->school->name;
}
$message .= '<br>Email: '.$user->email;
$message .= '<br>Phone: '.$user->cell_phone;
$message .= '<br>Judging Pref: '.$user->judging_preference;
$message .= '<br>Admin Privileges: '.$user->is_admin ? 'Yes' : 'No';
$message .= '<br>Tabulator Privileges: '.$user->is_tab ? 'Yes' : 'No';
$affected = ['users' => [$user->id]];
auditionLog($message, $affected);
}
public function updated(User $user): void
{
$message = 'Updated User '.$user->full_name().'< '.$user->getOriginal('email').' >';
if ($user->isDirty('school_id') && $user->school_id) {
$message .= '<br>School: '.$user->school->name;
}
if ($user->isDirty('school_id') && ! $user->school_id) {
$message .= '<br>School: NONE';
}
if ($user->isDirty('email')) {
$message .= '<br>Email: '.$user->email;
}
if ($user->isDirty('cell_phone')) {
$message .= '<br>Phone: '.$user->cell_phone;
}
if ($user->isDirty('judging_preference')) {
$message .= '<br>Judging Pref: '.$user->judging_preference;
}
if ($user->isDirty('is_admin')) {
$message .= '<br>Admin Privileges: '.($user->is_admin ? 'Yes' : 'No');
}
if ($user->isDirty('is_tab')) {
$message .= '<br>Tabulator Privileges: '.($user->is_tab ? 'Yes' : 'No');
}
$affected = ['users' => [$user->id]];
auditionLog($message, $affected);
}
public function deleted(User $user): void
{
$message = 'Removed User '.$user->full_name().' <'.$user->email.' >';
$affected = ['users' => [$user->id]];
auditionLog($message, $affected);
}
}