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

$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 = [];
$ok_msg  = '';

// ── Helpers ──────────────────────────────────────────────────────────────────
function competencias_juez($pdo, $juez_id) {
    $s = $pdo->prepare("SELECT * FROM mrbs_competencia_jueces WHERE juez_id=? ORDER BY desde ASC");
    $s->execute([$juez_id]);
    return $s->fetchAll(PDO::FETCH_ASSOC);
}

function hay_solapamiento($pdo, $juez_id, $desde, $hasta, $excluir_id = null) {
    $sql = "SELECT COUNT(*) FROM mrbs_competencia_jueces
            WHERE juez_id=? AND desde <= ? AND hasta >= ?";
    $params = [$juez_id, $hasta, $desde];
    if ($excluir_id) { $sql .= " AND id <> ?"; $params[] = $excluir_id; }
    return (int)$pdo->prepare($sql)->execute($params) && ($pdo->prepare($sql)->execute($params) || true)
        ? (function() use ($pdo,$sql,$params){ $s=$pdo->prepare($sql);$s->execute($params);return (int)$s->fetchColumn(); })()
        : 0;
}
// Reescritura limpia del helper
function chk_solapamiento($pdo, $juez_id, $desde, $hasta, $excluir_id = null) {
    $sql = "SELECT COUNT(*) FROM mrbs_competencia_jueces
            WHERE juez_id=? AND desde <= ? AND hasta >= ?";
    $params = [$juez_id, $hasta, $desde];
    if ($excluir_id) { $sql .= " AND id <> ?"; $params[] = $excluir_id; }
    $s = $pdo->prepare($sql);
    $s->execute($params);
    return (int)$s->fetchColumn() > 0;
}

// ── Cargar juez si es edición ─────────────────────────────────────────────
if ($id !== null) {
    $stmt = $pdo->prepare("SELECT * FROM mrbs_juez WHERE juez_id=?");
    $stmt->execute([$id]);
    $reg = $stmt->fetch(PDO::FETCH_ASSOC);
    if (!$reg) { header('Location: listarJueces.php'); exit; }
}

$competencias_vals = ['IPP','JO','Ejec','PenJu','Jub','Lic','Conc'];

// ── Acción: eliminar competencia ──────────────────────────────────────────
if (isset($_GET['del_comp']) && $id !== null) {
    $cid = (int)$_GET['del_comp'];
    $pdo->prepare("DELETE FROM mrbs_competencia_jueces WHERE id=? AND juez_id=?")->execute([$cid, $id]);
    header("Location: crearJuez.php?id=".urlencode($id)."&ok_comp=del");
    exit;
}

// ── Acción: agregar/editar competencia ────────────────────────────────────
if ($_SERVER['REQUEST_METHOD']==='POST' && isset($_POST['action']) && $_POST['action']==='comp') {
    $cid        = isset($_POST['comp_id']) && $_POST['comp_id']!='' ? (int)$_POST['comp_id'] : null;
    $comp_desde = $_POST['comp_desde'] ?? '';
    $comp_hasta = $_POST['comp_hasta'] ?? '';
    $competencia= trim($_POST['competencia'] ?? '');
    $err_comp   = [];
    if (!$comp_desde || !$comp_hasta) $err_comp[] = 'Las fechas son obligatorias.';
    if ($comp_hasta < $comp_desde)    $err_comp[] = 'Hasta debe ser ≥ Desde.';
    if (!$competencia)                $err_comp[] = 'Seleccioná una competencia.';
    if (empty($err_comp) && chk_solapamiento($pdo, $id, $comp_desde, $comp_hasta, $cid)) {
        $err_comp[] = 'El período se superpone con uno existente.';
    }
    if (empty($err_comp)) {
        if ($cid) {
            $pdo->prepare("UPDATE mrbs_competencia_jueces SET desde=?,hasta=?,competencia=? WHERE id=? AND juez_id=?")
                ->execute([$comp_desde,$comp_hasta,$competencia,$cid,$id]);
        } else {
            $pdo->prepare("INSERT INTO mrbs_competencia_jueces (juez_id,desde,hasta,competencia) VALUES (?,?,?,?)")
                ->execute([$id,$comp_desde,$comp_hasta,$competencia]);
        }
        header("Location: crearJuez.php?id=".urlencode($id)."&ok_comp=1");
        exit;
    }
    // Si hay error, caemos al render con $err_comp visible
    $errores = $err_comp;
}

