<?php
require_once __DIR__ . '/auth.php';
requireLogin();

// Eliminar (POST + CSRF)
if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['_accion'] ?? '') === 'eliminar') {
    csrf_check();
    $db = getDB();
    $db->prepare("DELETE FROM dimark_aliados WHERE id=?")->execute([intval($_POST['id'] ?? 0)]);
    header('Location: aliados.php'); exit;
}

$page_title    = 'Aliados y agencias';
$page_subtitle = '10% mensual recurrente por cliente referido';
ob_start(); ?>
<a href="aliados.php?nuevo=1" class="btn btn-primary"><i class="ti ti-plus"></i> Nuevo</a>
<?php $page_actions = ob_get_clean();
require_once 'layout.php';
$db = getDB();

$precios_plan = ['desafiante'=>18,'confiado'=>21,'dinamico'=>28];

if ($_SERVER['REQUEST_METHOD']==='POST') {
    csrf_check();
    $id              = intval($_POST['id']??0);
    $plan_prom       = $_POST['plan_promedio'] ?? 'confiado';
    $clientes_ref    = intval($_POST['clientes_referidos'] ?? 0);
    $comision        = $clientes_ref * ($precios_plan[$plan_prom] ?? 21);
    $codigo          = 'ALI-'.strtoupper(substr(md5(uniqid()),0,6));

    if ($id>0) {
        $db->prepare("UPDATE dimark_aliados SET nombre=?,tipo=?,sector_foco=?,contacto=?,telefono=?,email=?,estado=?,plan_promedio=?,clientes_referidos=?,comision_mensual=?,notas=? WHERE id=?")
           ->execute([clean($_POST['nombre']??''),$_POST['tipo']??'agencia',clean($_POST['sector_foco']??''),clean($_POST['contacto']??''),clean($_POST['telefono']??''),clean($_POST['email']??''),$_POST['estado']??'prospecto',$plan_prom,$clientes_ref,$comision,clean($_POST['notas']??''),$id]);
    } else {
        $db->prepare("INSERT INTO dimark_aliados (nombre,tipo,sector_foco,contacto,telefono,email,estado,codigo_unico,plan_promedio,clientes_referidos,comision_mensual,notas) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)")
           ->execute([clean($_POST['nombre']??''),$_POST['tipo']??'agencia',clean($_POST['sector_foco']??''),clean($_POST['contacto']??''),clean($_POST['telefono']??''),clean($_POST['email']??''),$_POST['estado']??'prospecto',$codigo,$plan_prom,$clientes_ref,$comision,clean($_POST['notas']??'')]);
    }
    header('Location: aliados.php'); exit;
}

$nuevo   = isset($_GET['nuevo']);
$edit_id = intval($_GET['edit']??0);
$editing = null;
if ($edit_id) { $stmt=$db->prepare("SELECT * FROM dimark_aliados WHERE id=?"); $stmt->execute([$edit_id]); $editing=$stmt->fetch(); }

$aliados        = $db->query("SELECT * FROM dimark_aliados ORDER BY FIELD(estado,'activo','en_contacto','prospecto','inactivo'), clientes_referidos DESC")->fetchAll();
$total_comision = $db->query("SELECT COALESCE(SUM(comision_mensual),0) FROM dimark_aliados WHERE estado='activo'")->fetchColumn();
$total_refs     = $db->query("SELECT COALESCE(SUM(clientes_referidos),0) FROM dimark_aliados")->fetchColumn();

$tipos    = ['agencia'=>'Agencia','integrador'=>'Integrador','consultor'=>'Consultor','otro'=>'Otro'];
$estados  = ['prospecto'=>'Prospecto','en_contacto'=>'En contacto','activo'=>'Activo','inactivo'=>'Inactivo'];
$planes   = ['desafiante'=>'Desafiante ($18)','confiado'=>'Confiado ($21)','dinamico'=>'Dinámico ($28)'];
$est_badge= ['prospecto'=>'b-gray','en_contacto'=>'b-amber','activo'=>'b-green','inactivo'=>'b-red'];
?>

