yazrkisvs3vvvsv33svrhetrjsvyvsvvyjsvsvs
tavsuysvssvvjvvyjyjkvsvqd
qfogsvvsvsegjdgdfgdskhgdksvqsvshdqsd
<?php
require_once __DIR__ . '/_auth.php';
adm_require_login();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    adm_csrf_verify();
    require_once __DIR__ . '/../helpers/brevo.php';
    $id  = (int)($_POST['id'] ?? 0);
    $act = $_POST['action'] ?? '';
    if ($act === 'update_status' && $id) {
        $status = $_POST['status'] ?? 'sold';
        $notes  = $_POST['notes'] ?? '';
        $assign = $_POST['assigned_to'] ?? '';
        $sess   = $_POST['session_date'] ?? null;
        $dead   = $_POST['deadline'] ?? null;
        $pdo->prepare("UPDATE dm_implementations SET status=?, notes=?, assigned_to=?, session_date=?, deadline=?, updated_at=NOW() WHERE id=?")
            ->execute([$status, $notes, $assign, $sess?:null, $dead?:null, $id]);
        // Emails automáticos por cambio de estado
        $row = $pdo->prepare("SELECT user_id, plan FROM dm_implementations WHERE id=?"); $row->execute([$id]); $r = $row->fetch();
        if ($r) {
            if ($status === 'scheduled') brevo_send((int)$r['user_id'], 'implementation_confirmed', ['deliverables' => _impl_deliverables($r['plan'])]);
            if ($status === 'delivered') brevo_send((int)$r['user_id'], 'implementation_delivered', ['summary' => $notes]);
        }
        adm_audit('impl_status', $id, ['status'=>$status]);
    }
    header('Location: implementations.php'); exit;
}

function _impl_deliverables(string $plan): string {
    return match($plan) {
        'starter'    => '3 módulos conectados, 1 cliente configurado, sesión 30 min',
        'pro'        => 'Todas las APIs, 3 clientes, sesión 1h',
        'agency'     => 'Setup completo, 5 clientes, 2 sesiones de equipo',
        'enterprise' => 'Deployment completo, 10 clientes, 3 sesiones',
        default      => 'Setup incluido en tu plan'
    };
}

$impls = $pdo->query("
    SELECT i.*, u.name, u.email FROM dm_implementations i JOIN dm_users u ON u.id=i.user_id
    ORDER BY FIELD(i.status,'sold','scheduled','in_progress','delivered','closed'), i.created_at DESC
")->fetchAll();

$statuses = ['sold'=>'Vendido','scheduled'=>'Agendado','in_progress'=>'En progreso','delivered'=>'Entregado','closed'=>'Cerrado'];
$status_colors = ['sold'=>'#60a5fa','scheduled'=>'#fbbf24','in_progress'=>'#f59e0b','delivered'=>'#4ade80','closed'=>'#666'];

adm_header('Implementaciones', 'implementations');
?>
<h1 class="adm-h1">🛠 Implementaciones</h1>

<div class="stat-grid" style="margin-bottom:20px">
<?php foreach ($statuses as $s => $l):
  $c = count(array_filter($impls, fn($i) => $i['status'] === $s));
?>
<div class="stat"><div class="val" style="color:<?=$status_colors[$s]?>"><?=$c?></div><div class="lbl"><?=$l?></div></div>
<?php endforeach; ?>
</div>

<div class="card">
  <table>
    <tr><th>Cliente</th><th>Plan</th><th>Precio</th><th>Asignado</th><th>Fecha sesión</th><th>Status</th><th>Editar</th></tr>
    <?php foreach ($impls as $i): ?>
    <tr>
      <td><div style="font-weight:600"><?=htmlspecialchars($i['name'])?></div><div style="color:#666;font-size:11px"><?=htmlspecialchars($i['email'])?></div></td>
      <td style="text-transform:capitalize"><?=$i['plan']?></td>
      <td>$<?=number_format((float)$i['price'],0)?></td>
      <td><?=htmlspecialchars($i['assigned_to']??'—')?></td>
      <td style="font-size:12px"><?=substr($i['session_date']??'—',0,16)?></td>
      <td><span style="color:<?=$status_colors[$i['status']]?>;font-weight:600"><?=$statuses[$i['status']]?></span></td>
      <td>
        <form method="POST" style="display:inline">
          <input type="hidden" name="action" value="update_status">
          <input type="hidden" name="id" value="<?=$i['id']?>">
          <select name="status" style="width:auto;margin-right:4px"><?php foreach($statuses as $s=>$l) echo "<option value=\"$s\"".($i['status']===$s?' selected':'').">$l</option>"; ?></select>
          <input type="text" name="assigned_to" placeholder="Asignado a" value="<?=htmlspecialchars($i['assigned_to']??'')?>" style="width:120px;margin-right:4px">
          <input type="datetime-local" name="session_date" value="<?=str_replace(' ','T',substr($i['session_date']??'',0,16))?>" style="width:160px;margin-right:4px">
          <textarea name="notes" placeholder="Notas internas" style="width:200px;height:32px;vertical-align:top;margin-right:4px"><?=htmlspecialchars($i['notes']??'')?></textarea>
          <button type="submit" class="btn btn-gray">Guardar</button>
        </form>
      </td>
    </tr>
    <?php endforeach; ?>
  </table>
</div>
<?php adm_footer(); ?>