// ── Acción: guardar datos del juez ────────────────────────────────────────
if ($_SERVER['REQUEST_METHOD']==='POST' && isset($_POST['action']) && $_POST['action']==='juez') {
    $new_id        = trim($_POST['juez_id'] ?? '');
    $nombre        = trim($_POST['nombre'] ?? '');
    $nombreCompleto= trim($_POST['nombreCompleto'] ?? '');
    $mail          = trim($_POST['mail'] ?? '');
    $mail2         = trim($_POST['mail2'] ?? '');
    $observaciones = trim($_POST['observaciones'] ?? '');
    $instancia     = (int)($_POST['instancia'] ?? 1);
    $activo        = isset($_POST['activo']) ? 1 : 0;
    $haceVC        = isset($_POST['haceVC']) ? 1 : 0;
    $cuentaAudiencias = isset($_POST['cuentaAudiencias']) ? 1 : 0;
    $colegiosValidos  = ['Rosario','Interdistrital'];
    $distritosValidos = ['Rosario','Villa Constitución','Cañada de Gomez','Casilda','San Lorenzo'];
    $colegio  = in_array($_POST['colegio']  ?? '', $colegiosValidos,  true) ? $_POST['colegio']  : null;
    $distrito = in_array($_POST['distrito'] ?? '', $distritosValidos, true) ? $_POST['distrito'] : null;

    if (!$new_id)         $errores[] = 'El ID es obligatorio (máx. 4 chars).';
    if (strlen($new_id)>4) $errores[] = 'El ID no puede superar 4 caracteres.';
    if (!$nombreCompleto) $errores[] = 'El nombre completo es obligatorio.';

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

    if (empty($errores)) {
        if ($id !== null) {
            $pdo->prepare("UPDATE mrbs_juez SET nombre=?,nombreCompleto=?,mail=?,mail2=?,observaciones=?,instancia=?,activo=?,haceVC=?,cuentaAudiencias=?,colegio=?,distrito=? WHERE juez_id=?")
                ->execute([$nombre,$nombreCompleto,$mail,$mail2,$observaciones,$instancia,$activo,$haceVC,$cuentaAudiencias,$colegio,$distrito,$id]);
            header("Location: crearJuez.php?id=".urlencode($id)."&ok=1");
        } else {
            $pdo->prepare("INSERT INTO mrbs_juez (juez_id,nombre,nombreCompleto,mail,mail2,observaciones,instancia,activo,haceVC,cuentaAudiencias,colegio,distrito) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)")
                ->execute([$new_id,$nombre,$nombreCompleto,$mail,$mail2,$observaciones,$instancia,$activo,$haceVC,$cuentaAudiencias,$colegio,$distrito]);
            header("Location: crearJuez.php?id=".urlencode($new_id)."&ok=1");
        }
        exit;
    }
    $reg = array_merge($reg, $_POST);
}

$v   = fn($k) => htmlspecialchars($reg[$k] ?? '');
$chk = fn($k) => !empty($reg[$k]) ? 'checked' : '';
$sel = fn($k,$val) => ($reg[$k] ?? '') == $val ? 'selected' : '';

$periodos = $id ? competencias_juez($pdo, $id) : [];
// Calcular el periodo actual
$hoy = date('Y-m-d');
$comp_hoy = null;
foreach ($periodos as $p) {
    if ($hoy >= $p['desde'] && $hoy <= $p['hasta']) { $comp_hoy = $p; break; }
}
require __DIR__ . '/../../config/menu.php';
?>
<div class="ph">
  <div>
    <h1><?=$id ? 'Editar Juez' : 'Nuevo Juez'?></h1>
    <div class="bc"><a href="<?=BASE_URL?>/index.php">Inicio</a> › <a href="listarJueces.php">Jueces</a> › <?=$id ? 'Editar' : 'Nuevo'?></div>
  </div>
  <?php if ($id): ?>
    <a href="verTurnosJuez.php?juez_id=<?=urlencode($id)?>" class="btn btn-w">📅 Ver Turnos de Guardia</a>
  <?php endif; ?>
</div>

<?php if (isset($_GET['ok'])): ?><div class="msg msg-ok">Juez guardado correctamente.</div><?php endif; ?>
<?php if (isset($_GET['ok_comp'])): ?><div class="msg msg-ok">Competencia actualizada.</div><?php endif; ?>
<?php if ($errores): ?><div class="msg msg-err"><?=implode('<br>',array_map('htmlspecialchars',$errores))?></div><?php endif; ?>

