36 lines
793 B
PHP
36 lines
793 B
PHP
<?php
|
|
|
|
namespace App\Observers;
|
|
|
|
use App\Models\UserFlight;
|
|
|
|
class FlightObserver
|
|
{
|
|
/**
|
|
* Recalculate after a flight is created.
|
|
*/
|
|
public function created(UserFlight $flight): void
|
|
{
|
|
$flight->user->calculateAchievements();
|
|
}
|
|
|
|
/**
|
|
* Recalculate after a flight is updated.
|
|
* Cabin class, flight type, airline, etc. may have changed,
|
|
* which could unlock or revoke achievements.
|
|
*/
|
|
public function updated(UserFlight $flight): void
|
|
{
|
|
$flight->user->calculateAchievements();
|
|
}
|
|
|
|
/**
|
|
* Recalculate after a flight is deleted.
|
|
* Previously earned achievements may no longer be valid.
|
|
*/
|
|
public function deleted(UserFlight $flight): void
|
|
{
|
|
$flight->user->calculateAchievements();
|
|
}
|
|
}
|