<?php
require_once 'auth.php'; requireLogin();
$db   = getDB();
$user = currentUser();

try {
    $db->exec("CREATE TABLE IF NOT EXISTS dimark_actividades (
        id INT AUTO_INCREMENT PRIMARY KEY,
        tipo ENUM('llamada','reunion','email','demo','propuesta','nota','whatsapp','otro') DEFAULT 'nota',
        prospecto_id INT,
        cliente_id INT,
        descripcion TEXT NOT NULL,
        fecha DATETIME DEFAULT CURRENT_TIMESTAMP,
        usuario_id INT,
        created_at DATETIME DEFAULT CURRENT_TIMESTAMP
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
} catch(Exception $e) {}

// ── REGISTRAR ACTIVIDAD ───────────────────────────────────────────
if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['_accion']??'') === 'crear') {
    csrf_check();
    $tipo  = in_array($_POST['tipo']??'', ['llamada','reunion','email','demo','propuesta','nota','whatsapp','otro']) ? $_POST['tipo'] : 'nota';
    $pid   = intval($_POST['prospecto_id']??0) ?: null;
    $cid   = intval($_POST['cliente_id']??0) ?: null;
    $desc  = clean($_POST['descripcion']??'');
    $fecha = $_POST['fecha'] ?: date('Y-m-d H:i:s');
    if ($desc) {
        $db->prepare("INSERT INTO dimark_actividades (tipo,prospecto_id,cliente_id,descripcion,fecha,usuario_id) VALUES (?,?,?,?,?,?)")
           ->execute([$tipo,$pid,$cid,$desc,$fecha,$user['id']]);
    }
    $back = $_POST['back'] ?? 'actividades.php';
    header('Location: '.$back); exit;
}

// ── ELIMINAR ─────────────────────────────────────────────────────
if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['_accion']??'') === 'eliminar') {
    csrf_check();
    $db->prepare("DELETE FROM dimark_actividades WHERE id=?")->execute([intval($_POST['id'])]);
    header('Location: actividades.php'); exit;
}

$filtro_pid = intval($_GET['prospecto_id']??0);
$filtro_cid = intval($_GET['cliente_id']??0);

$page_title    = 'Actividades';
$page_subtitle = 'Timeline de interacciones con prospectos y clientes';
ob_start(); ?>
<a href="actividades.php?f=nueva" class="btn btn-primary"><i class="ti ti-plus"></i> Registrar actividad</a>
<?php $page_actions = ob_get_clean();
require_once 'layout.php';

$tipo_icon  = ['llamada'=>'ti-phone','reunion'=>'ti-users','email'=>'ti-mail','demo'=>'ti-presentation','propuesta'=>'ti-file-text','nota'=>'ti-notes','whatsapp'=>'ti-brand-whatsapp','otro'=>'ti-activity'];
$tipo_color = ['llamada'=>'#185FA5','reunion'=>'#534AB7','email'=>'#0F6E56','demo'=>'#BA7517','propuesta'=>'#993556','nota'=>'#888880','whatsapp'=>'#25D366','otro'=>'#888880'];
$tipo_badge = ['llamada'=>'b-blue','reunion'=>'b-purple','email'=>'b-teal','demo'=>'b-amber','propuesta'=>'b-coral','nota'=>'b-gray','whatsapp'=>'b-green','otro'=>'b-gray'];

$prospectos_lista = $db->query("SELECT id, empresa FROM dimark_prospectos WHERE estado NOT IN ('ganado','perdido') ORDER BY empresa")->fetchAll();
$clientes_lista   = $db->query("SELECT id, empresa FROM dimark_clientes ORDER BY empresa")->fetchAll();

// Construir WHERE
$where = []; $params = [];
if ($filtro_pid) { $where[] = 'a.prospecto_id=?'; $params[] = $filtro_pid; }
if ($filtro_cid) { $where[] = 'a.cliente_id=?';   $params[] = $filtro_cid; }
$wsql = $where ? 'WHERE '.implode(' AND ',$where) : '';

