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

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

if ($id !== null) {
    $stmt = $pdo->prepare("SELECT * FROM mrbs_tipo_audiencia WHERE id = ?");
    $stmt->execute([$id]);
    $reg = $stmt->fetch(PDO::FETCH_ASSOC);
    if (!$reg) {
        header('Location: listarTiposAudiencia.php');
        exit;
    }
}

$etapas = ['IPP', 'Intermedia', 'JO', 'Ejecución', 'No Aplica'];
$intervieneOpts = ['IPP', 'JO', 'Ejecución', 'PenJu', 'Otro'];

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $new_id          = trim($_POST['id'] ?? '');
    $tipoAudiencia   = trim($_POST['tipoAudiencia'] ?? '');
    $tipoEnCalendario= trim($_POST['tipoEnCalendario'] ?? '');
    $instancia       = (int)($_POST['instancia'] ?? 1);
    $etapa           = $_POST['etapa'] !== '' ? $_POST['etapa'] : null;
    $intervieneJuezDe= $_POST['intervieneJuezDe'] !== '' ? $_POST['intervieneJuezDe'] : null;
    $ordenGrupo      = $_POST['ordenGrupo'] !== '' ? (int)$_POST['ordenGrupo'] : null;
    $nuestra         = isset($_POST['nuestra']) ? 1 : 0;
    $activa          = isset($_POST['activa']) ? 1 : 0;
    $jurisdiccional  = isset($_POST['jurisdiccional']) ? 1 : 0;
    $esAudiencia     = isset($_POST['esAudiencia']) ? 1 : 0;
    $permiteSuperposicion  = isset($_POST['permiteSuperposicion']) ? 1 : 0;
    $publicaEnGrillaDiaria = isset($_POST['publicaEnGrillaDiaria']) ? 1 : 0;
    $cuenta                = isset($_POST['cuenta']) ? 1 : 0;
    $ponderaPor            = $_POST['ponderaPor'] !== '' ? (int)$_POST['ponderaPor'] : null;

    if (!$new_id)           $errores[] = 'El ID es obligatorio (máximo 4 caracteres).';
    if (strlen($new_id) > 4) $errores[] = 'El ID no puede superar 4 caracteres.';
    if (!$tipoAudiencia)    $errores[] = 'El nombre del tipo es obligatorio.';
    if (!$tipoEnCalendario) $errores[] = 'El nombre en calendario es obligatorio.';

    // Verificar ID duplicado al crear
    if (empty($errores) && $id === null) {
        $existe = $pdo->prepare("SELECT COUNT(*) FROM mrbs_tipo_audiencia WHERE id = ?");
        $existe->execute([$new_id]);
        if ($existe->fetchColumn() > 0) $errores[] = 'Ya existe un tipo con ese ID.';
    }

    if (empty($errores)) {
        if ($id !== null) {
            $pdo->prepare("UPDATE mrbs_tipo_audiencia SET
                tipoAudiencia=?, tipoEnCalendario=?, instancia=?, etapa=?,
                intervieneJuezDe=?, ordenGrupo=?, nuestra=?, activa=?,
                jurisdiccional=?, esAudiencia=?, permiteSuperposicion=?,
                publicaEnGrillaDiaria=?, cuenta=?, ponderaPor=?
                WHERE id=?")
            ->execute([$tipoAudiencia, $tipoEnCalendario, $instancia, $etapa,
                       $intervieneJuezDe, $ordenGrupo, $nuestra, $activa,
                       $jurisdiccional, $esAudiencia, $permiteSuperposicion,
                       $publicaEnGrillaDiaria, $cuenta, $ponderaPor,
                       $id]);
        } else {
            $pdo->prepare("INSERT INTO mrbs_tipo_audiencia
                (id, tipoAudiencia, tipoEnCalendario, instancia, etapa,
                 intervieneJuezDe, ordenGrupo, nuestra, activa,
                 jurisdiccional, esAudiencia, permiteSuperposicion,
                 publicaEnGrillaDiaria, cuenta, ponderaPor)
                VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)")
            ->execute([$new_id, $tipoAudiencia, $tipoEnCalendario, $instancia, $etapa,
                       $intervieneJuezDe, $ordenGrupo, $nuestra, $activa,
                       $jurisdiccional, $esAudiencia, $permiteSuperposicion,
                       $publicaEnGrillaDiaria, $cuenta, $ponderaPor]);
        }
        header('Location: listarTiposAudiencia.php?ok=1');
        exit;
    }

    $reg = array_merge($reg, $_POST);
}

