<?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'];
$age=afResumoIdade($pdo,$uid);
if(($age['tipo_conta']??'')!=='minor'){
    header('Location: '.SITE_URL.'/pages/painel-responsavel.php');exit;
}
$erros=[];
if($_SERVER['REQUEST_METHOD']==='POST'){
    if(!validarCsrfToken($_POST[CSRF_TOKEN_NAME]??''))$erros[]='Sessão expirada. Recarregue a página.';
    $action=(string)($_POST['action']??'');
    if(!$erros && $action==='invite'){
        try{
            $result=afGuardianCriarConvite($pdo,$uid,(string)($_POST['guardian_nome']??''),(string)($_POST['guardian_email']??''),(string)($_POST['guardian_telefone']??''),(string)($_POST['parentesco']??'responsavel'));
            $_SESSION['guardian_invite_link']=$result['link'];
            setFlash('success',$result['email_enviado']?'Convite enviado ao responsável.':'Convite criado. Copie o link abaixo e envie ao responsável.');
            header('Location: '.SITE_URL.'/pages/responsavel.php');exit;
        }catch(Throwable $e){$erros[]=$e->getMessage();}
    }
    if(!$erros && $action==='cancel'){
        try{afGuardianCancelarConvite($pdo,$uid,(int)($_POST['invitation_id']??0));setFlash('success','Convite cancelado.');header('Location: '.SITE_URL.'/pages/responsavel.php');exit;}
        catch(Throwable $e){$erros[]=$e->getMessage();}
    }
    if(!$erros && $action==='generate_family_code'){
        try{
            $generated=afGuardianGenerateFamilyCode($pdo,$uid);
            $_SESSION['guardian_family_code_once']=$generated;
            setFlash('success','Código familiar gerado. Mostre o código pessoalmente ao seu responsável.');
            header('Location: '.SITE_URL.'/pages/responsavel.php');exit;
        }catch(Throwable $e){$erros[]=$e->getMessage();}
    }
}
$status=afGuardianResumoDoMenor($pdo,$uid);
$consent=$status['consent']??null;
$inviteLink=(string)($_SESSION['guardian_invite_link']??'');unset($_SESSION['guardian_invite_link']);
$familyCode=is_array($_SESSION['guardian_family_code_once']??null)?$_SESSION['guardian_family_code_once']:null;unset($_SESSION['guardian_family_code_once']);
$pageTitle='Meu responsável';$showNav=false;require_once __DIR__.'/../includes/header.php';
?>
<main class="age-gate-shell guardian-shell">
 <section class="age-gate-card guardian-card fade-in">
  <div class="age-gate-logo">👨‍👩‍👧</div><p class="eyebrow">ETAPA 18 • POLÍTICA DE SEGURANÇA</p><h1>MEU RESPONSÁVEL</h1>
  <?=renderFlash()?>
  <?php if($erros):?><div class="flash flash--error"><span>✕</span><ul class="error-list"><?php foreach($erros as $e):?><li><?=esc($e)?></li><?php endforeach?></ul></div><?php endif?>

  <?php if($status['vinculado']): $v=$status['vinculo']; $verified=((string)($v['guardian_status']??'')==='verified'); $consentActive=!empty($consent['active']);?>
   <div class="guardian-success-orbit">✓</div>
   <div class="age-status-panel age-status--minor_authorized"><span><?=$consentActive?'☑️':($verified?'🛡️':'🔗')?></span><div><strong><?=$consentActive?'Consentimentos registrados':($verified?'Responsável adulto verificado':'Responsável vinculado')?></strong><p><?=esc($v['guardian_nome'])?> está vinculado como <?=esc($v['parentesco'])?>.</p></div></div>
   <div class="guardian-profile-mini"><div class="guardian-avatar">👤</div><div><b><?=esc($v['guardian_nome'])?></b><small><?=esc($v['guardian_email'])?></small><span>STATUS: <?=$consentActive?'AUTORIZAÇÕES REGISTRADAS • PROTEÇÕES PENDENTES':($verified?'AGUARDANDO CONSENTIMENTOS':'VERIFICAÇÃO INTERNA PENDENTE')?></span></div></div>
   <?php if(empty($v['family_confirmed_at'])):?>
      <?php if($familyCode):?>
        <div class="guardian-copy-box guardian-family-code-box"><label>CÓDIGO FAMILIAR — MOSTRE AO RESPONSÁVEL</label><div><input id="family-code" readonly value="<?=esc((string)$familyCode['code'])?>"><button type="button" onclick="navigator.clipboard.writeText(document.getElementById('family-code').value);this.textContent='COPIADO ✓'">COPIAR</button></div><small>Expira em <?=(int)$familyCode['expires_minutes']?> minutos. O código aparece apenas uma vez e não é enviado por SMS.</small></div>
      <?php else:?>
        <div class="verification-info">Para provar o vínculo sem contratar SMS ou empresa externa, gere um código dentro desta conta e informe pessoalmente ao responsável.</div>
        <form method="post"><?=camposCsrf()?><input type="hidden" name="action" value="generate_family_code"><button class="btn btn-primary" type="submit">GERAR CÓDIGO FAMILIAR</button></form>
      <?php endif?>
   <?php else:?>
      <div class="verification-ok">Código familiar confirmado pelo responsável.</div>
   <?php endif?>
   <?php if($consentActive):
       $perms=$consent['permissions']??[];
       $defs=afConsentDefinitions();
   ?>
      <div class="minor-consent-summary">
        <b>Autorizações concedidas</b>
        <div><?php foreach($defs as $key=>$def):?><span class="<?=$perms[$key]['allowed']??false?'is-on':'is-off'?>"><?=($perms[$key]['allowed']??false)?'✓':'—'?> <?=esc($def['label'])?></span><?php endforeach?></div>
      </div>
      <p class="age-lock-note">As escolhas do responsável foram registradas. O motor da Etapa 18 avalia cada recurso separadamente; câmera e Farm aguardam a câmera segura da Etapa 19.</p>
   <?php elseif($verified):?>
      <p class="age-lock-note">O responsável concluiu a verificação de maioridade e agora precisa escolher as autorizações específicas no painel dele. Todos os recursos sensíveis continuam bloqueados.</p>
   <?php else:?>
      <p class="age-lock-note">O vínculo inicial está pronto. O responsável ainda precisa confirmar a declaração, o e-mail, o código familiar e passar pela revisão interna. Todos os recursos sensíveis continuam bloqueados.</p>
   <?php endif?>
   <a class="btn btn-primary" href="<?=SITE_URL?>/pages/seguranca-menor.php">🛡️ VER POLÍTICA DE SEGURANÇA</a><a class="btn btn-secondary mt-12" href="<?=SITE_URL?>/pages/home.php">VOLTAR AO INÍCIO</a>
  <?php elseif($status['convite_pendente']): $i=$status['convite'];?>
   <div class="age-status-panel age-status--minor_pending_guardian"><span>📨</span><div><strong>Convite aguardando resposta</strong><p>Enviado para <?=esc($i['guardian_email'])?>. Expira em <?=date('d/m/Y \à\s H:i',strtotime($i['expira_em']))?>.</p></div></div>
   <?php if($inviteLink):?><div class="guardian-copy-box"><label>LINK PARA ENVIAR AO RESPONSÁVEL</label><div><input id="guardian-link" readonly value="<?=esc($inviteLink)?>"><button type="button" onclick="navigator.clipboard.writeText(document.getElementById('guardian-link').value);this.textContent='COPIADO ✓'">COPIAR</button></div><small>Use este link caso o e-mail não chegue.</small></div><?php endif?>
   <div class="guardian-profile-mini"><div class="guardian-avatar">📧</div><div><b><?=esc($i['guardian_nome'])?></b><small><?=esc($i['guardian_email'])?><?=!empty($i['guardian_telefone'])?' • '.esc($i['guardian_telefone']):''?></small><span><?=esc(strtoupper($i['parentesco']))?></span></div></div>
   <form method="post" onsubmit="return confirm('Cancelar este convite?')"><?=camposCsrf()?><input type="hidden" name="action" value="cancel"><input type="hidden" name="invitation_id" value="<?=(int)$i['id']?>"><button class="btn btn-secondary" type="submit">CANCELAR CONVITE</button></form>
   <a class="btn btn-primary mt-12" href="<?=SITE_URL?>/pages/home.php">VOLTAR AO INÍCIO</a>
  <?php else:?>
   <p class="age-gate-lead">Informe os dados de um dos pais ou responsável legal. Ele receberá um link exclusivo para criar ou acessar a conta e aceitar o vínculo.</p>
   <form method="post" class="age-gate-form guardian-invite-form"><?=camposCsrf()?><input type="hidden" name="action" value="invite">
    <label>Nome completo do responsável<div class="form-field"><span class="field-icon">👤</span><input class="form-input" name="guardian_nome" value="<?=esc($_POST['guardian_nome']??'')?>" maxlength="120" autocomplete="name" required></div></label>
    <label>E-mail do responsável<div class="form-field"><span class="field-icon">📧</span><input class="form-input" type="email" name="guardian_email" value="<?=esc($_POST['guardian_email']??'')?>" maxlength="150" autocomplete="email" required></div></label>
    <label>Telefone do responsável <small>(opcional, apenas para contato; não é usado na verificação)</small><div class="form-field"><span class="field-icon">📱</span><input class="form-input" name="guardian_telefone" value="<?=esc($_POST['guardian_telefone']??'')?>" maxlength="30" autocomplete="tel"></div></label>
    <label>Parentesco<div class="form-field"><span class="field-icon">🛡️</span><select class="form-input age-select" name="parentesco" required><option value="mae">Mãe</option><option value="pai">Pai</option><option value="avo">Avô/Avó</option><option value="tutor">Tutor legal</option><option value="responsavel">Responsável legal</option><option value="outro">Outro responsável</option></select></div></label>
    <label class="age-declaration-check"><input type="checkbox" required><span>Confirmo que os dados pertencem a um responsável legal que conhece esta solicitação.</span></label>
    <button class="btn btn-primary" type="submit">ENVIAR CONVITE</button>
   </form>
   <div class="age-protection-list"><div>🔒 <span><b>Nada é liberado agora</b><small>O vínculo inicial não autoriza câmera ou transmissão.</small></span></div><div>⏳ <span><b>Link com validade limitada</b><small>O convite expira automaticamente e pode ser cancelado.</small></span></div><div>🧾 <span><b>Registro de auditoria</b><small>Criação, aceite, conta e dispositivo ficam registrados.</small></span></div></div>
   <a class="btn btn-secondary" href="<?=SITE_URL?>/pages/home.php">VOLTAR AO INÍCIO</a>
  <?php endif?>
 </section>
</main>
<?php require_once __DIR__.'/../includes/footer.php';?>
