<?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'];$organizer=afControlledEventOrganizer($pdo,$uid);if(!$organizer||$organizer['status']!=='approved'){setFlash('error','Check-in exclusivo para organizador aprovado.');header('Location: '.SITE_URL.'/pages/evento-infantil.php');exit;}
$token=(string)($_GET['token']??$_POST['token']??'');$code=(string)($_GET['code']??$_POST['short_code']??'');$eventRef=(string)($_GET['event']??$_POST['event']??'');$event=null;$result=null;$errors=[];
if($eventRef!==''){$event=ctype_digit($eventRef)?afControlledEventById($pdo,(int)$eventRef):afControlledEventByCode($pdo,$eventRef);if($event&&(int)$event['organizer_user_id']!==$uid)$event=null;}
if($_SERVER['REQUEST_METHOD']==='POST'){
 try{if($_SERVER['REQUEST_METHOD']==='POST'&&!validarCsrfToken($_POST[CSRF_TOKEN_NAME]??''))throw new RuntimeException('Sessão expirada.');$result=afControlledEventCheckin($pdo,$uid,$token,$code,true);$event=afControlledEventById($pdo,(int)$result['event_id']);setFlash('success','Check-in confirmado para '.$result['minor_name'].'.');}
 catch(Throwable $e){$errors[]=$e->getMessage();}
}
$pageTitle='Check-in do evento';$showNav=false;$pageStyles=[SITE_URL.'/assets/css/eventos-infantis.css?v=23.0'];require __DIR__.'/../includes/header.php';
?>
<header class="app-header"><a href="<?=SITE_URL?>/pages/organizador-eventos.php<?=$event?'?event='.(int)$event['id']:''?>" class="btn-back">← Evento</a><div class="logo-inline"><span class="logo-main">AURA</span><span class="logo-sub">CHECK-IN</span></div><span class="btn-notif">📷</span></header>
<main class="event-shell"><?=renderFlash()?><?php if($errors):?><div class="flash flash--error"><span>✕</span><?=esc(implode(' | ',$errors))?></div><?php endif?>
<section class="event-hero"><div class="event-hero__icon">✅</div><div><small>ÁREA DE CÂMERA</small><h1>CHECK-IN SUPERVISIONADO</h1><p>Confirme presencialmente que o participante está na área delimitada e que o responsável autorizou este evento.</p></div></section>
<?php if($result):?><div class="event-success"><span>✓</span><div><b><?=esc($result['minor_name'])?> liberado para o evento</b><p>Área de câmera confirmada. A partida continuará dependendo da supervisão ativa e das proteções da câmera.</p></div></div><?php endif?>
<section class="event-card"><h2>Ler QR ou digitar código</h2><p>Ao abrir o QR pelo aparelho do organizador, o código é processado automaticamente. Também é possível digitar o código de 10 caracteres.</p><form method="post" class="event-form"><?=camposCsrf()?><input type="hidden" name="event" value="<?=esc($eventRef)?>"><?php if($token!==''):?><input type="hidden" name="token" value="<?=esc($token)?>"><div class="event-success"><span>✓</span><div><b>QR Code reconhecido</b><p>Confirme presencialmente a área delimitada para concluir o check-in.</p></div></div><?php else:?><label><span>Código individual</span><input name="short_code" maxlength="10" minlength="10" value="<?=esc($code)?>" placeholder="AB12CD34EF" required autocomplete="off"></label><?php endif?><label class="event-consent-item"><input type="checkbox" name="camera_zone" value="1" required checked><span><b>Área delimitada confirmada presencialmente</b><small>O participante está sozinho no enquadramento autorizado, com iluminação adequada e supervisor presente.</small></span></label><button class="btn btn-primary" type="submit">CONFIRMAR CHECK-IN</button></form></section>
<div class="event-warning"><span>⚠️</span><div><b>Não confirme remotamente</b><p>O check-in deve ocorrer no local. Se houver terceiros no enquadramento ou ausência do supervisor, a pontuação será pausada.</p></div></div>
</main><?php require __DIR__.'/../includes/footer.php';?>
