<?php

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');

/*
|--------------------------------------------------------------------------
| Tareas programadas (scheduler)
|--------------------------------------------------------------------------
| Agregar al cron del servidor:
|   * * * * * cd /path-to-app && php artisan schedule:run >> /dev/null 2>&1
*/

// Recordatorios de reserva: cada hora envía los que estén a 24h.
Schedule::command('bookings:send-reminders --hours=24')
    ->hourly()
    ->withoutOverlapping()
    ->onOneServer();

// Recordatorios cortos: cada 15 min envía los que estén a 2h.
Schedule::command('bookings:send-reminders --hours=2')
    ->everyFifteenMinutes()
    ->withoutOverlapping()
    ->onOneServer();

// Vencimiento de suscripciones: cada hora.
Schedule::command('subscriptions:check-expirations')
    ->hourly()
    ->withoutOverlapping()
    ->onOneServer();

// Archivo automático: oculta de la lista principal reservas vencidas sin gestión.
Schedule::command('bookings:archive-expired --minutes=0')
    ->everyFifteenMinutes()
    ->withoutOverlapping()
    ->onOneServer();
