diff --git a/app/Models/BonusScore.php b/app/Models/BonusScore.php index 0423629..ece28cb 100644 --- a/app/Models/BonusScore.php +++ b/app/Models/BonusScore.php @@ -4,11 +4,28 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Support\Facades\Cache; class BonusScore extends Model { protected $guarded = []; + protected static function boot() + { + parent::boot(); + static::created(function ($bonusScore) { + $bonusScore->deleteRelatedCalculatedScores(); + }); + + static::updated(function ($bonusScore) { + $bonusScore->deleteRelatedCalculatedScores(); + }); + + static::deleted(function ($bonusScore) { + $bonusScore->deleteRelatedCalculatedScores(); + }); + } + public function entry(): BelongsTo { return $this->belongsTo(Entry::class); @@ -23,4 +40,16 @@ class BonusScore extends Model { return $this->belongsTo(Entry::class, 'originally_scored_entry'); } + + public function deleteRelatedCalculatedScores(): void + { + $entry = $this->entry; + if ($entry) { + $entry->calculatedScores()->delete(); + Cache::forget('entryScore-'.$entry->id.'-seating'); + Cache::forget('entryScore-'.$entry->id.'-advancement'); + Cache::forget('audition'.$entry->audition_id.'seating'); + Cache::forget('audition'.$entry->audition_id.'advancement'); + } + } }