<?php
// modules/admin/configuracion.php
require_once __DIR__ . '/../../config/app.php';
require_once __DIR__ . '/../../config/onedrive.php';
require_once __DIR__ . '/../../includes/OneDriveStorage.php';
require_once __DIR__ . '/../../includes/auth.php';
require_once __DIR__ . '/../../includes/functions.php';
require_once __DIR__ . '/../../includes/flash.php';
requireRol(ROL_ADMIN);

$db        = getDB();
$user      = currentUser();
$pageTitle = 'Configuración Institucional';
$idInst    = (int)($user['id_instituto'] ?? 0);

// Cargar datos del instituto desde tabla institutos
$stInst = $db->prepare("SELECT * FROM institutos WHERE id_instituto = :id");
$stInst->execute([':id' => $idInst]);
$inst = $stInst->fetch() ?: [];

// Cargar campos extra de configuracion_institucional (filtrados por instituto)
$rows = $db->prepare("SELECT clave, valor FROM configuracion_institucional WHERE id_instituto = :id");
$rows->execute([':id' => $idInst]);
$cfg = array_column($rows->fetchAll(), 'valor', 'clave');

// ── POST: Guardar ──────────────────────────────────────────────────────────
if ($_SERVER['REQUEST_METHOD'] === 'POST') {

    // 1. Actualizar datos en tabla institutos
    $nombre    = trim($_POST['nombre']         ?? '');
    $ruc       = trim($_POST['ruc']            ?? '');
    $ciudad    = trim($_POST['ciudad']         ?? '');
    $provincia = trim($_POST['provincia']      ?? '');
    $telefono  = trim($_POST['telefono']       ?? '');
    $email     = trim($_POST['email_contacto'] ?? '');
    $rector    = trim($_POST['nombre_rector'] ?? '');

    // Manejo de logo
    $logoActual = $inst['logo'] ?? null;
    if (!empty($_FILES['logo']['name'])) {
        $ext = strtolower(pathinfo($_FILES['logo']['name'], PATHINFO_EXTENSION));
        if (in_array($ext, ['png','jpg','jpeg','webp','svg'])) {
            $dir = BASE_PATH . '/uploads/institutos/';
            if (!is_dir($dir)) mkdir($dir, 0755, true);
            $fname = 'inst_' . $idInst . '_' . time() . '.' . $ext;
            try {
                OneDriveStorage::upload($_FILES['logo']['tmp_name'], 'institutos_logos', $fname, null, $idInst);
                $logoActual = $fname;
            } catch(Exception $e) { /* logo no subido */ }
        } else {
            flashSet('err', 'Logo: solo PNG, JPG, WEBP o SVG.');
            header('Location: configuracion.php'); exit;
        }
    }

    $db->prepare("
        UPDATE institutos SET
            nombre=:n, ruc=:r, ciudad=:c, provincia=:p,
            telefono=:t, email_contacto=:e, nombre_rector=:re, logo=:l
        WHERE id_instituto=:id
    ")->execute([
        ':n'=>$nombre, ':r'=>$ruc, ':c'=>$ciudad, ':p'=>$provincia,
        ':t'=>$telefono, ':e'=>$email, ':re'=>$rector, ':l'=>$logoActual, ':id'=>$idInst
    ]);

    // 2. Guardar campos extra en configuracion_institucional
    $camposExtra = [
        'nombre_rector', 'siglas_institucion', 'cedula_rector', 'cargo_rector',
        'nombre_gestor_ppp', 'cedula_gestor_ppp', 'cargo_gestor_ppp',
        'nombre_coordinador', 'cedula_coordinador', 'cargo_coordinador',
        'horas_minimas_ppp', 'nota_minima_aprobacion',
    ];

    $st = $db->prepare("
        INSERT INTO configuracion_institucional (id_instituto, clave, valor)
        VALUES (:inst, :clave, :valor)
        ON DUPLICATE KEY UPDATE valor = :valor2, updated_at = NOW()
    ");
    foreach ($camposExtra as $clave) {
        $valor = trim($_POST[$clave] ?? '');
        $st->execute([':inst'=>$idInst, ':clave'=>$clave, ':valor'=>$valor, ':valor2'=>$valor]);
    }

    // Recargar datos
    $stInst->execute([':id' => $idInst]);
    $inst = $stInst->fetch() ?: [];

    registrarAudit($user['id'], 'editar_configuracion', 'institutos', $idInst);
    flashSet('ok', 'Configuración guardada correctamente.');
    header('Location: configuracion.php'); exit;
}
?>
<!DOCTYPE html>
<html lang="es">
<head><?php include __DIR__ . '/../../includes/head.php'; ?>
<link rel="stylesheet" href="<?= BASE_URL ?>/assets/css/sidebar-admin.css">
</head>
<body>
<?php include __DIR__ . '/../../includes/navbar.php'; ?>
<div class="app-shell">
  <?php $sbActivo = 'configuracion'; include __DIR__ . '/../../includes/sidebar_admin.php'; ?>

  <main class="main-area">
    <?= flashHtml() ?>
    <div class="page-header">
      <h4><i class="fa fa-gear me-2" style="color:var(--accent);"></i>Configuración Institucional</h4>
      <p>Datos de tu institución registrados por el administrador del sistema. Puedes actualizarlos aquí.</p>
    </div>

    <form method="POST" enctype="multipart/form-data">

      <!-- ── IDENTIDAD DEL INSTITUTO ── -->
      <div class="tbl-wrap p-4 mb-4">
        <div style="font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-2);margin-bottom:16px;">
          🏫 Identidad del Instituto
        </div>

        <!-- Logo + datos principales -->
        <div class="row g-4 align-items-start mb-3">

          <!-- Logo -->
          <div class="col-md-3 text-center">
            <?php
              $logoUrl = !empty($inst['logo'])
                ? BASE_URL . '/uploads/institutos/' . htmlspecialchars($inst['logo'])
                : null;
            ?>
            <div id="logo-preview-wrap" style="margin-bottom:12px;">
              <?php if ($logoUrl): ?>
                <img id="logo-preview" src="<?= $logoUrl ?>" alt="Logo"
                     style="width:120px;height:120px;object-fit:contain;border-radius:12px;
                            border:2px solid var(--border);background:var(--card-alt);padding:8px;">
              <?php else: ?>
                <div id="logo-placeholder" style="width:120px;height:120px;border-radius:12px;
                     border:2px dashed var(--border);background:var(--card-alt);
                     display:flex;align-items:center;justify-content:center;
                     font-size:36px;margin:0 auto;">🏫</div>
              <?php endif; ?>
            </div>
            <label for="inp-logo" class="btn btn-sm btn-outline-secondary w-100" style="cursor:pointer;">
              <i class="fa fa-upload me-1"></i> Subir logo
            </label>
            <input type="file" id="inp-logo" name="logo" accept=".png,.jpg,.jpeg,.webp,.svg"
                   class="d-none" onchange="previewLogo(this)">
            <div style="font-size:10px;color:var(--text-2);margin-top:6px;">PNG, JPG, SVG — max 2MB</div>
            <?php if (!empty($inst['logo'])): ?>
              <div style="font-size:10px;color:var(--text-2);margin-top:4px;">
                <i class="fa fa-circle-check" style="color:#3dffa0;"></i> Logo actual guardado
              </div>
            <?php endif; ?>
          </div>

          <!-- Nombre + RUC + siglas -->
          <div class="col-md-9">
            <div class="row g-3">
              <div class="col-12">
                <label class="form-label">Nombre oficial de la institución</label>
                <input type="text" name="nombre" class="form-control"
                       value="<?= htmlspecialchars($inst['nombre'] ?? '') ?>"
                       placeholder="Instituto Superior Tecnológico..." required>
              </div>
              <div class="col-md-4">
                <label class="form-label">Siglas</label>
                <input type="text" name="siglas_institucion" class="form-control"
                       value="<?= htmlspecialchars($cfg['siglas_institucion'] ?? '') ?>"
                       placeholder="IST">
              </div>
              <div class="col-md-4">
                <label class="form-label">RUC Institucional</label>
                <input type="text" name="ruc" class="form-control" maxlength="13"
                       value="<?= htmlspecialchars($inst['ruc'] ?? '') ?>"
                       placeholder="0990000000001">
              </div>
              <div class="col-md-4">
                <label class="form-label">Nombre del Rector/a</label>
                <input type="text" name="nombre_rector_inst" class="form-control"
                       value="<?= htmlspecialchars($inst['nombre_rector'] ?? '') ?>"
                       placeholder="Nombres y apellidos">
              </div>
            </div>
          </div>
        </div>

        <!-- Ubicación y contacto -->
        <div class="row g-3">
          <div class="col-md-3">
            <label class="form-label">Ciudad</label>
            <input type="text" name="ciudad" class="form-control"
                   value="<?= htmlspecialchars($inst['ciudad'] ?? '') ?>" placeholder="Guayaquil">
          </div>
          <div class="col-md-3">
            <label class="form-label">Provincia</label>
            <input type="text" name="provincia" class="form-control"
                   value="<?= htmlspecialchars($inst['provincia'] ?? '') ?>" placeholder="Guayas">
          </div>
          <div class="col-md-3">
            <label class="form-label">Teléfono</label>
            <input type="text" name="telefono" class="form-control"
                   value="<?= htmlspecialchars($inst['telefono'] ?? '') ?>" placeholder="+593 4 XXX XXXX">
          </div>
          <div class="col-md-3">
            <label class="form-label">Email institucional</label>
            <input type="email" name="email_contacto" class="form-control"
                   value="<?= htmlspecialchars($inst['email_contacto'] ?? '') ?>" placeholder="info@instituto.edu.ec">
          </div>
        </div>
      </div>

      <!-- ── AUTORIDADES ── -->
      <div class="tbl-wrap p-4 mb-4">
        <div style="font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-2);margin-bottom:16px;">
          👤 Autoridades — Aparecen en reportes y certificados
        </div>
        <div class="row g-3">

          <!-- RECTOR -->
          <div class="col-12">
            <div style="background:var(--card-alt);border-radius:var(--r-lg);padding:16px;border-left:4px solid #1a3a6b;">
              <div style="font-size:12px;font-weight:700;color:#1a3a6b;margin-bottom:12px;">🎓 Rector/a</div>
              <div class="row g-2">
                <div class="col-md-6">
                  <label class="form-label">Nombre completo</label>
                  <input type="text" name="nombre_rector" class="form-control"
                         value="<?= htmlspecialchars($cfg['nombre_rector'] ?? $inst['nombre_rector'] ?? '') ?>"
                         placeholder="CPA. Nombre Apellido, Ing.">
                </div>
                <div class="col-md-3">
                  <label class="form-label">N° Cédula</label>
                  <input type="text" name="cedula_rector" class="form-control"
                         value="<?= htmlspecialchars($cfg['cedula_rector'] ?? '') ?>"
                         placeholder="0902006774" maxlength="13">
                </div>
                <div class="col-md-3">
                  <label class="form-label">Cargo</label>
                  <input type="text" name="cargo_rector" class="form-control"
                         value="<?= htmlspecialchars($cfg['cargo_rector'] ?? 'Rector/a') ?>"
                         placeholder="Rector/a">
                </div>
              </div>
            </div>
          </div>

          <!-- GESTOR PPP -->
          <div class="col-12">
            <div style="background:var(--card-alt);border-radius:var(--r-lg);padding:16px;border-left:4px solid #ec4899;">
              <div style="font-size:12px;font-weight:700;color:#ec4899;margin-bottom:12px;">🏆 Gestor de Prácticas Pre-Profesionales</div>
              <div class="row g-2">
                <div class="col-md-6">
                  <label class="form-label">Nombre completo</label>
                  <input type="text" name="nombre_gestor_ppp" class="form-control"
                         value="<?= htmlspecialchars($cfg['nombre_gestor_ppp'] ?? '') ?>"
                         placeholder="Lcdo./Ing. Nombre Apellido">
                </div>
                <div class="col-md-3">
                  <label class="form-label">N° Cédula</label>
                  <input type="text" name="cedula_gestor_ppp" class="form-control"
                         value="<?= htmlspecialchars($cfg['cedula_gestor_ppp'] ?? '') ?>"
                         placeholder="0900000000" maxlength="13">
                </div>
                <div class="col-md-3">
                  <label class="form-label">Cargo</label>
                  <input type="text" name="cargo_gestor_ppp" class="form-control"
                         value="<?= htmlspecialchars($cfg['cargo_gestor_ppp'] ?? 'Gestor PPP') ?>"
                         placeholder="Gestor PPP">
                </div>
              </div>
            </div>
          </div>

          <!-- COORDINADOR -->
          <div class="col-12">
            <div style="background:var(--card-alt);border-radius:var(--r-lg);padding:16px;border-left:4px solid #2563eb;">
              <div style="font-size:12px;font-weight:700;color:#2563eb;margin-bottom:12px;">📋 Coordinador/a Académico de PPP</div>
              <div class="row g-2">
                <div class="col-md-6">
                  <label class="form-label">Nombre completo</label>
                  <input type="text" name="nombre_coordinador" class="form-control"
                         value="<?= htmlspecialchars($cfg['nombre_coordinador'] ?? '') ?>"
                         placeholder="Ing./Lcdo. Nombre Apellido">
                </div>
                <div class="col-md-3">
                  <label class="form-label">N° Cédula</label>
                  <input type="text" name="cedula_coordinador" class="form-control"
                         value="<?= htmlspecialchars($cfg['cedula_coordinador'] ?? '') ?>"
                         placeholder="0900000000" maxlength="13">
                </div>
                <div class="col-md-3">
                  <label class="form-label">Cargo</label>
                  <input type="text" name="cargo_coordinador" class="form-control"
                         value="<?= htmlspecialchars($cfg['cargo_coordinador'] ?? 'Coordinador/a de PPP') ?>"
                         placeholder="Coordinador/a de PPP">
                </div>
              </div>
            </div>
          </div>

        </div>
      </div>

      <!-- ── PARÁMETROS PPP ── -->
      <div class="tbl-wrap p-4 mb-4">
        <div style="font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-2);margin-bottom:16px;">
          ⚙️ Parámetros de Prácticas Preprofesionales
        </div>
        <div class="row g-3">
          <div class="col-md-4">
            <label class="form-label">Horas mínimas requeridas</label>
            <div class="input-group">
              <input type="number" name="horas_minimas_ppp" class="form-control"
                     value="<?= htmlspecialchars($cfg['horas_minimas_ppp'] ?? '240') ?>"
                     min="100" max="1000" placeholder="240">
              <span class="input-group-text" style="background:var(--card-alt);border-color:var(--border);color:var(--text-2);">horas</span>
            </div>
            <div style="font-size:10px;color:var(--text-2);margin-top:4px;">Según Art. 88 LOES y normativa CES</div>
          </div>
          <div class="col-md-4">
            <label class="form-label">Nota mínima para aprobar</label>
            <div class="input-group">
              <input type="number" name="nota_minima_aprobacion" class="form-control"
                     value="<?= htmlspecialchars($cfg['nota_minima_aprobacion'] ?? '60') ?>"
                     min="50" max="80" placeholder="60">
              <span class="input-group-text" style="background:var(--card-alt);border-color:var(--border);color:var(--text-2);">/ 100</span>
            </div>
          </div>
          <div class="col-md-4">
            <div style="background:var(--card-alt);border-radius:var(--r-lg);padding:14px;border:1px solid var(--border);">
              <div style="font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-2);">Distribución de la nota (fija)</div>
              <div style="font-size:11px;margin-top:8px;color:var(--text);">
                📓 Bitácoras: <strong>20%</strong><br>
                📄 Informe final: <strong>25%</strong><br>
                🏢 Tutor empresa: <strong>30%</strong><br>
                👨‍🏫 Tutor académico: <strong>25%</strong>
              </div>
            </div>
          </div>
        </div>
      </div>

      <div class="d-flex gap-2">
        <button type="submit" class="btn btn-primary">
          <i class="fa fa-save me-2"></i>Guardar configuración
        </button>
        <a href="dashboard.php" class="btn btn-outline-secondary">Cancelar</a>
      </div>
    </form>
  </main>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/js/bootstrap.bundle.min.js"></script>
<script>
// Preview logo antes de subir
function previewLogo(input) {
  if (input.files && input.files[0]) {
    var reader = new FileReader();
    reader.onload = function(e) {
      var existing = document.getElementById('logo-preview');
      if (existing) {
        existing.src = e.target.result;
      } else {
        var ph = document.getElementById('logo-placeholder');
        if (ph) ph.outerHTML = '<img id="logo-preview" src="' + e.target.result + '" alt="Logo" style="width:120px;height:120px;object-fit:contain;border-radius:12px;border:2px solid var(--border);background:var(--card-alt);padding:8px;">';
      }
    };
    reader.readAsDataURL(input.files[0]);
  }
}
// Validación cédulas
document.querySelectorAll('input[name*="cedula"]').forEach(function(inp) {
  inp.addEventListener('input', function() {
    this.value = this.value.replace(/[^0-9]/g, '');
  });
});
</script>
</body>
</html>