<?php
require_once __DIR__.'/../config/config.php';require_once __DIR__.'/../config/database.php';require_once __DIR__.'/../includes/functions.php';require_once __DIR__.'/../includes/admin_functions.php';afAdminRequireAuth();
if($_SERVER['REQUEST_METHOD']==='POST'){
 try{if(!validarCsrfToken($_POST[CSRF_TOKEN_NAME]??''))throw new RuntimeException('Sessão expirada.');$target=sanitize($_POST['usuario']??'');$uid=null;if($target!==''){$st=$pdo->prepare('SELECT id FROM af_usuarios WHERE aura_id=? OR username=? OR email=? LIMIT 1');$st->execute([$target,$target,$target]);$uid=(int)($st->fetchColumn()?:0);if(!$uid)throw new RuntimeException('Destinatário não encontrado.');}$total=afAdminNotify($pdo,afAdminId(),$_POST['titulo']??'',$_POST['mensagem']??'',$_POST['segmento']??'todos',$uid?:null);setFlash('success',$total.' notificação(ões) enviada(s).');}
 catch(Throwable $e){setFlash('error',$e->getMessage());}header('Location: '.SITE_URL.'/pages/admin-notificacoes.php');exit;
}
$history=$pdo->query('SELECT b.*,u.nome admin_nome,alvo.nome alvo_nome,alvo.aura_id alvo_aura FROM af_admin_broadcasts b LEFT JOIN af_admin_users u ON u.id=b.admin_user_id LEFT JOIN af_usuarios alvo ON alvo.id=b.usuario_alvo_id ORDER BY b.id DESC LIMIT 50')->fetchAll()?:[];
$pageTitle='Admin • Notificações';$showNav=false;$bodyClass='admin-body';$adminPage='notificacoes';require __DIR__.'/../includes/header.php';?>
<div class="admin-shell"><?php require __DIR__.'/../includes/admin_nav.php';?><main class="admin-main"><header class="admin-topbar"><div><small>COMUNICAÇÃO</small><h1>Notificações</h1></div></header><?=renderFlash()?>
<div class="admin-grid-2"><section class="admin-panel"><header><div><small>NOVO ENVIO</small><h2>Enviar notificação</h2></div></header><form method="post" class="admin-form"><?=camposCsrf()?><label>Título<input name="titulo" maxlength="150" required></label><label>Mensagem<textarea name="mensagem" rows="5" required></textarea></label><label>Segmento<select name="segmento"><option value="todos">Todos os usuários</option><option value="ativos">Contas ativas</option><option value="inativos">Contas inativas</option><option value="bloqueados">Bloqueados ou restritos</option></select></label><label>Usuário específico <small>Opcional: AURA-ID, username ou e-mail</small><input name="usuario"></label><button class="admin-primary">Enviar agora</button></form></section>
<section class="admin-panel"><header><div><small>ORIENTAÇÃO</small><h2>Boas práticas</h2></div></header><div class="admin-help"><p>Use envios gerais apenas para informações importantes.</p><p>Para suporte ou moderação, informe um usuário específico.</p><p>Todos os envios ficam registrados com administrador, horário e quantidade de destinatários.</p></div></section></div>
<section class="admin-panel"><header><div><small>HISTÓRICO</small><h2>Últimos envios</h2></div></header><div class="admin-table-wrap"><table class="admin-table"><thead><tr><th>Mensagem</th><th>Público</th><th>Enviadas</th><th>Administrador</th><th>Data</th></tr></thead><tbody><?php foreach($history as $b):?><tr><td><b><?=esc($b['titulo'])?></b><small><?=esc($b['mensagem'])?></small></td><td><?=esc($b['segmento'])?><small><?=esc($b['alvo_nome']??'')?> <?=esc($b['alvo_aura']??'')?></small></td><td><?=(int)$b['total_enviados']?></td><td><?=esc($b['admin_nome'])?></td><td><?=date('d/m/Y H:i',strtotime($b['criado_em']))?></td></tr><?php endforeach;?></tbody></table></div></section></main></div><script src="<?=SITE_URL?>/assets/js/admin.js?v=14.1"></script><?php require __DIR__.'/../includes/footer.php';?>
