Files
timebank-cc-public/app/Observers/TransactionObserver.php
Ronald Huynen 2547717edb Initial commit
2026-03-23 21:37:59 +01:00

34 lines
837 B
PHP

<?php
namespace App\Observers;
use App\Models\Transaction;
use App\Services\CallCreditService;
class TransactionObserver
{
/**
* After a transaction is created, check if the spending profile
* still has sufficient credits. If not, pause all their active calls.
*/
public function created(Transaction $transaction): void
{
$fromAccount = $transaction->accountFrom;
if (!$fromAccount) {
return;
}
$accountable = $fromAccount->accountable;
if (!$accountable) {
return;
}
$profileType = get_class($accountable);
$profileId = $accountable->id;
if (!CallCreditService::profileHasCredits($profileType, $profileId)) {
CallCreditService::pauseAllActiveCalls($profileType, $profileId);
}
}
}