<?php

use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;

/*
|--------------------------------------------------------------------------
| Console Routes
|--------------------------------------------------------------------------
|
| This file is where you may define all of your Closure based console
| commands. Each Closure is bound to a command instance allowing a
| simple approach to interacting with each command's IO methods.
|
*/

Artisan::command('inspire', function () {
    $this->comment(Inspiring::quote());
})->purpose('Display an inspiring quote');

/*
|--------------------------------------------------------------------------
| Scheduled Tasks — SISER Cron Jobs
|--------------------------------------------------------------------------
|
| Para que el scheduler funcione, en producción debe existir
| la siguiente entrada en el crontab del servidor:
|
|   * * * * * cd /ruta/a/siser_v2 && php artisan schedule:run >> /dev/null 2>&1
|
| En Windows (Task Scheduler):
|   Programa: php
|   Argumentos: C:\ruta\siser_v2\artisan schedule:run
|   Frecuencia: cada 1 minuto
|
*/

// Auto-conformar solicitudes con más de 48 horas en estado CO.
// También cierra definitivamente (CE) en el mismo paso.
// Se ejecuta cada hora. Usa withoutOverlapping() para evitar ejecuciones
// duplicadas si la anterior aún no termina.
\Illuminate\Support\Facades\Schedule::command('siser:auto-conformar --cerrar')
    ->hourly()
    ->withoutOverlapping()
    ->appendOutputTo(storage_path('logs/auto-conformar.log'))
    ->onFailure(function () {
        \Illuminate\Support\Facades\Log::error('[Scheduler] El comando siser:auto-conformar falló.');
    });
