<?php
require_once __DIR__.'/includes/config.php';
require_login();
$db=db(); $err=''; $edit=null;

function link_acesso_usuario($usuario){
    $usuario = preg_replace('/[^A-Za-z0-9_-]/','', (string)$usuario);
    $base = rtrim(dirname($_SERVER['SCRIPT_NAME'] ?? ''), '/\\');
    $scheme = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http';
    return $scheme.'://'.($_SERVER['HTTP_HOST'] ?? '').$base.'/'.$usuario.'.php';
}
function cadastro_popup_query($tipo,$nome,$usuario,$senha,$plano,$expires_at){
    $link = link_acesso_usuario($usuario);
    $dados = ['tipo'=>$tipo,'nome'=>$nome,'usuario'=>$usuario,'senha'=>$senha,'plano'=>plan_label($plano),'vencimento'=>($plano==='ilimitado'?'Ilimitado':$expires_at),'link'=>$link];
    return urlencode(base64_encode(json_encode($dados)));
}
function cadastro_popup_get_payload(){
    if(empty($_GET['cadastro_popup'])) return null;
    $raw = base64_decode((string)$_GET['cadastro_popup'], true);
    if(!$raw) return null;
    $dados = json_decode($raw, true);
    return is_array($dados) ? $dados : null;
}



if(isset($_GET['edit'])){ $st=$db->prepare('SELECT * FROM sub_revendas WHERE id=:id'); $st->bindValue(':id',(int)$_GET['edit'],SQLITE3_INTEGER); $edit=$st->execute()->fetchArray(SQLITE3_ASSOC) ?: null; }
if(isset($_GET['toggle'])){ $id=(int)$_GET['toggle']; $db->exec('UPDATE sub_revendas SET manual_blocked=CASE WHEN manual_blocked=1 THEN 0 ELSE 1 END, is_active=CASE WHEN manual_blocked=1 THEN 1 ELSE 0 END, updated_at=CURRENT_TIMESTAMP WHERE id='.$id); header('Location: sub_revendas.php'); exit; }
if(isset($_GET['delete'])){ $id=(int)$_GET['delete']; $db->exec('DELETE FROM sub_revendas WHERE id='.$id); $db->exec("UPDATE client_macs SET owner_type='admin', owner_id=0 WHERE owner_type='subrevenda' AND owner_id=".$id); header('Location: sub_revendas.php'); exit; }
if($_SERVER['REQUEST_METHOD']==='POST'){
    $id=(int)($_POST['id'] ?? 0); $revenda_id=(int)($_POST['revenda_id'] ?? 0); $nome=trim($_POST['nome'] ?? ''); $usuario=trim($_POST['usuario'] ?? ''); $senha=(string)($_POST['senha'] ?? ''); $senha_popup = ($senha!=='' ? $senha : ($id>0 ? 'Senha mantida' : '123456')); $whatsapp=trim($_POST['whatsapp'] ?? ''); $email=trim($_POST['email'] ?? ''); $plano=(string)($_POST['plano'] ?? 'mensal'); if(!array_key_exists($plano, plan_options())) $plano='mensal'; $ativo=isset($_POST['is_active'])?1:0; $manual_blocked=$ativo?0:1;
    if($nome==='' || $usuario===''){ $err='Preencha nome e usuário.'; }
    else{
        $started_at=date('Y-m-d H:i:s'); $expires_at=calculate_expiry_by_plan($plano);
        if($id>0){
            if($senha!==''){ $st=$db->prepare('UPDATE sub_revendas SET revenda_id=:rid,nome=:n,usuario=:u,senha=:s,whatsapp=:w,email=:e,plano=:pl,started_at=:sa,expires_at=:ex,is_active=:a,manual_blocked=:mb,updated_at=CURRENT_TIMESTAMP WHERE id=:id'); $st->bindValue(':s',password_hash($senha,PASSWORD_DEFAULT),SQLITE3_TEXT); }
            else{ $st=$db->prepare('UPDATE sub_revendas SET revenda_id=:rid,nome=:n,usuario=:u,whatsapp=:w,email=:e,plano=:pl,started_at=:sa,expires_at=:ex,is_active=:a,manual_blocked=:mb,updated_at=CURRENT_TIMESTAMP WHERE id=:id'); }
            $st->bindValue(':id',$id,SQLITE3_INTEGER);
        }else{
            if($senha==='') $senha='123456';
            $st=$db->prepare('INSERT INTO sub_revendas(revenda_id,nome,usuario,senha,whatsapp,email,plano,started_at,expires_at,is_active,manual_blocked) VALUES(:rid,:n,:u,:s,:w,:e,:pl,:sa,:ex,:a,:mb)');
            $st->bindValue(':s',password_hash($senha,PASSWORD_DEFAULT),SQLITE3_TEXT);
        }
        $st->bindValue(':rid',$revenda_id,SQLITE3_INTEGER); $st->bindValue(':n',$nome,SQLITE3_TEXT); $st->bindValue(':u',$usuario,SQLITE3_TEXT); $st->bindValue(':w',$whatsapp,SQLITE3_TEXT); $st->bindValue(':e',$email,SQLITE3_TEXT); $st->bindValue(':pl',$plano,SQLITE3_TEXT); $st->bindValue(':sa',$started_at,SQLITE3_TEXT); $st->bindValue(':ex',$expires_at,SQLITE3_TEXT); $st->bindValue(':a',$ativo,SQLITE3_INTEGER); $st->bindValue(':mb',$manual_blocked,SQLITE3_INTEGER); $st->execute();
        header('Location: sub_revendas.php?ok=1&cadastro_popup='.cadastro_popup_query('Sub Revenda',$nome,$usuario,$senha_popup,$plano,$expires_at)); exit;
    }
}
$revendas=[]; $res=$db->query('SELECT id,nome,usuario FROM revendas ORDER BY nome'); while($r=$res->fetchArray(SQLITE3_ASSOC)) $revendas[]=$r;
$rows=[]; $res=$db->query('SELECT s.*, r.nome AS revenda_nome, r.usuario AS revenda_usuario FROM sub_revendas s LEFT JOIN revendas r ON r.id=s.revenda_id ORDER BY s.id DESC'); while($r=$res->fetchArray(SQLITE3_ASSOC)) $rows[]=$r;
include __DIR__.'/includes/header.php';
?>




