<?php
// superadmin/nuevo_instituto.php  (también sirve para editar: ?id=X)
require_once __DIR__ . '/auth_sa.php';
require_once __DIR__ . '/../config/onedrive.php';
require_once __DIR__ . '/../includes/OneDriveStorage.php';

$db   = getDB();
$sa   = sa_user();
$idI  = (int)($_GET['id'] ?? 0);
$modo = $idI ? 'editar' : 'nuevo';

// Cargar datos si es edición
$inst = [];
$lic  = [];
if ($idI) {
    $st = $db->prepare("SELECT * FROM institutos WHERE id_instituto=:id");
    $st->execute([':id' => $idI]);
    $inst = $st->fetch() ?: [];
    if (!$inst) { header('Location: dashboard.php'); exit; }

    $stL = $db->prepare("SELECT * FROM licencias WHERE id_instituto=:id ORDER BY id_licencia DESC LIMIT 1");
    $stL->execute([':id' => $idI]);
    $lic = $stL->fetch() ?: [];
}

$error = '';
$ok    = '';

// ── POST: guardar ─────────────────────────────────────────
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $nombre      = trim($_POST['nombre']      ?? '');
    $ruc         = trim($_POST['ruc']         ?? '');
    $ciudad      = trim($_POST['ciudad']      ?? '');
    $provincia   = trim($_POST['provincia']   ?? '');
    $telefono    = trim($_POST['telefono']    ?? '');
    $email_c     = trim($_POST['email_contacto'] ?? '');
    $rector      = trim($_POST['nombre_rector']  ?? '');
    $activo      = isset($_POST['activo']) ? 1 : 0;

    // Licencia
    $plan        = $_POST['plan']            ?? 'basico';
    $max_est     = (int)($_POST['max_estudiantes'] ?? 300);
    $fec_inicio  = $_POST['fecha_inicio']    ?? date('Y-m-d');
    $fec_fin     = $_POST['fecha_fin']       ?? date('Y-m-d', strtotime('+1 year'));
    $precio_a    = (float)($_POST['precio_anual'] ?? 0);
    $precio_e    = (float)($_POST['precio_estudiante'] ?? 0);

    // Admin del instituto
    $admin_nombre  = trim($_POST['admin_nombre']   ?? '');
    $admin_apellido= trim($_POST['admin_apellido']  ?? '');
    $admin_email   = trim($_POST['admin_email']     ?? '');
    $admin_cedula  = trim($_POST['admin_cedula']    ?? '');
    $admin_pass    = trim($_POST['admin_password']  ?? '');

    if (!$nombre) { $error = 'El nombre del instituto es obligatorio.'; }

    // Logo upload
    $logoFile = $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'])) {
            $fname = 'inst_' . ($idI ?: 'new') . '_' . time() . '.' . $ext;
            try {
                OneDriveStorage::upload($_FILES['logo']['tmp_name'], 'institutos_logos', $fname, null, $idI);
                $logoFile = $fname;
            } catch(Exception $e) { /* logo no subido */ }
        } else { $error = 'Logo: solo PNG, JPG, WEBP o SVG.'; }
    }

    if (!$error) {
        if ($modo === 'nuevo') {
            // Insertar instituto
            $db->prepare("
                INSERT INTO institutos (nombre,ruc,logo,ciudad,provincia,telefono,email_contacto,nombre_rector,activo)
                VALUES (:n,:r,:l,:c,:p,:t,:e,:re,:a)
            ")->execute([':n'=>$nombre,':r'=>$ruc,':l'=>$logoFile,':c'=>$ciudad,
                         ':p'=>$provincia,':t'=>$telefono,':e'=>$email_c,':re'=>$rector,':a'=>$activo]);
            $idI = (int)$db->lastInsertId();

            // Insertar licencia
            $db->prepare("
                INSERT INTO licencias (id_instituto,plan,max_estudiantes,fecha_inicio,fecha_fin,precio_anual,precio_estudiante,activa,renovada_por)
                VALUES (:i,:pl,:me,:fi,:ff,:pa,:pe,1,:sa)
            ")->execute([':i'=>$idI,':pl'=>$plan,':me'=>$max_est,':fi'=>$fec_inicio,
                         ':ff'=>$fec_fin,':pa'=>$precio_a,':pe'=>$precio_e,':sa'=>$sa['id']]);

            // Crear usuario administrador del instituto
            if ($admin_email && $admin_pass) {
                $hash = password_hash($admin_pass, PASSWORD_DEFAULT);
                $db->prepare("
                    INSERT INTO usuarios (cedula,nombres,apellidos,email,password_hash,id_rol,id_instituto,activo,cambiar_password)
                    VALUES (:ced,:nom,:ape,:eml,:hsh,1,:ins,1,0)
                    ON DUPLICATE KEY UPDATE id_instituto=:ins2, id_rol=1, activo=1
                ")->execute([':ced'=>$admin_cedula?:$admin_email,':nom'=>$admin_nombre,
                             ':ape'=>$admin_apellido,':eml'=>$admin_email,':hsh'=>$hash,
                             ':ins'=>$idI,':ins2'=>$idI]);
            }
            $ok = "Instituto <strong>{$nombre}</strong> creado exitosamente.";

        } else {
            // Actualizar instituto
            $db->prepare("
                UPDATE institutos SET nombre=:n,ruc=:r,logo=:l,ciudad=:c,provincia=:p,
                telefono=:t,email_contacto=:e,nombre_rector=:re,activo=:a WHERE id_instituto=:id
            ")->execute([':n'=>$nombre,':r'=>$ruc,':l'=>$logoFile,':c'=>$ciudad,
                         ':p'=>$provincia,':t'=>$telefono,':e'=>$email_c,':re'=>$rector,
                         ':a'=>$activo,':id'=>$idI]);

            // Actualizar licencia
            if ($lic) {
                $db->prepare("
                    UPDATE licencias SET plan=:pl,max_estudiantes=:me,fecha_inicio=:fi,fecha_fin=:ff,
                    precio_anual=:pa,precio_estudiante=:pe WHERE id_licencia=:id
                ")->execute([':pl'=>$plan,':me'=>$max_est,':fi'=>$fec_inicio,
                             ':ff'=>$fec_fin,':pa'=>$precio_a,':pe'=>$precio_e,':id'=>$lic['id_licencia']]);
            }
            $ok = "Instituto actualizado correctamente.";
        }
    }
}