$stmt = $db->prepare("SELECT a.*, p.empresa as prosp_nombre, c.empresa as cli_nombre, u.nombre as usr_nombre
    FROM dimark_actividades a
    LEFT JOIN dimark_prospectos p ON a.prospecto_id=p.id
    LEFT JOIN dimark_clientes c ON a.cliente_id=c.id
    LEFT JOIN dimark_usuarios u ON a.usuario_id=u.id
    {$wsql}
    ORDER BY a.fecha DESC LIMIT 200");
$stmt->execute($params);
$actividades = $stmt->fetchAll();

$mostrar_form = ($_GET['f']??'') === 'nueva';
?>

<div style="display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap">

<!-- FORM REGISTRAR -->
<?php if($mostrar_form): ?>
<div class="card" style="width:340px;flex-shrink:0">
  <div class="section-label" style="margin-top:0">Nueva actividad</div>
  <form method="POST">
    <input type="hidden" name="_csrf" value="<?=csrf_token()?>">
    <input type="hidden" name="_accion" value="crear">
    <input type="hidden" name="back" value="actividades.php">
    <div class="form-group">
      <label>Tipo</label>
      <select name="tipo">
        <option value="llamada">📞 Llamada</option>
        <option value="whatsapp">💬 WhatsApp</option>
        <option value="reunion">👥 Reunión</option>
        <option value="email">✉️ Email</option>
        <option value="demo">🎯 Demo</option>
        <option value="propuesta">📄 Propuesta</option>
        <option value="nota" selected>📝 Nota</option>
        <option value="otro">Otro</option>
      </select>
    </div>
    <div class="form-group">
      <label>Descripción *</label>
      <textarea name="descripcion" rows="3" required placeholder="¿Qué pasó? ¿Cuál fue el resultado?"></textarea>
    </div>
    <div class="form-group">
      <label>Prospecto (opcional)</label>
      <select name="prospecto_id">
        <option value="">— Ninguno —</option>
        <?php foreach($prospectos_lista as $p): ?>
        <option value="<?=$p['id']?>"><?=clean($p['empresa'])?></option>
        <?php endforeach; ?>
      </select>
    </div>
    <div class="form-group">
      <label>Cliente (opcional)</label>
      <select name="cliente_id">
        <option value="">— Ninguno —</option>
        <?php foreach($clientes_lista as $c): ?>
        <option value="<?=$c['id']?>"><?=clean($c['empresa'])?></option>
        <?php endforeach; ?>
      </select>
    </div>
    <div class="form-group">
      <label>Fecha y hora</label>
      <input type="datetime-local" name="fecha" value="<?=date('Y-m-d\TH:i')?>">
    </div>
    <div style="display:flex;gap:8px">
      <button type="submit" class="btn btn-primary"><i class="ti ti-check"></i> Guardar</button>
      <a href="actividades.php" class="btn">Cancelar</a>
    </div>
  </form>
</div>
<?php endif; ?>

<!-- TIMELINE -->
<div style="flex:1;min-width:300px">

<!-- FILTROS -->
<div style="display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap">
  <form method="GET" style="display:flex;gap:6px;flex-wrap:wrap">
    <select name="prospecto_id" style="padding:6px 10px;border:0.5px solid var(--border2);border-radius:8px;font-family:inherit;font-size:12px" onchange="this.form.submit()">
      <option value="">Todos los prospectos</option>
      <?php foreach($prospectos_lista as $p): ?>
      <option value="<?=$p['id']?>" <?=$filtro_pid==$p['id']?'selected':''?>><?=clean($p['empresa'])?></option>
      <?php endforeach; ?>
    </select>
    <select name="cliente_id" style="padding:6px 10px;border:0.5px solid var(--border2);border-radius:8px;font-family:inherit;font-size:12px" onchange="this.form.submit()">
      <option value="">Todos los clientes</option>
      <?php foreach($clientes_lista as $c): ?>
      <option value="<?=$c['id']?>" <?=$filtro_cid==$c['id']?'selected':''?>><?=clean($c['empresa'])?></option>
      <?php endforeach; ?>
    </select>
    <?php if($filtro_pid||$filtro_cid): ?>
    <a href="actividades.php" class="btn" style="font-size:12px;padding:5px 10px"><i class="ti ti-x"></i> Limpiar</a>
    <?php endif; ?>
  </form>
  <span style="font-size:12px;color:var(--muted);line-height:32px"><?=count($actividades)?> actividades</span>
</div>

<?php if(empty($actividades)): ?>
<div class="alert alert-success"><i class="ti ti-check"></i> Sin actividades registradas aún.</div>
<?php else: ?>
<div style="position:relative">
  <!-- Línea vertical -->
  <div style="position:absolute;left:15px;top:0;bottom:0;width:2px;background:var(--border);border-radius:1px"></div>

<?php
$ultimo_dia = '';
foreach($actividades as $a):
  $dia = date('Y-m-d', strtotime($a['fecha']));
  if ($dia !== $ultimo_dia):
    $ultimo_dia = $dia;
?>
  <div style="display:flex;align-items:center;gap:10px;margin:16px 0 10px;padding-left:32px">
    <span style="font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em">
      <?= $dia === date('Y-m-d') ? 'Hoy' : ($dia === date('Y-m-d', strtotime('-1 day')) ? 'Ayer' : date('d/m/Y', strtotime($dia))) ?>
    </span>
  </div>
<?php endif; ?>
  <div style="display:flex;gap:12px;align-items:flex-start;margin-bottom:10px;padding-left:4px">
    <!-- Punto en línea -->
    <div style="width:24px;height:24px;border-radius:50%;background:<?=$tipo_color[$a['tipo']]??'#888'?>;display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1">
      <i class="ti <?=$tipo_icon[$a['tipo']]??'ti-activity'?>" style="font-size:12px;color:#fff"></i>
    </div>
    <!-- Tarjeta -->
    <div style="flex:1;background:#fff;border:0.5px solid var(--border);border-radius:9px;padding:10px 12px">
      <div style="display:flex;align-items:center;gap:8px;margin-bottom:5px;flex-wrap:wrap">
        <span class="badge <?=$tipo_badge[$a['tipo']]??'b-gray'?>" style="font-size:10px"><?=ucfirst($a['tipo'])?></span>
        <?php if($a['prosp_nombre']): ?>
          <a href="prospectos.php?accion=ver&id=<?=$a['prospecto_id']?>" style="font-size:11px;color:var(--muted)"><i class="ti ti-user" style="font-size:10px"></i> <?=clean($a['prosp_nombre'])?></a>
        <?php elseif($a['cli_nombre']): ?>
          <a href="clientes.php?accion=editar&id=<?=$a['cliente_id']?>" style="font-size:11px;color:var(--muted)"><i class="ti ti-circle-check" style="font-size:10px"></i> <?=clean($a['cli_nombre'])?></a>
        <?php endif; ?>
        <span style="font-size:11px;color:var(--muted);margin-left:auto"><?=date('H:i', strtotime($a['fecha']))?> · <?=clean($a['usr_nombre']??'—')?></span>
      </div>
      <div style="font-size:13px;color:var(--text);line-height:1.5"><?=nl2br(clean($a['descripcion']))?></div>
      <?php if(isAdmin() || $a['usuario_id'] == $user['id']): ?>
      <form method="POST" style="display:inline;float:right;margin-top:4px">
        <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" style="background:none;border:none;cursor:pointer;color:var(--muted);font-size:12px;padding:0" onclick="return confirm('¿Eliminar?')"><i class="ti ti-trash"></i></button>
      </form>
      <?php endif; ?>
    </div>
  </div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div><!-- /timeline -->
</div><!-- /flex -->

<?php require_once 'layout_end.php'; ?>