<?php $popup = cadastro_popup_get_payload(); if($popup): ?>
<style>
.popup-cadastro-bg{position:fixed;inset:0;background:rgba(0,0,0,.74);z-index:99999;display:flex;align-items:center;justify-content:center;padding:18px}
.popup-cadastro-box{width:min(580px,96vw);background:linear-gradient(180deg,#101522,#05070d);border:1px solid #ff8a00;border-radius:18px;box-shadow:0 0 35px rgba(255,138,0,.45);padding:22px;color:#fff;font-family:Arial,sans-serif}
.popup-cadastro-box h2{margin:0 0 8px;color:#ff8a00;font-size:23px}
.popup-cadastro-box .sub{color:#b8c0cc;margin:0 0 16px}
.popup-cadastro-dados{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:14px;margin:12px 0}
.popup-cadastro-dados p{margin:8px 0;font-size:15px}.popup-cadastro-dados b{color:#00e5ff}.popup-cadastro-link{word-break:break-all;color:#00ff88}
.popup-cadastro-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.popup-cadastro-actions button{border:0;border-radius:10px;padding:11px 14px;font-weight:bold;cursor:pointer}
.popup-copy{background:#ff8a00;color:#111}.popup-copy2{background:#00e5ff;color:#111}.popup-close{background:#222b3d;color:#fff;border:1px solid #3b465c!important}
</style>
<div class="popup-cadastro-bg" id="popupCadastro"><div class="popup-cadastro-box">
<h2>✅ <?=h($popup['tipo'] ?? 'Cadastro')?> salvo com sucesso</h2>
<p class="sub">Dados de acesso para entregar ao cliente.</p>
<div class="popup-cadastro-dados" id="dadosCadastroTexto">
<p><b>Tipo:</b> <?=h($popup['tipo'] ?? '')?></p>
<p><b>Nome:</b> <?=h($popup['nome'] ?? '')?></p>
<p><b>Usuário:</b> <?=h($popup['usuario'] ?? '')?></p>
<p><b>Senha:</b> <?=h($popup['senha'] ?? '')?></p>
<p><b>Plano:</b> <?=h($popup['plano'] ?? '')?></p>
<p><b>Vencimento:</b> <?=h($popup['vencimento'] ?? '')?></p>
<p><b>Link de acesso:</b><br><span class="popup-cadastro-link"><?=h($popup['link'] ?? '')?></span></p>
</div>
<div class="popup-cadastro-actions">
<button class="popup-copy" type="button" onclick="copiarDadosCadastro()">📋 Copiar dados</button>
<button class="popup-copy2" type="button" onclick="copiarTexto('<?=h($popup['link'] ?? '')?>')">🔗 Copiar link</button>
<button class="popup-close" type="button" onclick="document.getElementById('popupCadastro').remove()">Fechar</button>
</div></div></div>
<script>
function copiarTexto(txt){if(navigator.clipboard){navigator.clipboard.writeText(txt).then(()=>alert('Copiado!'));}else{var t=document.createElement('textarea');t.value=txt;document.body.appendChild(t);t.select();document.execCommand('copy');document.body.removeChild(t);alert('Copiado!');}}
function copiarDadosCadastro(){var box=document.getElementById('dadosCadastroTexto');copiarTexto(box.innerText.replace(/\n\s+/g,"\n").trim());}
</script>
<?php endif; ?>

<div class="card"><h3>🤝 Sub Revendas</h3><p class="muted">Admin vê todas. Cada sub revenda fica vinculada a uma revenda e possui plano com contador em tempo real.</p><?php if(isset($_GET['ok'])): ?><p class="ok">Sub revenda salva.</p><?php endif; ?><?php if($err): ?><p class="bad"><?=h($err)?></p><?php endif; ?>
<form method="post"><input type="hidden" name="id" value="<?=h($edit['id'] ?? 0)?>"><div class="grid" style="grid-template-columns:repeat(2,minmax(0,1fr));gap:12px">
<div><label>Revenda responsável</label><select name="revenda_id"><option value="0">Sem revenda / Admin</option><?php foreach($revendas as $rv): ?><option value="<?=h($rv['id'])?>" <?=((int)($edit['revenda_id'] ?? 0)===(int)$rv['id'])?'selected':''?>><?=h($rv['nome'] ?: $rv['usuario'])?></option><?php endforeach; ?></select></div>
<div><label>Nome</label><input name="nome" value="<?=h($edit['nome'] ?? '')?>"></div>
<div><label>Usuário</label><input name="usuario" value="<?=h($edit['usuario'] ?? '')?>"></div>
<div><label>Senha <?=($edit?'(deixe vazio para manter)':'')?></label><input type="password" name="senha"></div>
<div><label>Plano / Renovação</label><select name="plano"><?php foreach(plan_options() as $k=>$v): ?><option value="<?=h($k)?>" <?=((string)($edit['plano'] ?? 'mensal')===$k)?'selected':''?>><?=h($v)?></option><?php endforeach; ?></select></div>
<div><label>WhatsApp</label><input name="whatsapp" value="<?=h($edit['whatsapp'] ?? '')?>"></div>

</div><label style="display:flex;gap:8px;align-items:center;margin-top:12px"><input type="checkbox" name="is_active" <?=(!isset($edit['manual_blocked']) || (int)$edit['manual_blocked']===0)?'checked':''?>> Ativo</label><p><button class="btn"><?=($edit?'Salvar / Renovar Sub Revenda':'Salvar Sub Revenda')?></button> <?php if($edit): ?><a class="btn dark" href="sub_revendas.php">Cancelar</a><?php endif; ?></p><p class="muted">Ao salvar com um plano, o vencimento é renovado a partir de agora. Ilimitado fica sem vencimento.</p></form></div>
<div class="card"><h3>Sub revendas cadastradas</h3><table><tr><th>ID</th><th>Nome</th><th>Usuário</th><th>Revenda</th><th>Plano</th><th>Vencimento</th><th>Tempo restante</th><th>Status</th><th>Link de Acesso</th><th>Ações</th></tr><?php foreach($rows as $r): ?><tr><td><?=h($r['id'])?></td><td><?=h($r['nome'])?></td><td><?=h($r['usuario'])?></td><td><?=h($r['revenda_nome'] ?: $r['revenda_usuario'] ?: 'Admin')?></td><td><?=h(plan_label($r['plano'] ?? 'mensal'))?></td><td><?=($r['plano'] ?? '')==='ilimitado'?'♾':h($r['expires_at'] ?? '')?></td><td><?=render_countdown($r)?></td><td><?=plan_status_html($r)?></td><td><?php $lnk=link_acesso_usuario($r['usuario'] ?? ''); ?><button type="button" class="btn dark" onclick="copiarLinkAcesso('<?=h($lnk)?>')">📋 Copiar</button><br><span class="muted"><?=h($lnk)?></span></td><td><a class="btn dark" href="sub_revendas.php?edit=<?=h($r['id'])?>">Editar/Renovar</a> <a class="btn dark" href="app_aparencia.php?owner_type=subrevenda&owner_id=<?=h($r['id'])?>">🎨 Aparência</a> <a class="btn dark" href="sub_revendas.php?toggle=<?=h($r['id'])?>"><?=(int)($r['manual_blocked'] ?? 0)===0?'Bloquear':'Desbloquear'?></a> <a class="btn" onclick="return confirm('Excluir esta sub revenda?')" href="sub_revendas.php?delete=<?=h($r['id'])?>">Excluir</a></td></tr><?php endforeach; ?></table></div>
<?=plan_countdown_script()?>

<script>
function copiarLinkAcesso(link){
    if(navigator.clipboard){
        navigator.clipboard.writeText(link).then(function(){alert('Link copiado');});
    } else {
        var t=document.createElement('textarea');t.value=link;document.body.appendChild(t);t.select();document.execCommand('copy');document.body.removeChild(t);alert('Link copiado');
    }
}
</script>

<?php include __DIR__.'/includes/footer.php'; ?>
