<?php
$authApp = 'litigantes';
session_start();
require __DIR__ . '/../../config/auth.php';
require __DIR__ . '/../../../../../config/db2.php';
require __DIR__ . '/../../lib/helpers.php';
$paginaActual = 'litigantes';

$LISTA_URL = 'listarDefensoresPrivados.php';
$TITULO    = 'Defensor Privado';

// Primer ID libre en D500-D999
function siguiente_id_defensor_priv(PDO $pdo): string {
    $usados = $pdo->query(
        "SELECT CAST(SUBSTRING(defensor_id,2) AS UNSIGNED) AS n
         FROM mrbs_defensor
         WHERE defensor_id REGEXP '^D[0-9]{3}$'
           AND CAST(SUBSTRING(defensor_id,2) AS UNSIGNED) BETWEEN 500 AND 999"
    )->fetchAll(PDO::FETCH_COLUMN);
    $usados = array_flip($usados);
    for ($i = 500; $i <= 999; $i++) {
        if (!isset($usados[$i])) return 'D' . str_pad($i, 3, '0', STR_PAD_LEFT);
    }
    return 'D???'; // rango D500-D999 agotado (500 slots)
}
$nextId = siguiente_id_defensor_priv($pdo);

$id  = isset($_GET['id']) ? trim($_GET['id']) : null;
if ($id !== null && !perm('litigantes','editar'))  { http_response_code(403); exit('Sin permiso'); }
if ($id === null && !perm('litigantes','agregar')) { http_response_code(403); exit('Sin permiso'); }
$reg = [];
$errores = [];

if ($id !== null) {
    $stmt = $pdo->prepare("SELECT * FROM mrbs_defensor WHERE defensor_id=? AND publico='N'");
    $stmt->execute([$id]);
    $reg = $stmt->fetch(PDO::FETCH_ASSOC);
    if (!$reg) { header("Location: $LISTA_URL"); exit; }
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $new_id    = trim($_POST['defensor_id'] ?? '');
    $apellido  = trim($_POST['apellido'] ?? '');
    $nombres   = trim($_POST['nombres'] ?? '');
    $nombre    = trim($_POST['nombre'] ?? '');
    $nombreOrig= trim($_POST['nombreOrig'] ?? '');
    $mail      = trim($_POST['mail'] ?? '');
    $mail2     = trim($_POST['mail2'] ?? '');
    $telefono  = trim($_POST['telefono'] ?? '');
    $observaciones = trim($_POST['observaciones'] ?? '');
    $activo    = isset($_POST['activo']) ? 1 : 0;

    if (!$new_id)           $errores[] = 'El ID es obligatorio.';
    if (strlen($new_id)>4)  $errores[] = 'El ID no puede superar 4 caracteres.';
    if (!$apellido && !$nombre) $errores[] = 'Ingresá al menos apellido o nombre.';

    if (empty($errores) && $id === null) {
        $ex = $pdo->prepare("SELECT COUNT(*) FROM mrbs_defensor WHERE defensor_id=?");
        $ex->execute([$new_id]);
        if ((int)$ex->fetchColumn() > 0) $errores[] = 'Ya existe un defensor con ese ID.';
    }

    if (empty($errores)) {
        if ($id !== null) {
            $pdo->prepare("UPDATE mrbs_defensor SET apellido=?,nombres=?,nombre=?,nombreOrig=?,mail=?,mail2=?,telefono=?,observaciones=?,activo=? WHERE defensor_id=? AND publico='N'")
                ->execute([$apellido,$nombres,$nombre,$nombreOrig,$mail,$mail2,$telefono,$observaciones,$activo,$id]);
        } else {
            $pdo->prepare("INSERT INTO mrbs_defensor (defensor_id,apellido,nombres,nombre,nombreOrig,mail,mail2,telefono,observaciones,activo,publico) VALUES (?,?,?,?,?,?,?,?,?,?,'N')")
                ->execute([$new_id,$apellido,$nombres,$nombre,$nombreOrig,$mail,$mail2,$telefono,$observaciones,$activo]);
        }
        header("Location: $LISTA_URL?ok=1"); exit;
    }
    $reg = array_merge($reg, $_POST);
}

$v   = fn($k) => htmlspecialchars($reg[$k] ?? '');
$chk = fn($k) => !empty($reg[$k]) ? 'checked' : '';
require __DIR__ . '/../../config/menu.php';
?>
<div class="ph">
  <div>
    <h1><?=$id ? "Editar $TITULO" : "Nuevo $TITULO"?></h1>
    <div class="bc">
      <a href="<?=BASE_URL?>/index.php">Inicio</a> ›
      <a href="<?=$LISTA_URL?>">Defensores</a> ›
      <a href="listarDefensoresPrivados.php">Privados</a> ›
      <?=$id?'Editar':'Nuevo'?>
    </div>
  </div>
</div>

<!-- Badge de tipo -->
<div style="margin-bottom:12px">
  <span style="background:#fef3c7;color:#92400e;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:700">👤 Defensor Privado</span>
</div>

<?php if ($errores): ?><div class="msg msg-err"><?=implode('<br>',array_map('htmlspecialchars',$errores))?></div><?php endif; ?>

<form method="POST" action="crearDefensorPrivado.php<?=$id?'?id='.urlencode($id):''?>">
  <div class="card">
    <div class="sec">Identificación</div>
    <div class="fg">
      <div class="ff">
        <label>ID * <?=$id===null?"<small style='font-weight:normal;color:#2563eb'>(próximo: $nextId)</small>":''?></label>
        <input type="text" name="defensor_id"
               value="<?=$id?htmlspecialchars($id):htmlspecialchars($nextId)?>"
               maxlength="4" required
               <?=$id!==null?'readonly style="background:#f1f5f9"':''?>>
      </div>
      <div class="ff"><label>Apellido</label><input type="text" name="apellido" value="<?=$v('apellido')?>" maxlength="40"></div>
      <div class="ff"><label>Nombres</label><input type="text" name="nombres" value="<?=$v('nombres')?>" maxlength="40"></div>
      <div class="ff"><label>Nombre Corto (grilla)</label><input type="text" name="nombre" value="<?=$v('nombre')?>" maxlength="40"></div>
      <div class="ff sp2"><label>Nombre Original (reportes)</label><input type="text" name="nombreOrig" value="<?=$v('nombreOrig')?>" maxlength="40"></div>
    </div>
  </div>
  <div class="card">
    <div class="sec">Contacto</div>
    <div class="fg">
      <div class="ff"><label>Mail 1</label><input type="email" name="mail" value="<?=$v('mail')?>" maxlength="60"></div>
      <div class="ff"><label>Mail 2</label><input type="email" name="mail2" value="<?=$v('mail2')?>" maxlength="60"></div>
      <div class="ff"><label>Teléfono</label><input type="text" name="telefono" value="<?=$v('telefono')?>" maxlength="20"></div>
      <div class="ff sp3"><label>Observaciones</label><input type="text" name="observaciones" value="<?=$v('observaciones')?>" maxlength="200"></div>
    </div>
    <div style="margin-top:8px">
      <label style="display:flex;align-items:center;gap:6px;font-size:13px">
        <input type="checkbox" name="activo" value="1" <?=$chk('activo')?>> Activo
      </label>
    </div>
  </div>
  <div style="display:flex;gap:8px;margin-top:4px">
    <button type="submit" class="btn btn-p">Guardar</button>
    <a href="<?=$LISTA_URL?>" class="btn btn-g">Cancelar</a>
  </div>
</form>
</div></body></html>
