<?php

// Carga la configuración privada antes de validar el token web.
// En CLI no se exige token, pero se conserva la misma configuración de entorno.
require_once __DIR__ . '/config.php';

function icylab_require_cron_access(): void
{
    if (PHP_SAPI === 'cli') return;

    header('Content-Type: text/plain; charset=utf-8');
    $configuredSecret = defined('ICYLAB_CRON_SECRET') ? (string)ICYLAB_CRON_SECRET : (string)(getenv('ICYLAB_CRON_SECRET') ?: '');
    $providedSecret = isset($_GET['token']) ? (string)$_GET['token'] : '';

    if ($configuredSecret === '' || $providedSecret === '' || !hash_equals($configuredSecret, $providedSecret)) {
        http_response_code(403);
        echo "Forbidden\n";
        exit;
    }
}
