<?php
require_once __DIR__.'/../config/config.php';
require_once __DIR__.'/../config/database.php';
require_once __DIR__.'/../includes/functions.php';
requireLogin();

$uid=(int)$_SESSION['usuario_id'];
if(!afGuardianUsuarioPodeSerResponsavel($pdo,$uid)){
    setFlash('error','Esta área é exclusiva para contas maiores de 18 anos.');
    header('Location: '.SITE_URL.'/pages/home.php');exit;
}
$errors=[];
if($_SERVER['REQUEST_METHOD']==='POST'){
    if(!validarCsrfToken($_POST[CSRF_TOKEN_NAME]??''))$errors[]='Sessão expirada.';
    $action=(string)($_POST['action']??'');
    if(!$errors&&$action==='revoke_link'){
        try{
            afGuardianRevogarVinculo($pdo,$uid,(int)($_POST['link_id']??0),(string)($_POST['motivo']??'Revogado pelo responsável'));
            setFlash('success','Vínculo, controles e consentimentos encerrados.');
            header('Location: '.SITE_URL.'/pages/painel-responsavel.php');exit;
        }catch(Throwable $e){$errors[]=$e->getMessage();}
    }
}
$account=afGuardianGarantirConta($pdo,$uid,null,'guardian_dashboard');
$verification=afGuardianVerificationStatus($pdo,$uid);
$deps=afGuardianDependentes($pdo,$uid);
$alerts=afGuardianDashboardAlerts($pdo,$uid,5,true);
$u=usuarioAtual();
$pageTitle='Painel do responsável';$showNav=false;require_once __DIR__.'/../includes/header.php';
?>
<header class="app-header"><a href="<?=SITE_URL?>/pages/home.php" class="btn-back">← Início</a><div class="logo-inline"><span class="logo-main">AURA</span><span class="logo-sub">FAMÍLIA</span></div><a href="<?=SITE_URL?>/pages/alertas-responsavel.php" class="btn-notif">🔔<?php if($alerts):?><i><?=count($alerts)?></i><?php endif?></a></header>
<main class="page-content guardian-dashboard guardian-dashboard--v20">
    <?=renderFlash()?>
    <?php if($errors):?><div class="flash flash--error"><span>✕</span><?=esc(implode(' | ',$errors))?></div><?php endif?>

    <section class="guardian-dashboard-hero guardian-dashboard-hero--v20">
        <div class="guardian-shield"><?=$verification['approved']?'✓':'🛡️'?></div>
        <div><p class="eyebrow">ETAPA 20</p><h1>PAINEL DO RESPONSÁVEL</h1><p>Acompanhe atividade, alertas da câmera segura, consentimentos, horários e limite diário de cada dependente.</p></div>
    </section>

    <section class="guardian-overview-grid">
        <article class="card"><small>DEPENDENTES</small><strong><?=count($deps)?></strong><span>vínculos ativos ou pendentes</span></article>
        <article class="card"><small>ALERTAS NOVOS</small><strong><?=count($alerts)?></strong><span>incidentes e sessões</span></article>
        <article class="card"><small>VERIFICAÇÃO</small><strong><?=$verification['approved']?'OK':'PENDENTE'?></strong><span><?=$verification['approved']?'revisão interna aprovada':'concluir confirmação'?></span></article>
    </section>

    <?php if(!$verification['approved']):?>
        <div class="age-status-panel"><span>⏳</span><div><strong>Verificação do adulto pendente</strong><p>Conclua a confirmação antes de alterar consentimentos e controles parentais.</p></div></div>
        <a class="btn btn-primary guardian-verify-cta" href="<?=SITE_URL?>/pages/verificar-responsavel.php">INICIAR VERIFICAÇÃO</a>
    <?php else:?>
        <div class="age-status-panel age-status-panel--success"><span>✓</span><div><strong>Responsável verificado internamente</strong><p>Seus controles são validados no servidor antes de liberar a câmera e o Farm do dependente.</p></div></div>
    <?php endif?>

    <section class="card guardian-account-card">
        <div class="section-title">👤 Conta do responsável</div>
        <div class="guardian-profile-mini"><div class="guardian-avatar">👤</div><div><b><?=esc($u['nome'])?></b><small><?=esc($u['email'])?></small><span><?=esc($verification['approved']?'RESPONSÁVEL VERIFICADO':'VERIFICAÇÃO PENDENTE')?></span></div></div>
        <div class="guardian-account-grid">
            <div><small>E-MAIL</small><b><?=$verification['email_ok']?'Confirmado':'Pendente'?></b></div>
            <div><small>CÓDIGO FAMILIAR</small><b><?=$verification['family_ok']?'Confirmado':'Pendente'?></b></div>
            <div><small>DECLARAÇÃO</small><b><?=$verification['declaration_ok']?'Registrada':'Pendente'?></b></div>
            <div><small>REVISÃO INTERNA</small><b><?=$verification['approved']?'Aprovada':($verification['review_pending']?'Em análise':($verification['review_needs_info']?'Aguardando informação':'Pendente'))?></b></div>
        </div>
        <a class="btn btn-secondary" href="<?=SITE_URL?>/pages/verificar-responsavel.php"><?=$verification['approved']?'VER COMPROVAÇÃO':'CONTINUAR VERIFICAÇÃO'?></a>
    </section>

    <a class="age-home-banner guardian-home-banner" href="<?=SITE_URL?>/pages/evento-infantil.php"><span>🎟️</span><div><strong>EVENTOS INFANTIS</strong><small>Revise convites, autorize participações e consulte o ranking fechado.</small></div><b>ABRIR →</b></a>

    <div class="guardian-section-head"><div class="section-title">👨‍👩‍👧 Dependentes</div><a href="<?=SITE_URL?>/pages/alertas-responsavel.php">VER ALERTAS</a></div>
    <?php if(!$deps):?>
        <div class="card guardian-empty"><span>🔗</span><b>Nenhum dependente vinculado</b><p>O convite precisa ser iniciado pela conta classificada como menor.</p></div>
    <?php else:?>
        <div class="guardian-dependent-list">
        <?php foreach($deps as $d):
            $linkId=(int)$d['id'];$minorId=(int)$d['minor_usuario_id'];
            $consent=afConsentResumoDoVinculo($pdo,$linkId,$uid);
            $controls=afGuardianDashboardEnsureControls($pdo,$uid,$linkId);
            if(function_exists('afMinorPolicyClearCache'))afMinorPolicyClearCache($minorId);
            $policy=afMinorPolicySummary($pdo,$minorId,true);
            $access=afGuardianDashboardAccessDecision($pdo,$minorId);
            $stats=afGuardianDashboardStats($pdo,$minorId);
            $limit=(int)$controls['daily_limit_minutes'];
            $usedMin=(int)ceil(((int)$stats['used_today_seconds'])/60);
            $progress=$limit>0?min(100,(int)round($usedMin/$limit*100)):0;
        ?>
            <article class="card guardian-dependent-card guardian-dependent-card--v20">
                <div class="guardian-dependent-head"><img src="<?=urlAvatar($d['foto_perfil']??null,$d['foto_externa']??null)?>" alt=""><div><b><?=esc($d['nome'])?></b><small><?=esc($d['aura_id'])?> • <?=esc($d['parentesco'])?></small></div><span class="guardian-status-pill <?=!empty($access['allowed'])?'guardian-status-pill--ok':'guardian-status-pill--paused'?>"><?=!empty($access['allowed'])?'LIBERADO':'PROTEGIDO'?></span></div>
                <div class="guardian-dependent-grid guardian-dependent-grid--v20">
                    <div><small>HOJE</small><b><?=$usedMin?> min<?=$limit>0?' / '.$limit:''?></b></div>
                    <div><small>HORÁRIO</small><b><?=substr((string)$controls['allowed_start_time'],0,5)?>–<?=substr((string)$controls['allowed_end_time'],0,5)?></b></div>
                    <div><small>30 DIAS</small><b><?=(int)($stats['sessions_30']??0)?> sessões</b></div>
                </div>
                <?php if($limit>0):?><div class="guardian-usage"><div style="width:<?=$progress?>%"></div></div><?php endif?>
                <div class="guardian-access-message <?=!empty($access['allowed'])?'is-ok':'is-blocked'?>"><b><?=esc($access['code'])?></b><span><?=esc($access['message'])?></span></div>
                <div class="guardian-card-actions">
                    <a class="btn btn-primary" href="<?=SITE_URL?>/pages/dependente-responsavel.php?link_id=<?=$linkId?>">ACOMPANHAR E CONFIGURAR</a>
                    <?php if($verification['approved']&&in_array((string)$d['status'],['verified_pending_consent','active'],true)):?><a class="btn btn-secondary" href="<?=SITE_URL?>/pages/consentimentos-responsavel.php?link_id=<?=$linkId?>"><?=!empty($consent['active'])?'REVISAR CONSENTIMENTOS':'CONFIGURAR CONSENTIMENTOS'?></a><?php endif?>
                    <a class="btn btn-secondary" href="<?=SITE_URL?>/pages/seguranca-menor.php?minor_id=<?=$minorId?>">🛡️ POLÍTICA DE SEGURANÇA</a>
                </div>
                <form method="post" class="guardian-revoke-form" onsubmit="return confirm('Encerrar este vínculo? Todos os consentimentos e controles serão revogados.')"><?=camposCsrf()?><input type="hidden" name="action" value="revoke_link"><input type="hidden" name="link_id" value="<?=$linkId?>"><input type="hidden" name="motivo" value="Revogado pelo responsável"><button class="btn btn-secondary" type="submit">ENCERRAR VÍNCULO</button></form>
            </article>
        <?php endforeach?>
        </div>
    <?php endif?>

    <section class="card guardian-privacy-note"><span>🔒</span><div><b>Privacidade preservada</b><p>O painel mostra horários, pontuação, duração e incidentes técnicos. Vídeo bruto, imagens e pontos corporais não são armazenados nem exibidos.</p></div></section>
    <a class="btn btn-primary" href="<?=SITE_URL?>/pages/home.php">VOLTAR AO INÍCIO</a>
</main>
<?php require_once __DIR__.'/../includes/footer.php';?>
