feat(cart): expire abandoned stock reservations

This commit is contained in:
2026-08-19 13:48:09 -03:00
parent fdf0f3328f
commit 093e894cc3
4 changed files with 187 additions and 0 deletions

View File

@@ -1,5 +1,6 @@
<?php
use App\Domains\Cart\Services\ExpireCartReservationsService;
use App\Domains\Purchase\Services\CheckoutService;
use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;
@@ -16,6 +17,17 @@ Artisan::command('purchases:expire', function (): void {
$this->info("Expired purchases: {$expiredCount}");
})->purpose('Release stock reservations from expired purchases');
Artisan::command('carts:expire', function (): void {
$expiredCount = app(ExpireCartReservationsService::class)
->expireOverdue();
$this->info("Expired cart items: {$expiredCount}");
})->purpose('Release expired stock reservations from abandoned carts');
Schedule::command('purchases:expire')
->everyMinute()
->withoutOverlapping();
Schedule::command('carts:expire')
->everyMinute()
->withoutOverlapping();