<?php if($nuevo): ?>
<form method="POST" style="max-width:640px">
  <input type="hidden" name="_csrf" value="<?= csrf_token() ?>">
  <div class="card" style="margin-bottom:12px">
    <div class="section-label" style="margin-top:0">Datos del aliado</div>
    <div class="form-row">
      <div class="form-group"><label>Nombre *</label><input type="text" name="nombre" required placeholder="Agencia Digital XYZ"></div>
      <div class="form-group"><label>Tipo</label>
        <select name="tipo"><?php foreach($tipos as $k=>$v): ?><option value="<?=$k?>"><?=$v?></option><?php endforeach; ?></select>
      </div>
    </div>
    <div class="form-row">
      <div class="form-group"><label>Sector foco</label><input type="text" name="sector_foco" placeholder="Ecommerce, Hoteles..."></div>
      <div class="form-group"><label>Estado</label>
        <select name="estado"><?php foreach($estados as $k=>$v): ?><option value="<?=$k?>"><?=$v?></option><?php endforeach; ?></select>
      </div>
    </div>
    <div class="form-row">
      <div class="form-group"><label>Contacto</label><input type="text" name="contacto" placeholder="Nombre del responsable"></div>
      <div class="form-group"><label>Teléfono</label><input type="text" name="telefono" placeholder="+57 300..."></div>
    </div>
    <div class="form-group"><label>Email</label><input type="email" name="email" placeholder="contacto@agencia.com"></div>
    <div class="form-row">
      <div class="form-group">
        <label>Plan promedio que cierra</label>
        <select name="plan_promedio"><?php foreach($planes as $k=>$v): ?><option value="<?=$k?>"><?=$v?></option><?php endforeach; ?></select>
        <div style="font-size:11px;color:var(--muted);margin-top:4px">Comisión = clientes × precio plan</div>
      </div>
      <div class="form-group"><label>Clientes referidos</label><input type="number" name="clientes_referidos" value="0" min="0"></div>
    </div>
    <div class="form-group"><label>Notas</label><textarea name="notas" placeholder="Especialidades, audiencia, condiciones..."></textarea></div>
  </div>
  <div style="display:flex;gap:10px">
    <button type="submit" class="btn btn-primary"><i class="ti ti-check"></i> Guardar</button>
    <a href="aliados.php" class="btn">Cancelar</a>
  </div>
</form>

<?php elseif($edit_id && $editing): ?>
<form method="POST" style="max-width:640px">
  <input type="hidden" name="_csrf" value="<?= csrf_token() ?>">
  <input type="hidden" name="id" value="<?=$editing['id']?>">
  <div class="card" style="margin-bottom:12px">
    <div class="section-label" style="margin-top:0">Editar aliado</div>
    <div class="form-row">
      <div class="form-group"><label>Nombre *</label><input type="text" name="nombre" value="<?=clean($editing['nombre'])?>" required></div>
      <div class="form-group"><label>Tipo</label>
        <select name="tipo"><?php foreach($tipos as $k=>$v): ?><option value="<?=$k?>" <?=$editing['tipo']===$k?'selected':''?>><?=$v?></option><?php endforeach; ?></select>
      </div>
    </div>
    <div class="form-row">
      <div class="form-group"><label>Sector foco</label><input type="text" name="sector_foco" value="<?=clean($editing['sector_foco']??'')?>"></div>
      <div class="form-group"><label>Estado</label>
        <select name="estado"><?php foreach($estados as $k=>$v): ?><option value="<?=$k?>" <?=$editing['estado']===$k?'selected':''?>><?=$v?></option><?php endforeach; ?></select>
      </div>
    </div>
    <div class="form-row">
      <div class="form-group"><label>Contacto</label><input type="text" name="contacto" value="<?=clean($editing['contacto']??'')?>"></div>
      <div class="form-group"><label>Teléfono</label><input type="text" name="telefono" value="<?=clean($editing['telefono']??'')?>"></div>
    </div>
    <div class="form-group"><label>Email</label><input type="email" name="email" value="<?=clean($editing['email']??'')?>"></div>
    <div class="form-row">
      <div class="form-group">
        <label>Plan promedio que cierra</label>
        <select name="plan_promedio"><?php foreach($planes as $k=>$v): ?><option value="<?=$k?>" <?=($editing['plan_promedio']??'confiado')===$k?'selected':''?>><?=$v?></option><?php endforeach; ?></select>
      </div>
      <div class="form-group"><label>Clientes referidos</label><input type="number" name="clientes_referidos" value="<?=intval($editing['clientes_referidos']??0)?>" min="0"></div>
    </div>
    <div class="form-group"><label>Notas</label><textarea name="notas"><?=clean($editing['notas']??'')?></textarea></div>
  </div>
  <div style="display:flex;gap:10px">
    <button type="submit" class="btn btn-primary"><i class="ti ti-check"></i> Guardar</button>
    <a href="aliados.php" class="btn">Cancelar</a>
  </div>
