Files
shopit-back/routes/console.php

34 lines
1.0 KiB
PHP

<?php
use App\Domains\Cart\Services\ExpireCartReservationsService;
use App\Domains\Purchase\Services\CheckoutService;
use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Schedule;
Artisan::command('inspire', function () {
$this->comment(Inspiring::quote());
})->purpose('Display an inspiring quote');
Artisan::command('purchases:expire', function (): void {
$expiredCount = app(CheckoutService::class)
->expireOverduePurchases();
$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();