refactor(reservations): unify expiration command

This commit is contained in:
2026-08-19 13:58:03 -03:00
parent 093e894cc3
commit 1dc4e29c69
6 changed files with 76 additions and 25 deletions

View File

@@ -1,7 +1,6 @@
<?php
use App\Domains\Cart\Services\ExpireCartReservationsService;
use App\Domains\Purchase\Services\CheckoutService;
use App\Domains\Catalog\Services\ExpireStockReservationsService;
use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Schedule;
@@ -10,24 +9,13 @@ Artisan::command('inspire', function () {
$this->comment(Inspiring::quote());
})->purpose('Display an inspiring quote');
Artisan::command('purchases:expire', function (): void {
$expiredCount = app(CheckoutService::class)
->expireOverduePurchases();
Artisan::command('reservations:expire', function (): void {
$expired = app(ExpireStockReservationsService::class)->expireOverdue();
$this->info("Expired purchases: {$expiredCount}");
})->purpose('Release stock reservations from expired purchases');
$this->info("Expired purchases: {$expired['purchases']}");
$this->info("Expired cart items: {$expired['cart_items']}");
})->purpose('Release expired stock reservations from purchases and abandoned carts');
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')
Schedule::command('reservations:expire')
->everyMinute()
->withoutOverlapping();