$planes = ['prueba'=>'Prueba (demo)','basico'=>'Básico','profesional'=>'Profesional','enterprise'=>'Enterprise'];
$provincias_ec = ['Azuay','Bolívar','Cañar','Carchi','Chimborazo','Cotopaxi','El Oro','Esmeraldas',
                  'Galápagos','Guayas','Imbabura','Loja','Los Ríos','Manabí','Morona Santiago',
                  'Napo','Orellana','Pastaza','Pichincha','Santa Elena','Santo Domingo','Sucumbíos',
                  'Tungurahua','Zamora Chinchipe'];
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>SIGVP — <?= $modo==='nuevo'?'Nuevo':'Editar' ?> Instituto</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" rel="stylesheet">
<style>
body{background:#0f172a;font-family:'Segoe UI',sans-serif;color:#e2e8f0;min-height:100vh;}
.navbar-sa{background:#1e1b4b;border-bottom:1px solid #312e81;padding:12px 24px;
           display:flex;align-items:center;justify-content:space-between;}
.navbar-sa .brand{font-size:16px;font-weight:700;color:#fff;display:flex;align-items:center;gap:10px;}
.navbar-sa .badge-sa{background:#fbbf24;color:#78350f;font-size:10px;font-weight:700;
                     padding:2px 8px;border-radius:20px;text-transform:uppercase;}
.main{padding:24px;max-width:860px;margin:0 auto;}
.card-sa{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:24px;margin-bottom:20px;}
.card-sa-title{font-size:13px;font-weight:700;color:#a5b4fc;text-transform:uppercase;
               letter-spacing:.5px;margin-bottom:16px;display:flex;align-items:center;gap:8px;
               padding-bottom:10px;border-bottom:1px solid #334155;}
.form-label-sa{font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;
               letter-spacing:.5px;display:block;margin-bottom:5px;}
.form-control-sa{background:#0f172a;border:1px solid #334155;color:#e2e8f0;border-radius:8px;
                  padding:8px 12px;font-size:13px;width:100%;}
.form-control-sa:focus{border-color:#4338ca;outline:none;box-shadow:0 0 0 3px rgba(67,56,202,.2);background:#0f172a;color:#e2e8f0;}
select.form-control-sa option{background:#1e293b;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;}
.btn-guardar{background:#4338ca;color:#fff;border:none;border-radius:8px;padding:11px 28px;
             font-size:14px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:8px;}
.btn-guardar:hover{background:#3730a3;}
.btn-back{background:#334155;color:#94a3b8;border:none;border-radius:8px;padding:11px 20px;
          font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;}
.btn-back:hover{background:#475569;color:#e2e8f0;}
.alert-ok{background:#14532d;border:1px solid #16a34a;color:#86efac;border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:13px;}
.alert-err{background:#7f1d1d;border:1px solid #dc2626;color:#fca5a5;border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:13px;}
.logo-preview{width:80px;height:80px;border-radius:10px;object-fit:contain;
              background:#0f172a;border:1px solid #334155;padding:4px;margin-bottom:8px;}
.toggle-wrap{display:flex;align-items:center;gap:10px;margin-top:4px;}
.toggle-wrap input[type=checkbox]{width:18px;height:18px;accent-color:#4338ca;}
.req{color:#f87171;}
.hint{font-size:10px;color:#64748b;margin-top:3px;}
</style>
</head>
<body>

<div class="navbar-sa">
  <div class="brand">
    <i class="fa fa-shield-halved" style="color:#a5b4fc;"></i>
    SIGVP <span class="badge-sa">Super Admin</span>
  </div>
  <a href="dashboard.php" style="color:#94a3b8;text-decoration:none;font-size:12px;">
    <i class="fa fa-arrow-left me-1"></i>Volver al dashboard
  </a>
</div>

<div class="main">

  <h4 style="font-size:20px;font-weight:700;margin-bottom:20px;color:#f1f5f9;">
    <i class="fa fa-<?= $modo==='nuevo'?'plus-circle':'pen' ?> me-2" style="color:#a5b4fc;"></i>
    <?= $modo==='nuevo' ? 'Nuevo instituto cliente' : 'Editar: '.htmlspecialchars($inst['nombre']) ?>
  </h4>

  <?php if ($ok): ?>
    <div class="alert-ok"><i class="fa fa-circle-check me-2"></i><?= $ok ?>
      <a href="dashboard.php" style="color:#86efac;margin-left:10px;">← Volver al dashboard</a>
    </div>
  <?php endif; ?>
  <?php if ($error): ?>
    <div class="alert-err"><i class="fa fa-circle-xmark me-2"></i><?= htmlspecialchars($error) ?></div>
  <?php endif; ?>

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

    <!-- ── DATOS DEL INSTITUTO ── -->
    <div class="card-sa">
      <div class="card-sa-title">
        <i class="fa fa-building"></i> Datos del instituto
      </div>

      <div style="margin-bottom:14px;">
        <label class="form-label-sa">Nombre oficial <span class="req">*</span></label>
        <input type="text" name="nombre" class="form-control-sa"
               placeholder="Instituto Superior Tecnológico..."
               value="<?= htmlspecialchars($inst['nombre'] ?? '') ?>" required>
      </div>

      <div class="grid2" style="margin-bottom:14px;">
        <div>
          <label class="form-label-sa">RUC</label>
          <input type="text" name="ruc" class="form-control-sa" maxlength="13"
                 placeholder="0991234567001"
                 value="<?= htmlspecialchars($inst['ruc'] ?? '') ?>">
        </div>
        <div>
          <label class="form-label-sa">Nombre del rector / director</label>
          <input type="text" name="nombre_rector" class="form-control-sa"
                 placeholder="Nombres y apellidos"
                 value="<?= htmlspecialchars($inst['nombre_rector'] ?? '') ?>">
        </div>
      </div>

      <div class="grid3" style="margin-bottom:14px;">
        <div>
          <label class="form-label-sa">Ciudad</label>
          <input type="text" name="ciudad" class="form-control-sa"
                 placeholder="Guayaquil"
                 value="<?= htmlspecialchars($inst['ciudad'] ?? '') ?>">
        </div>
        <div>
          <label class="form-label-sa">Provincia</label>
          <select name="provincia" class="form-control-sa">
            <option value="">-- Seleccionar --</option>
            <?php foreach ($provincias_ec as $prov): ?>
              <option value="<?= $prov ?>" <?= ($inst['provincia'] ?? '') === $prov ? 'selected' : '' ?>>
                <?= $prov ?>
              </option>
            <?php endforeach; ?>
          </select>
        </div>
        <div>
          <label class="form-label-sa">Teléfono</label>
          <input type="text" name="telefono" class="form-control-sa"
                 placeholder="+593 4 XXX XXXX"
                 value="<?= htmlspecialchars($inst['telefono'] ?? '') ?>">
        </div>
      </div>

      <div style="margin-bottom:14px;">
        <label class="form-label-sa">Email de contacto</label>
        <input type="email" name="email_contacto" class="form-control-sa"
               placeholder="info@instituto.edu.ec"
               value="<?= htmlspecialchars($inst['email_contacto'] ?? '') ?>">
      </div>

      <!-- Logo -->
      <div style="margin-bottom:14px;">
        <label class="form-label-sa">Logo institucional <span class="hint">(PNG, JPG, SVG — max 2MB)</span></label>
        <?php if (!empty($inst['logo'])): ?>
          <div>
            <img src="<?= BASE_URL ?>/uploads/institutos/<?= htmlspecialchars($inst['logo']) ?>"
                 class="logo-preview" alt="Logo actual">
            <div class="hint">Logo actual. Sube uno nuevo para reemplazarlo.</div>
          </div>
        <?php endif; ?>
        <input type="file" name="logo" accept=".png,.jpg,.jpeg,.webp,.svg" class="form-control-sa">
      </div>

      <div>
        <label class="form-label-sa">Estado del instituto</label>
        <div class="toggle-wrap">
          <input type="checkbox" name="activo" id="chk-activo"
                 <?= ($inst['activo'] ?? 1) ? 'checked' : '' ?>>
          <label for="chk-activo" style="font-size:13px;color:#94a3b8;cursor:pointer;">
            Instituto activo (puede usar el sistema)
          </label>
        </div>
      </div>
    </div>

    <!-- ── LICENCIA ── -->
    <div class="card-sa">
      <div class="card-sa-title">
        <i class="fa fa-key"></i> Licencia y plan
      </div>

      <div class="grid2" style="margin-bottom:14px;">
        <div>
          <label class="form-label-sa">Plan</label>
          <select name="plan" class="form-control-sa">
            <?php foreach ($planes as $k => $v): ?>
              <option value="<?= $k ?>" <?= ($lic['plan'] ?? 'basico') === $k ? 'selected' : '' ?>>
                <?= $v ?>
              </option>
            <?php endforeach; ?>
          </select>
        </div>
        <div>
          <label class="form-label-sa">Máximo de estudiantes</label>
          <input type="number" name="max_estudiantes" class="form-control-sa"
                 min="1" max="10000"
                 value="<?= $lic['max_estudiantes'] ?? 300 ?>">
        </div>
      </div>

      <div class="grid2" style="margin-bottom:14px;">
        <div>
          <label class="form-label-sa">Fecha inicio licencia</label>
          <input type="date" name="fecha_inicio" class="form-control-sa"
                 value="<?= $lic['fecha_inicio'] ?? date('Y-m-d') ?>">
        </div>
        <div>
          <label class="form-label-sa">Fecha fin licencia <span class="req">*</span></label>
          <input type="date" name="fecha_fin" class="form-control-sa" required
                 value="<?= $lic['fecha_fin'] ?? date('Y-m-d', strtotime('+1 year')) ?>">
        </div>
      </div>

      <div class="grid2" style="margin-bottom:0;">
        <div>
          <label class="form-label-sa">Precio anual (USD)</label>
          <input type="number" name="precio_anual" class="form-control-sa"
                 min="0" step="0.01" placeholder="2700.00"
                 value="<?= $lic['precio_anual'] ?? '' ?>">
        </div>
        <div>
          <label class="form-label-sa">Precio por estudiante/año (USD)</label>
          <input type="number" name="precio_estudiante" class="form-control-sa"
                 min="0" step="0.01" placeholder="9.00"
                 value="<?= $lic['precio_estudiante'] ?? '' ?>">
        </div>
      </div>
    </div>

    <!-- ── ADMIN DEL INSTITUTO (solo en nuevo) ── -->
    <?php if ($modo === 'nuevo'): ?>
    <div class="card-sa">
      <div class="card-sa-title">
        <i class="fa fa-user-shield"></i> Administrador del instituto
        <span style="font-size:10px;color:#64748b;font-weight:400;text-transform:none;letter-spacing:0;">
          (usuario con rol administrador que gestiona este instituto)
        </span>
      </div>
      <div class="grid2" style="margin-bottom:14px;">
        <div>
          <label class="form-label-sa">Nombres</label>
          <input type="text" name="admin_nombre" class="form-control-sa" placeholder="María">
        </div>
        <div>
          <label class="form-label-sa">Apellidos</label>
          <input type="text" name="admin_apellido" class="form-control-sa" placeholder="Salazar">
        </div>
      </div>
      <div class="grid3" style="margin-bottom:0;">
        <div>
          <label class="form-label-sa">Cédula</label>
          <input type="text" name="admin_cedula" class="form-control-sa" placeholder="0912345678">
        </div>
        <div>
          <label class="form-label-sa">Email institucional</label>
          <input type="email" name="admin_email" class="form-control-sa" placeholder="admin@instituto.edu.ec">
        </div>
        <div>
          <label class="form-label-sa">Contraseña inicial</label>
          <input type="text" name="admin_password" class="form-control-sa" placeholder="Clave inicial">
          <div class="hint">El admin deberá cambiarla al primer ingreso.</div>
        </div>
      </div>
    </div>
    <?php endif; ?>

    <!-- Botones -->
    <div style="display:flex;gap:12px;align-items:center;">
      <button type="submit" class="btn-guardar">
        <i class="fa fa-floppy-disk"></i>
        <?= $modo === 'nuevo' ? 'Crear instituto' : 'Guardar cambios' ?>
      </button>
      <a href="dashboard.php" class="btn-back">
        <i class="fa fa-xmark"></i> Cancelar
      </a>
    </div>

  </form>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/js/bootstrap.bundle.min.js"></script>
</body>
</html>