<?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($_SERVER['REQUEST_METHOD']==='POST'){
 try{
  if(!validarCsrfToken($_POST[CSRF_TOKEN_NAME]??''))throw new RuntimeException('Sessão expirada.');
  $action=(string)($_POST['action']??'');
  if($action==='create_request'){
   $subjectId=(int)($_POST['subject_user_id']??$uid);$type=(string)($_POST['request_type']??'');$description=(string)($_POST['description']??'');
   $result=afCreatePrivacyRequest($pdo,$uid,$subjectId,$type,$description);
   setFlash('success','Solicitação enviada. Protocolo: '.$result['protocol'].'.');
  }elseif($action==='cancel_request'){
   if(!afCancelPrivacyRequest($pdo,$uid,(int)($_POST['request_id']??0)))throw new RuntimeException('Esta solicitação não pode mais ser cancelada.');
   setFlash('success','Solicitação cancelada.');
  }else throw new RuntimeException('Ação inválida.');
 }catch(Throwable $e){setFlash('error',$e->getMessage());}
 header('Location: '.SITE_URL.'/pages/central-privacidade.php');exit;
}
$subjects=afPrivacySubjects($pdo,$uid);$requests=afPrivacyRequestsForUser($pdo,$uid);$types=afPrivacyRequestTypes();$statuses=afPrivacyRequestStatuses();$missing=afMissingLegalAcceptances($pdo,$uid);$controller=afPrivacyController($pdo);
$acceptances=[];if(afPrivacyTableExists($pdo,'af_legal_acceptances')){$st=$pdo->prepare("SELECT a.accepted_at,a.source,d.title,d.version_key,d.document_key FROM af_legal_acceptances a JOIN af_legal_documents d ON d.id=a.legal_document_id WHERE a.user_id=? ORDER BY a.id DESC");$st->execute([$uid]);$acceptances=$st->fetchAll()?:[];}
$pageTitle='Central de Privacidade';$activePage='perfil';require_once __DIR__.'/../includes/header.php';
?>
<header class="app-header"><a href="<?=SITE_URL?>/pages/perfil.php" class="btn-back">← Perfil</a><div class="logo-inline"><span class="logo-main">AURA</span><span class="logo-sub">FARMING</span></div><div class="header-actions"><span class="privacy-shield">🛡️</span></div></header>
<main class="page-content privacy-center-page"><?=renderFlash()?>
 <section class="privacy-hero card card--glow"><span>🛡️</span><div><small>ETAPA 21</small><h1>Central de Privacidade</h1><p>Consulte documentos, baixe uma cópia dos dados e acompanhe solicitações usando um protocolo.</p></div></section>
 <?php if($missing):?><a class="privacy-action-banner warning" href="<?=SITE_URL?>/pages/aceitar-termos.php"><span>⚠️</span><div><strong>Documentos aguardando aceite</strong><small><?=count($missing)?> documento(s) precisam ser lidos antes do uso normal da plataforma.</small></div><b>→</b></a><?php endif;?>
 <div class="privacy-kpi-grid"><article><span>📄</span><b><?=count($acceptances)?></b><small>aceites registrados</small></article><article><span>📬</span><b><?=count($requests)?></b><small>solicitações</small></article><article><span>👤</span><b><?=count($subjects)?></b><small>contas autorizadas</small></article></div>
 <section class="card privacy-section"><header><div><small>DOCUMENTOS VIGENTES</small><h2>Transparência</h2></div></header><div class="privacy-doc-grid"><a href="<?=SITE_URL?>/pages/termos-de-uso.php"><span>📜</span><strong>Termos de Uso</strong><small>Regras da plataforma</small></a><a href="<?=SITE_URL?>/pages/privacidade.php"><span>🛡️</span><strong>Aviso de Privacidade</strong><small>Como os dados são tratados</small></a><a href="<?=SITE_URL?>/pages/privacidade-menores.php"><span>👨‍👩‍👧‍👦</span><strong>Menores e responsáveis</strong><small>Proteções adicionais</small></a><a href="<?=SITE_URL?>/pages/termo-responsavel.php"><span>✅</span><strong>Termo do responsável</strong><small>Supervisão e deveres</small></a><a href="<?=SITE_URL?>/pages/politica-camera-transmissao.php"><span>📷</span><strong>Câmera e transmissão</strong><small>Proteções e limites</small></a><a href="<?=SITE_URL?>/pages/politica-retencao-exclusao.php"><span>🗑️</span><strong>Retenção e exclusão</strong><small>Prazos e direitos</small></a><a href="<?=SITE_URL?>/pages/regras-comunidade.php"><span>🤝</span><strong>Regras da comunidade</strong><small>Condutas e segurança</small></a><a href="<?=SITE_URL?>/pages/cookies.php"><span>🍪</span><strong>Cookies técnicos</strong><small>Login e segurança</small></a></div></section>
 <section class="card privacy-section"><header><div><small>CÓPIA DOS DADOS</small><h2>Exportação em JSON</h2></div><span class="privacy-pill">sem senhas ou tokens</span></header><p>A exportação reúne dados associados à conta. Não inclui segredos de autenticação, vídeo bruto, imagens da câmera, áudio ou landmarks corporais.</p><div class="privacy-export-grid"><?php foreach($subjects as $subject):?><form method="post" action="<?=SITE_URL?>/pages/exportar-dados.php" class="privacy-export-card"><?=camposCsrf()?><input type="hidden" name="subject_user_id" value="<?=(int)$subject['id']?>"><div><strong><?=esc($subject['label'])?></strong><small><?=esc($subject['relation'])?></small></div><button class="btn btn-outline-cyan" type="submit">⬇️ BAIXAR JSON</button></form><?php endforeach;?></div></section>
 <section class="card privacy-section"><header><div><small>EXERCÍCIO DE DIREITOS</small><h2>Nova solicitação</h2></div></header><form method="post" class="privacy-request-form"><?=camposCsrf()?><input type="hidden" name="action" value="create_request"><div class="privacy-form-grid"><label><span>Conta relacionada</span><select class="form-input" name="subject_user_id" required><?php foreach($subjects as $subject):?><option value="<?=(int)$subject['id']?>"><?=esc($subject['relation'].' — '.$subject['label'])?></option><?php endforeach;?></select></label><label><span>Tipo de solicitação</span><select class="form-input" name="request_type" required><?php foreach($types as $key=>$label):?><option value="<?=esc($key)?>"><?=esc($label)?></option><?php endforeach;?></select></label></div><label><span>Explique o que você precisa</span><textarea class="form-textarea" name="description" minlength="10" maxlength="3000" rows="5" placeholder="Inclua detalhes que ajudem a localizar e analisar os dados." required></textarea></label><div class="privacy-notice-box">Solicitações de exclusão ou encerramento passam por análise porque alguns registros podem precisar ser preservados por segurança, prevenção a fraude, obrigação legal ou defesa de direitos.</div><button class="btn btn-primary" type="submit">ENVIAR SOLICITAÇÃO</button></form></section>
 <section class="card privacy-section"><header><div><small>PROTOCOLOS</small><h2>Minhas solicitações</h2></div><span class="privacy-pill"><?=count($requests)?> registro(s)</span></header><div class="privacy-request-list"><?php if(!$requests):?><div class="privacy-empty">Nenhuma solicitação enviada.</div><?php endif;?><?php foreach($requests as $request):?><article class="privacy-request-item"><header><div><strong><?=esc($request['protocol'])?></strong><small><?=esc($types[$request['request_type']]??$request['request_type'])?> • <?=esc($request['subject_name'])?></small></div><span class="privacy-status status-<?=esc($request['status'])?>"><?=esc($statuses[$request['status']]??$request['status'])?></span></header><p><?=nl2br(esc($request['description']))?></p><?php if(!empty($request['response_text'])):?><div class="privacy-response"><b>Resposta:</b> <?=nl2br(esc($request['response_text']))?></div><?php endif;?><footer><span>Enviada em <?=date('d/m/Y H:i',strtotime($request['submitted_at']))?></span><?php if(in_array($request['status'],['open','awaiting_identity'],true)):?><form method="post" onsubmit="return confirm('Cancelar esta solicitação?')"><?=camposCsrf()?><input type="hidden" name="action" value="cancel_request"><input type="hidden" name="request_id" value="<?=(int)$request['id']?>"><button type="submit">Cancelar</button></form><?php endif;?></footer></article><?php endforeach;?></div></section>
 <section class="card privacy-section"><header><div><small>HISTÓRICO</small><h2>Aceites registrados</h2></div></header><div class="privacy-acceptance-list"><?php if(!$acceptances):?><div class="privacy-empty">Nenhum aceite registrado.</div><?php endif;?><?php foreach($acceptances as $a):?><div><span>✓</span><p><strong><?=esc($a['title'])?></strong><small>Versão <?=esc($a['version_key'])?> • <?=date('d/m/Y H:i',strtotime($a['accepted_at']))?></small></p></div><?php endforeach;?></div></section>
 <section class="card privacy-contact-card"><span>✉️</span><div><strong>Canal de privacidade</strong><p><?=esc($controller['contact_email'])?><?php if($controller['dpo_name']):?> • Responsável: <?=esc($controller['dpo_name'])?><?php endif;?></p></div></section>
</main>
<?php require_once __DIR__.'/../includes/navbar.php';require_once __DIR__.'/../includes/footer.php';?>