$v   = function($k) use ($reg) { return htmlspecialchars($reg[$k] ?? ''); };
$chk = function($k) use ($reg) { return !empty($reg[$k]) ? 'checked' : ''; };
$sel = function($k, $val) use ($reg) { return ($reg[$k] ?? '') == $val ? 'selected' : ''; };
require __DIR__ . '/../../config/menu.php';
?>
<div class="ph">
  <div>
    <h1><?= $id !== null ? 'Editar Tipo de Audiencia' : 'Nuevo Tipo de Audiencia' ?></h1>
    <div class="bc"><a href="<?= BASE_URL ?>/index.php">Inicio</a> › <a href="listarTiposAudiencia.php">Tipos de Audiencia</a> › <?= $id !== null ? 'Editar' : 'Nuevo' ?></div>
  </div>
</div>

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

<form method="POST" action="crearTipoAudiencia.php<?= $id !== null ? '?id='.urlencode($id) : '' ?>">
  <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="id" value="<?= $v('id') ?>" maxlength="4" required <?= $id !== null ? 'readonly style="background:#f1f5f9"' : '' ?>>
      </div>
      <div class="ff sp2">
        <label>Nombre del Tipo *</label>
        <input type="text" name="tipoAudiencia" value="<?= $v('tipoAudiencia') ?>" maxlength="90" required>
      </div>
      <div class="ff sp2">
        <label>Nombre en Calendario *</label>
        <input type="text" name="tipoEnCalendario" value="<?= $v('tipoEnCalendario') ?>" maxlength="90" required>
      </div>
    </div>
  </div>

  <div class="card">
    <div class="sec">Clasificación</div>
    <div class="fg">
      <div class="ff">
        <label>Instancia</label>
        <select name="instancia">
          <option value="1" <?= $sel('instancia','1') ?>>1 - Penal</option>
          <option value="9" <?= $sel('instancia','9') ?>>9 - Otras</option>
        </select>
      </div>
      <div class="ff">
        <label>Etapa</label>
        <select name="etapa">
          <option value="">-- Sin etapa --</option>
          <?php foreach ($etapas as $e): ?>
            <option value="<?= htmlspecialchars($e) ?>" <?= $sel('etapa',$e) ?>><?= htmlspecialchars($e) ?></option>
          <?php endforeach; ?>
        </select>
      </div>
      <div class="ff">
        <label>Interviene Juez de</label>
        <select name="intervieneJuezDe">
          <option value="">-- Sin asignar --</option>
          <?php foreach ($intervieneOpts as $o): ?>
            <option value="<?= htmlspecialchars($o) ?>" <?= $sel('intervieneJuezDe',$o) ?>><?= htmlspecialchars($o) ?></option>
          <?php endforeach; ?>
        </select>
      </div>
      <div class="ff">
        <label>Orden de Grupo</label>
        <input type="number" name="ordenGrupo" value="<?= $v('ordenGrupo') ?>" min="0">
      </div>
      <div class="ff">
        <label>Pondera Por</label>
        <input type="number" name="ponderaPor" value="<?= $v('ponderaPor') ?>">
      </div>
    </div>
  </div>

  <div class="card">
    <div class="sec">Flags</div>
    <div style="display:flex;gap:24px;flex-wrap:wrap">
      <label style="display:flex;align-items:center;gap:6px;font-size:13px">
        <input type="checkbox" name="activa" value="1" <?= $chk('activa') ?>> Activa
      </label>
      <label style="display:flex;align-items:center;gap:6px;font-size:13px">
        <input type="checkbox" name="nuestra" value="1" <?= $chk('nuestra') ?>> Nuestra
      </label>
      <label style="display:flex;align-items:center;gap:6px;font-size:13px">
        <input type="checkbox" name="jurisdiccional" value="1" <?= $chk('jurisdiccional') ?>> Jurisdiccional
      </label>
      <label style="display:flex;align-items:center;gap:6px;font-size:13px">
        <input type="checkbox" name="esAudiencia" value="1" <?= $chk('esAudiencia') ?>> Es Audiencia
      </label>
      <label style="display:flex;align-items:center;gap:6px;font-size:13px">
        <input type="checkbox" name="permiteSuperposicion" value="1" <?= $chk('permiteSuperposicion') ?>> Permite Superposición
      </label>
      <label style="display:flex;align-items:center;gap:6px;font-size:13px">
        <input type="checkbox" name="publicaEnGrillaDiaria" value="1" <?= $chk('publicaEnGrillaDiaria') ?>> Publica en Grilla Diaria
      </label>
      <label style="display:flex;align-items:center;gap:6px;font-size:13px">
        <input type="checkbox" name="cuenta" value="1" <?= $chk('cuenta') ?>> Cuenta
      </label>
    </div>
  </div>

  <div style="display:flex;gap:8px;margin-top:4px">
    <button type="submit" class="btn btn-p">Guardar</button>
    <a href="listarTiposAudiencia.php" class="btn btn-g">Cancelar</a>
  </div>
</form>
</div></body></html>
