<?php
/** Estado da sessão + assinatura (revalida no MP quando pendente/expirada). */

require_once __DIR__ . '/db.php';
require_once __DIR__ . '/mp.php';

iniciar_sessao();

if (empty($_SESSION['usuario_id'])) {
    responder(['logado' => false]);
}

$u = usuario_por_id((int) $_SESSION['usuario_id']);
if (!$u) {
    session_destroy();
    responder(['logado' => false]);
}

// Sem webhook (ex.: localhost) o status pendente é revalidado direto no MP,
// no máximo uma vez por minuto.
if (!modo_demo() && $u['mp_preapproval_id'] && $u['sub_status'] !== 'authorized') {
    $ultima = $u['sub_verificada_em'] ? strtotime($u['sub_verificada_em'] . ' UTC') : 0;
    if (time() - $ultima > 60) {
        $u['sub_status'] = mp_sincronizar_assinatura((int) $u['id']) ?? $u['sub_status'];
    }
}

responder([
    'logado' => true,
    'nome' => $u['nome'],
    'email' => $u['email'],
    'assinatura' => [
        'status' => $u['sub_status'],
        'ativa' => assinatura_ativa($u),
        'demo' => modo_demo(),
        'livre' => ACESSO_LIVRE,
    ],
]);
