feat: complete reservation lifecycle

This commit is contained in:
2026-08-04 16:30:11 +01:00
parent 077015f17a
commit e667d05bc1
24 changed files with 1096 additions and 46 deletions

View File

@@ -0,0 +1,29 @@
<?php
namespace App\Console\Commands;
use App\Domain\Reservations\Services\ReservationService;
use App\Jobs\ExpirePendingReservations;
use Illuminate\Console\Command;
class ExpirePendingReservationsCommand extends Command
{
protected $signature = 'reservations:expire {--queue : Colocar a expiração na fila em vez de a executar agora}';
protected $description = 'Expira pré-reservas cujo prazo de aprovação terminou';
public function handle(ReservationService $reservations): int
{
if ($this->option('queue')) {
ExpirePendingReservations::dispatch();
$this->info('Expiração de pré-reservas colocada na fila.');
return self::SUCCESS;
}
$expired = $reservations->expirePending();
$this->info("{$expired} pré-reserva(s) expirada(s).");
return self::SUCCESS;
}
}