<!-- ── Formulario datos del juez ── -->
<form method="POST" action="crearJuez.php<?=$id?'?id='.urlencode($id):''?>">
  <input type="hidden" name="action" value="juez">
  <div class="card">
    <div class="sec">Identificación</div>
    <div class="fg">
      <div class="ff">
        <label>ID * (máx. 4 chars)</label>
        <input type="text" name="juez_id" value="<?=$v('juez_id')?>" maxlength="4" required
               <?=$id!==null?'readonly style="background:#f1f5f9"':''?>>
      </div>
      <div class="ff sp2">
        <label>Nombre Completo *</label>
        <input type="text" name="nombreCompleto" value="<?=$v('nombreCompleto')?>" maxlength="50" required>
      </div>
      <div class="ff">
        <label>Apellido Corto</label>
        <input type="text" name="nombre" value="<?=$v('nombre')?>" maxlength="40">
      </div>
    </div>
  </div>
  <div class="card">
    <div class="sec">Contacto y Configuración</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>Instancia</label>
        <select name="instancia">
          <option value="1" <?=$sel('instancia','1')?>>1 - Primera</option>
          <option value="2" <?=$sel('instancia','2')?>>2 - Segunda</option>
        </select>
      </div>
      <div class="ff sp3">
        <label>Observaciones</label>
        <input type="text" name="observaciones" value="<?=$v('observaciones')?>" maxlength="200">
      </div>
      <div class="ff">
        <label>Colegio</label>
        <select name="colegio">
          <option value="">— Sin asignar —</option>
          <?php foreach (['Rosario','Interdistrital'] as $op): ?>
            <option value="<?=$op?>" <?=($reg['colegio']??'')===$op?'selected':''?>><?=$op?></option>
          <?php endforeach; ?>
        </select>
      </div>
      <div class="ff">
        <label>Distrito</label>
        <select name="distrito">
          <option value="">— Sin asignar —</option>
          <?php foreach (['Rosario','Villa Constitución','Cañada de Gomez','Casilda','San Lorenzo'] as $op): ?>
            <option value="<?=htmlspecialchars($op)?>" <?=($reg['distrito']??'')===$op?'selected':''?>><?=htmlspecialchars($op)?></option>
          <?php endforeach; ?>
        </select>
      </div>
    </div>
    <div style="display:flex;gap:24px;flex-wrap:wrap;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>
      <label style="display:flex;align-items:center;gap:6px;font-size:13px"><input type="checkbox" name="haceVC" value="1" <?=$chk('haceVC')?>   > Hace Video Conferencia</label>
      <label style="display:flex;align-items:center;gap:6px;font-size:13px"><input type="checkbox" name="cuentaAudiencias" value="1" <?=$chk('cuentaAudiencias')?>> Cuenta Audiencias</label>
    </div>
  </div>
  <div style="display:flex;gap:8px;margin-top:4px;margin-bottom:24px">
    <button type="submit" class="btn btn-p">Guardar</button>
    <a href="listarJueces.php" class="btn btn-g">Cancelar</a>
  </div>
</form>

<?php if ($id): ?>
<!-- ── Panel Competencias ─────────────────────────────────────────────── -->
<div class="card" style="margin-top:8px">
  <div class="sec" style="display:flex;justify-content:space-between;align-items:center">
    <span>Historial de Competencias</span>
    <?php if ($comp_hoy): ?>
      <span style="font-size:13px;font-weight:normal">
        Hoy: <strong><?=htmlspecialchars($comp_hoy['competencia'])?></strong>
        (<?=htmlspecialchars($comp_hoy['desde'])?> → <?=htmlspecialchars($comp_hoy['hasta'])?>)
      </span>
    <?php endif; ?>
  </div>

  <?php if ($periodos): ?>
  <div class="tw" style="margin-bottom:16px">
    <table>
      <thead><tr><th>Desde</th><th>Hasta</th><th>Competencia</th><th style="width:80px">Acc.</th></tr></thead>
      <tbody>
      <?php foreach ($periodos as $p):
        $esHoy = $hoy >= $p['desde'] && $hoy <= $p['hasta'];
      ?>
        <tr <?=$esHoy?'style="background:#dbeafe;font-weight:bold"':''?>>
          <td><?=htmlspecialchars($p['desde'])?></td>
          <td><?=htmlspecialchars($p['hasta'])?></td>
          <td><?=htmlspecialchars($p['competencia'])?></td>
          <td>
            <a href="?id=<?=urlencode($id)?>&del_comp=<?=$p['id']?>"
               class="btn btn-r btn-sm"
               onclick="return confirm('¿Eliminar este período?')">✕</a>
          </td>
        </tr>
      <?php endforeach; ?>
      </tbody>
    </table>
  </div>
  <?php else: ?>
    <p style="color:#94a3b8;margin-bottom:16px">Sin períodos registrados.</p>
  <?php endif; ?>

  <!-- Agregar nuevo período -->
  <form method="POST" action="crearJuez.php?id=<?=urlencode($id)?>" style="display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end">
    <input type="hidden" name="action" value="comp">
    <div class="fi" style="flex:0 0 140px">
      <label>Desde *</label>
      <input type="date" name="comp_desde" value="<?=htmlspecialchars($_POST['comp_desde']??'')?>" required>
    </div>
    <div class="fi" style="flex:0 0 140px">
      <label>Hasta *</label>
      <input type="date" name="comp_hasta" value="<?=htmlspecialchars($_POST['comp_hasta']??'')?>" required>
    </div>
    <div class="fi" style="flex:0 0 140px">
      <label>Competencia *</label>
      <select name="competencia" required>
        <option value="">-- Seleccionar --</option>
        <?php foreach ($competencias_vals as $cv): ?>
          <option value="<?=$cv?>" <?=(($_POST['competencia']??'')===$cv)?'selected':''?>><?=$cv?></option>
        <?php endforeach; ?>
      </select>
    </div>
    <div style="padding-bottom:2px">
      <button type="submit" class="btn btn-s">+ Agregar período</button>
    </div>
  </form>
</div>
<?php endif; ?>
</div></body></html>
