<?php
declare(strict_types=1);

/**
 * Sincronização automática de status/FTD, para rodar no cron.
 *
 *   Via web:  curl -s "https://SEU-DOMINIO/admin/cron_sync.php?token=<ADMIN_CRON_TOKEN>&days=7"
 *   Via CLI:  php /caminho/public_html/admin/cron_sync.php 7
 *
 * Sugestão de agendamento: de hora em hora, com days=7 (recupera FTDs que o
 * CRM marcou dias depois do cadastro).
 */

require __DIR__ . '/auth.php';

$isCli = PHP_SAPI === 'cli';

if (!$isCli) {
    header('Content-Type: application/json; charset=utf-8');
    $token = (string) ($_GET['token'] ?? '');
    if (!hash_equals(ADMIN_CRON_TOKEN, $token)) {
        http_response_code(403);
        echo json_encode(['ok' => false, 'message' => 'token inválido']);
        exit;
    }
}

$days = $isCli
    ? (int) ($argv[1] ?? 7)
    : (int) ($_GET['days'] ?? 7);
$days = max(1, min(365, $days));

$from = gmdate('Y-m-d', strtotime("-{$days} days"));
$to = gmdate('Y-m-d', strtotime('+1 day')); // margem para o fuso do CRM

$result = admin_run_sync($from, $to);

$payload = [
    'ok' => $result['ok'],
    'from' => $from,
    'to' => $to,
    'message' => $result['message'],
    'stats' => $result['stats'],
];

if ($isCli) {
    echo json_encode($payload, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE), PHP_EOL;
    exit($result['ok'] ? 0 : 1);
}

if (!$result['ok']) {
    http_response_code(502);
}
echo json_encode($payload, JSON_UNESCAPED_UNICODE);
