command('sanctum:prune-expired --hours=24')->daily(); /* Check Daily Suspend Hosting */ $schedule->command('hosting:expiry') ->timezone("Asia/Ho_Chi_Minh") ->dailyAt("00:00"); /* Check Daily Mail Hosting Expiry */ $schedule->command('hosting:mail') ->timezone("Asia/Ho_Chi_Minh") ->dailyAt("00:00"); /* Check Daily Mail VPS Expiry */ $schedule->command('vps:mail') ->timezone("Asia/Ho_Chi_Minh") ->dailyAt("00:00"); /* Check Daily Suspend Hosting */ $schedule->command('vps:expiry') ->timezone("Asia/Ho_Chi_Minh") ->dailyAt("09:54"); /* Service lifecycle: suspend VM, renew invoice, terminate after 30 days */ $schedule->command('service:expiry') ->timezone("Asia/Ho_Chi_Minh") ->everyFiveMinutes() ->withoutOverlapping(); $schedule->command('deposits:purge-expired-drafts') ->everyFiveMinutes() ->withoutOverlapping(); /* Sync all VM packages */ $schedule->job(new SyncAllPackage()) ->everyThreeHours() ->withoutOverlapping(); /* Mark overdue unpaid invoices */ $schedule->command('invoices:check-overdue') ->timezone("Asia/Ho_Chi_Minh") ->dailyAt("00:10") ->withoutOverlapping(); /* Nhắc thanh toán trước/đúng/sau hạn theo billing.reminder_offsets */ $schedule->command('invoices:send-reminders') ->timezone("Asia/Ho_Chi_Minh") ->dailyAt("08:00") ->withoutOverlapping(); } /** * Register the commands for the application. * * @return void */ protected function commands() { $this->load(__DIR__.'/Commands'); require base_path('routes/console.php'); } }