<?php
require_once __DIR__ . '/../src/db.php';
require_once __DIR__ . '/../src/helpers.php';

require_login();
if (($_SESSION['tipo'] ?? '') !== 'operador') { header('Location:/arapiraca/vereador.php'); exit; }

$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
$sessao = null;

/** Carrega sessão (se houver) */
if ($id) {
  $stmt = $pdo->prepare("SELECT * FROM sessoes WHERE id=:id");
  $stmt->execute([':id'=>$id]);
  $sessao = $stmt->fetch();
}

/** Carrega todas as legislaturas para o select */
$legs = $pdo->query("
  SELECT id, numero, periodo, data_inicio, data_fim, ativo
  FROM legislaturas
  ORDER BY data_inicio DESC, id DESC
")->fetchAll();

/** Sugestão de legislatura (pela data da sessão ou hoje) */
$refDate = $sessao['data_sessao'] ?? date('Y-m-d');
$stLeg = $pdo->prepare("
  SELECT id FROM legislaturas
  WHERE data_inicio <= :d AND data_fim >= :d
  ORDER BY data_inicio DESC, id DESC
  LIMIT 1
");
$stLeg->execute([':d'=>$refDate]);
$leg_sugerida = (int)($stLeg->fetchColumn() ?: 0);

/** Define o legislatura_id selecionado inicialmente */
$legislatura_id_selected = (int)($sessao['legislatura_id'] ?? 0);
if (!$legislatura_id_selected && $leg_sugerida) {
  $legislatura_id_selected = $leg_sugerida;
}

$msg = null; $err = null;

/** Criação/Edição */
if (is_post()) {
  $numero          = (int)($_POST['numero'] ?? 0);
  $tipo            = trim($_POST['tipo'] ?? 'Ordinária');
  $data            = $_POST['data_sessao'] ?? date('Y-m-d');
  $legislatura_id  = (int)($_POST['legislatura_id'] ?? 0);

  if ($numero <= 0 || $tipo === '' || !$data) {
    $err = "Preencha todos os campos corretamente.";
  }

  if (!$err && $legislatura_id > 0) {
    $chk = $pdo->prepare("SELECT data_inicio, data_fim FROM legislaturas WHERE id=:id");
    $chk->execute([':id'=>$legislatura_id]);
    $leg = $chk->fetch();
    if (!$leg) {
      $err = "Legislatura inválida.";
    } else {
      if (!($data >= $leg['data_inicio'] && $data <= $leg['data_fim'])) {
        $msg = "Atenção: a data da sessão não está dentro do período da legislatura selecionada.";
      }
    }
  }

  if (!$err) {
    if ($id) {
      $stmt = $pdo->prepare("
        UPDATE sessoes
           SET numero=:n, tipo=:t, data_sessao=:d, legislatura_id=:l
         WHERE id=:id
      ");
      $stmt->execute([':n'=>$numero,':t'=>$tipo,':d'=>$data,':l'=>$legislatura_id?:null,':id'=>$id]);
      $msg = trim(($msg ? $msg.' ' : '')."Sessão atualizada.");
    } else {
      $stmt = $pdo->prepare("
        INSERT INTO sessoes (numero, tipo, data_sessao, legislatura_id, status)
        VALUES (:n,:t,:d,:l,'preparacao')
      ");
      $stmt->execute([':n'=>$numero,':t'=>$tipo,':d'=>$data,':l'=>$legislatura_id?:null]);
      $id = (int)$pdo->lastInsertId();
      $msg = trim(($msg ? $msg.' ' : '')."Sessão criada.");
    }

    // Recarrega
    $stmt = $pdo->prepare("SELECT * FROM sessoes WHERE id=:id");
    $stmt->execute([':id'=>$id]);
    $sessao = $stmt->fetch();
    $legislatura_id_selected = (int)($sessao['legislatura_id'] ?? 0);
  }
}

/** Estados para UI */
$status  = $sessao['status'] ?? 'preparacao';
$canStart = $id && ($status !== 'ativa') && ($status !== 'encerrada');
$canClose = $id && ($status !== 'encerrada');
?>
<!doctype html>
<html lang="pt-br">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?= $id ? 'Editar' : 'Nova' ?> Sessão · Admin</title>
<link rel="stylesheet" href="/arapiraca/assets/style.css">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
<style>
  :root{
    --primary:#4f7be8; --primary-2:#3a6ddf;
    --success:#16a34a; --danger:#ef4444;

    --gray-50:#f3f6fb; --gray-100:#e9eef6; --gray-200:#d9dee7; --gray-300:#c9cfd9;
    --gray-400:#9aa3b2; --gray-500:#5b6472; --gray-700:#2e3643; --gray-800:#1b2230; --gray-900:#121827;

    --shadow-sm:0 2px 8px rgba(18,24,39,.08);
    --shadow-md:0 12px 22px rgba(18,24,39,.10);
    --shadow-lg:0 22px 48px rgba(18,24,39,.12);
  }

  html,body{height:100%}
  body{
    font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;
    background:
      radial-gradient(820px 420px at -10% -10%, #e2e8ff 0 60%, transparent 61%),
      radial-gradient(960px 480px at 110% 0%, #ffd6dd 0 55%, transparent 56%),
      linear-gradient(180deg,#edf2f7 0%, #e7ecf4 100%);
    min-height:100vh;
    color:var(--gray-900);
  }

  .header{ background:rgba(255,255,255,.92); backdrop-filter:blur(10px);
    border-bottom:1px solid var(--gray-200); box-shadow:var(--shadow-sm); }
  .header-content{ max-width:1000px; margin:0 auto; padding:12px 20px;
    display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
  .header-left{display:flex; align-items:center; gap:12px; flex-wrap:wrap}
  .back-btn{ display:inline-flex; align-items:center; gap:8px; padding:10px 14px; border-radius:12px;
    background:#fff; color:#223047; text-decoration:none; border:1px solid var(--gray-200);
    font-weight:700; box-shadow:var(--shadow-sm); transition:.2s; }
  .back-btn:hover{ transform:translateY(-1px); background:#f4f7fb; }
  .page-title{ font-size:1.2rem; font-weight:800; color:#1f2937; display:flex; align-items:center; gap:.5rem; }

  .status-chip{ display:inline-flex; align-items:center; gap:.4rem; margin-left:.25rem;
    font-size:.8rem; font-weight:800; padding:.35rem .6rem; border-radius:.55rem;
    border:1px solid var(--gray-300); color:#2f3a4a; background:#fff; }
  .status-ativa{ background:#c9f3d7; color:#065f46; border-color:#9feab8; }
  .status-encerrada{ background:#ffd5da; color:#931a2f; border-color:#ffc0c9; }
  .status-prep{ background:#e2e6ff; color:#2b2fa3; border-color:#c2c9ff; }

  /* ========= Botões (novo visual) ========= */
  .header-actions{display:flex; gap:8px; flex-wrap:wrap}

  .btn{
    --btn-bg:#fff; --btn-fg:#223047; --btn-bd:var(--gray-200);
    display:inline-flex; align-items:center; gap:8px;
    padding:10px 14px; border-radius:12px; text-decoration:none; cursor:pointer;
    border:2px solid var(--btn-bd); background:var(--btn-bg); color:var(--btn-fg);
    font-weight:800; transition:.16s ease; box-shadow:var(--shadow-sm);
  }
  .btn:hover{ transform:translateY(-1px) }
  .btn:disabled,.btn.disabled{ opacity:.55; cursor:not-allowed; }

  /* Primário: preenchido */
  .btn-primary{
    --btn-bg:var(--primary); --btn-fg:#fff; --btn-bd:var(--primary);
    box-shadow:0 8px 18px rgba(79,123,232,.18);
  }
  .btn-primary:hover{ background:var(--primary-2); border-color:var(--primary-2); }

  /* Secundário: contorno */
  .btn-secondary{
    --btn-bg:#fff; --btn-fg:#1f2a44; --btn-bd:var(--gray-300);
    background:#fff;
  }
  .btn-secondary:hover{ background:#f4f7fb; border-color:var(--gray-400); }

  /* Sucesso / Perigo (preenchido) */
  .btn-success{
    --btn-bg:#22c55e; --btn-fg:#fff; --btn-bd:#22c55e;
    box-shadow:0 8px 18px rgba(34,197,94,.18);
  }
  .btn-success:hover{ background:#16a34a; border-color:#16a34a; }

  .btn-danger{
    --btn-bg:var(--danger); --btn-fg:#fff; --btn-bd:var(--danger);
    box-shadow:0 8px 18px rgba(239,68,68,.18);
  }
  .btn-danger:hover{ background:#dc2626; border-color:#dc2626; }

  .main{ max-width:1000px; margin:22px auto; padding:0 20px; }

  .card{ background:#fff; border:1px solid var(--gray-200); border-radius:16px; overflow:hidden; box-shadow:var(--shadow-lg); }
  .card-header{ background:linear-gradient(135deg,var(--primary),var(--primary-2));
    color:#fff; padding:18px; text-align:center; }
  .card-header h2{ margin:0; font-size:1.1rem; font-weight:800; display:flex; gap:.5rem; justify-content:center; align-items:center; }
  .card-body{ padding:22px; }

  .alert{ padding:.75rem 1rem; border-radius:10px; margin-bottom:1rem; display:flex; align-items:center; gap:.5rem; font-weight:700; }
  .alert-success{ background:#c9f3d7; color:#065f46; border:1px solid #9feab8; }
  .alert-error{ background:#ffd5da; color:#931a2f; border:1px solid #ffc0c9; }

  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  @media (max-width:700px){ .form-row{ grid-template-columns:1fr; } }

  .form-group{ margin-bottom:14px; }
  .form-label{ font-size:.9rem; font-weight:800; color:#2f3a4a; margin-bottom:6px; display:block; }
  .input{
    width:100%; padding:12px 14px; border-radius:12px; border:2px solid var(--gray-200);
    background:#fff; color:#1b2230; font-size:1rem; transition:.15s; box-shadow:var(--shadow-sm);
  }
  .input:hover{ border-color:#cbd5e1; }
  .input:focus{ outline:none; border-color:#7aa2f7; box-shadow:0 0 0 3px rgba(122,162,247,.35); }

  .submit{ width:100%; padding:14px; border-radius:12px; font-weight:900; font-size:1rem; }
</style>
</head>
<body>

  <!-- HEADER -->
  <div class="header">
    <div class="header-content">
      <div class="header-left">
        <a href="/arapiraca/admin.php" class="back-btn"><i class="fa-solid fa-arrow-left"></i> Voltar</a>
        <div class="page-title">
          <i class="fa-solid fa-<?= $id ? 'pen-to-square' : 'circle-plus' ?>"></i>
          <?= $id ? 'Editar Sessão' : 'Nova Sessão' ?>
          <?php if($id):
            $chipClass = $status==='ativa' ? 'status-ativa' : ($status==='encerrada' ? 'status-encerrada' : 'status-prep');
            $label = $status==='ativa' ? 'Ativa' : ($status==='encerrada' ? 'Encerrada' : 'Preparação');
          ?>
            <span class="status-chip <?=$chipClass?>"><i class="fa-solid fa-circle"></i> <?=$label?></span>
          <?php endif; ?>
        </div>
      </div>

      <div class="header-actions">
        <?php if($id): ?>
          <a class="btn btn-secondary" href="/arapiraca/admin_materia_nova.php?sessao=<?=$id?>"><i class="fa-solid fa-list-ul"></i> Matérias</a>
          <a class="btn btn-secondary" href="/arapiraca/painel.php?sessao=<?=$id?>" target="_blank"><i class="fa-solid fa-tv"></i> Painel</a>

          <a class="btn btn-success <?= $canStart ? '' : 'disabled' ?>" <?= $canStart ? '' : 'aria-disabled="true" tabindex="-1"' ?> href="/arapiraca/actions.php?op=iniciar_quorum&sessao_id=<?=$id?>">
            <i class="fa-solid fa-play"></i> Iniciar Quórum
          </a>
          <a class="btn btn-danger <?= $canClose ? '' : 'disabled' ?>" <?= $canClose ? '' : 'aria-disabled="true" tabindex="-1"' ?> href="/arapiraca/actions.php?op=encerrar_sessao&sessao_id=<?=$id?>">
            <i class="fa-solid fa-stop"></i> Encerrar Sessão
          </a>
        <?php endif; ?>
      </div>
    </div>
  </div>

  <!-- CONTEÚDO -->
  <main class="main">
    <div class="card">
      <div class="card-header">
        <h2><i class="fa-solid fa-<?= $id ? 'pen-to-square' : 'circle-plus' ?>"></i> <?= $id ? 'Editar Sessão' : 'Criar Nova Sessão' ?></h2>
      </div>
      <div class="card-body">
        <?php if($msg): ?><div class="alert alert-success"><i class="fa-solid fa-check-circle"></i> <?=h($msg)?></div><?php endif; ?>
        <?php if($err): ?><div class="alert alert-error"><i class="fa-solid fa-triangle-exclamation"></i> <?=h($err)?></div><?php endif; ?>

        <form method="post" novalidate>
          <div class="form-row">
            <div class="form-group">
              <label class="form-label" for="numero"><i class="fa-solid fa-hashtag"></i> Número da Sessão</label>
              <input class="input" id="numero" name="numero" type="number" required value="<?=h($sessao['numero'] ?? '')?>" placeholder="Ex.: 1, 2, 3…">
            </div>

            <div class="form-group">
              <label class="form-label" for="tipo"><i class="fa-solid fa-tag"></i> Tipo da Sessão</label>
              <input class="input" id="tipo" name="tipo" list="tiposSessao" required value="<?=h($sessao['tipo'] ?? 'Ordinária')?>" placeholder="Ordinária, Extraordinária…">
              <datalist id="tiposSessao">
                <option value="Ordinária">
                <option value="Extraordinária">
                <option value="Solenidade">
                <option value="Audiência Pública">
              </datalist>
            </div>
          </div>

          <div class="form-row">
            <div class="form-group">
              <label class="form-label" for="data_sessao"><i class="fa-solid fa-calendar-day"></i> Data da Sessão</label>
              <input class="input" id="data_sessao" name="data_sessao" type="date" required value="<?=h($sessao['data_sessao'] ?? date('Y-m-d'))?>">
            </div>

            <div class="form-group">
              <label class="form-label" for="legislatura_id"><i class="fa-solid fa-landmark"></i> Legislatura</label>
              <select class="input" id="legislatura_id" name="legislatura_id">
                <option value="">(sem vínculo)</option>
                <?php foreach ($legs as $L):
                  $sel = ((int)$L['id'] === (int)$legislatura_id_selected) ? 'selected' : '';
                  $label = (int)$L['numero'] . "ª — " . h($L['periodo']) .
                           " (" . date('d/m/Y', strtotime($L['data_inicio'])) . " a " .
                           date('d/m/Y', strtotime($L['data_fim'])) . ")" .
                           ($L['ativo'] ? " • ATIVA" : "");
                ?>
                  <option
                    value="<?= (int)$L['id'] ?>"
                    <?=$sel?>
                    data-inicio="<?= h($L['data_inicio']) ?>"
                    data-fim="<?= h($L['data_fim']) ?>"
                  ><?= $label ?></option>
                <?php endforeach; ?>
              </select>
              <small id="legHint" style="display:block;margin-top:6px;color:#6b7280"></small>
            </div>
          </div>

          <button class="btn btn-primary submit" type="submit">
            <i class="fa-solid fa-<?= $id ? 'floppy-disk' : 'circle-plus' ?>"></i>
            <?= $id ? 'Salvar Alterações' : 'Criar Sessão' ?>
          </button>
        </form>

        <?php if($id): ?>
          <div style="display:flex; gap:8px; flex-wrap:wrap; margin-top:12px">
            <a class="btn btn-secondary" href="/arapiraca/admin_materia_nova.php?sessao=<?=$id?>"><i class="fa-solid fa-arrow-right"></i> Ir para Matérias</a>
            <a class="btn btn-secondary" href="/arapiraca/painel.php?sessao=<?=$id?>" target="_blank"><i class="fa-solid fa-arrow-right"></i> Ver Painel Público</a>
          </div>
        <?php endif; ?>
      </div>
    </div>
  </main>

<script>
  // animação e dicas da legislatura
  document.addEventListener('DOMContentLoaded', () => {
    const card = document.querySelector('.card');
    card.style.opacity='0'; card.style.transform='translateY(16px)';
    requestAnimationFrame(()=> {
      card.style.transition='all .45s ease';
      card.style.opacity='1'; card.style.transform='translateY(0)';
    });

    const dt = document.getElementById('data_sessao');
    const sel = document.getElementById('legislatura_id');
    const hint = document.getElementById('legHint');

    function aplicaHint() {
      const opt = sel.options[sel.selectedIndex];
      if (!opt || !opt.dataset.inicio) { hint.textContent = ''; return; }
      hint.textContent = `Período: ${opt.dataset.inicio.split('-').reverse().join('/')} a ${opt.dataset.fim.split('-').reverse().join('/')}`;
    }

    function sugerirPorData() {
      const d = dt.value; if (!d) return;
      for (const o of sel.options) {
        const ini = o.dataset.inicio, fim = o.dataset.fim;
        if (!ini || !fim) continue;
        if (d >= ini && d <= fim) { sel.value = o.value; break; }
      }
      aplicaHint();
    }

    dt?.addEventListener('change', sugerirPorData);
    sel?.addEventListener('change', aplicaHint);
    aplicaHint();
  });
</script>
</body>
</html>