</form>

<?php else: ?>

<div class="metrics-grid">
  <div class="metric"><div class="metric-n"><?=count($aliados)?></div><div class="metric-l">Total aliados</div></div>
  <div class="metric"><div class="metric-n green"><?=count(array_filter($aliados,fn($a)=>$a['estado']==='activo'))?></div><div class="metric-l">Activos</div></div>
  <div class="metric"><div class="metric-n"><?=$total_refs?></div><div class="metric-l">Clientes referidos</div></div>
  <div class="metric"><div class="metric-n green">$<?=number_format($total_comision,0)?></div><div class="metric-l">Comisiones/mes (USD)</div></div>
</div>

<div class="table-wrap">
<table>
<thead><tr>
  <th style="width:22%">Aliado / Agencia</th>
  <th style="width:10%">Tipo</th>
  <th style="width:12%">Sector foco</th>
  <th style="width:9%">Estado</th>
  <th style="width:9%">Código</th>
  <th style="width:8%">Plan</th>
  <th style="width:8%">Referidos</th>
  <th style="width:14%">Comisión/mes</th>
  <th style="width:8%"></th>
</tr></thead>
<tbody>
<?php foreach($aliados as $a):
  $plan_p  = $a['plan_promedio'] ?: 'confiado';
  $comision= floatval($a['comision_mensual']) > 0
             ? floatval($a['comision_mensual'])
             : intval($a['clientes_referidos']) * ($precios_plan[$plan_p] ?? 21);
  $plan_labels = ['desafiante'=>'Desaf.','confiado'=>'Confi.','dinamico'=>'Dinámi.'];
?>
<tr>
  <td>
    <strong><?=clean($a['nombre'])?></strong>
    <?php if($a['contacto']): ?><br><span style="font-size:11px;color:var(--muted)"><?=clean($a['contacto'])?></span><?php endif; ?>
  </td>
  <td><span class="badge b-blue"><?=$tipos[$a['tipo']]??$a['tipo']?></span></td>
  <td style="font-size:12px"><?=clean($a['sector_foco']??'—')?></td>
  <td><span class="badge <?=$est_badge[$a['estado']]??'b-gray'?>"><?=$estados[$a['estado']]??$a['estado']?></span></td>
  <td><code style="font-size:10px;background:var(--off);padding:2px 6px;border-radius:4px"><?=clean($a['codigo_unico']??'—')?></code></td>
  <td style="font-size:11px;color:var(--muted)"><?=$plan_labels[$plan_p]??$plan_p?></td>
  <td style="font-weight:500;text-align:center"><?=$a['clientes_referidos']?></td>
  <td style="font-weight:600;color:#0F6E56">$<?=number_format($comision,0)?> USD</td>
  <td style="display:flex;gap:4px">
    <a href="aliados.php?edit=<?=$a['id']?>" class="btn" style="font-size:11px;padding:3px 8px"><i class="ti ti-pencil"></i></a>
    <form method="POST" style="display:inline" onsubmit="return confirm('¿Eliminar <?=addslashes(clean($a['nombre']))?>?')">
      <input type="hidden" name="_csrf" value="<?= csrf_token() ?>">
      <input type="hidden" name="_accion" value="eliminar">
      <input type="hidden" name="id" value="<?=$a['id']?>">
      <button type="submit" class="btn" style="font-size:11px;padding:3px 8px;color:#A32D2D"><i class="ti ti-trash"></i></button>
    </form>
  </td>
</tr>
<?php endforeach; ?>
<?php if(empty($aliados)): ?>
<tr><td colspan="8" style="text-align:center;padding:1.5rem;color:var(--muted)">Sin aliados. <a href="aliados.php?nuevo=1" style="color:var(--black);text-decoration:underline">Agrega el primero →</a></td></tr>
<?php endif; ?>
</tbody>
</table>
</div>
<?php endif; ?>
<?php require_once 'layout_end.php'; ?>
