<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    /**
     * Define the application's command schedule.
     */
    protected function schedule(Schedule $schedule): void
    {
        $interval = $this->getCleanupInterval();
        $schedule->command('cleanup:orphaned-videos --force')
                 ->cron("*/{$interval} * * * *")
                 ->withoutOverlapping()
                 ->runInBackground();

        // Evict NAS stream-cache files older than 24 hours
        $schedule->call(function () {
            $nas = app(\App\Services\NasSyncService::class);
            if ($nas->isEnabled()) {
                $nas->clearNasCache(24);
            }
        })->daily()->name('nas-cache-evict')->withoutOverlapping();
    }

    /**
     * Register the commands for the application.
     */
    protected function commands(): void
    {
        $this->load(__DIR__.'/Commands');

        require base_path('routes/console.php');
    }

    /**
     * Get the interval in minutes for cleanup (from .env)
     */
    protected function getCleanupInterval(): int
    {
        return (int) env('CLEANUP_INTERVAL_MINUTES', 30);
    }
}
