comment(Inspiring::quote()); })->purpose('Display an inspiring quote'); use Illuminate\Support\Facades\Schedule; Schedule::command('app:cleanup-old-events')->daily(); // Frecuencia de backup configurable (con fallback seguro si DB no disponible) try { $backupFreq = \App\Models\Configuracion::get('backup_frequency', 'daily'); } catch (\Throwable $e) { $backupFreq = 'daily'; } Schedule::command('backup:run')->{$backupFreq}()->at('01:00'); Schedule::command('backup:clean')->{$backupFreq}()->at('02:00'); // Recordatorio de partidos: diariamente a las 9am Schedule::command('notificaciones:recordatorio-partido')->dailyAt('09:00'); // Reporte semanal: lunes a las 8am Schedule::command('reportes:semanal')->weeklyOn(1, '08:00'); // Purge de hilos de conversación del agente expirados Schedule::command('agent:purge-threads')->dailyAt('03:00'); // Registro de salud del sistema: se ejecuta cada minuto para confirmar que el Cron Job funciona Schedule::call(function () { \App\Models\Configuracion::set('last_scheduler_run', now()->toDateTimeString(), 'Última ejecución detectada del programador'); })->everyMinute();