-- =============================================================
-- FASE 1 — Esquema multi-colegio en siscev
-- Ejecutar conectado a la BD: siscev
-- Compatible: MariaDB 10.0+ / MySQL 8.0+
--
-- COLUMNAS EXISTENTES EN colegio (no se modifican):
--   bdColeg       → nombre de la BD del colegio  (antes: db_name)
--   dominioColeg  → dominio de origen             (antes: dominio_origen)
--   status        → colegio activo/inactivo       (antes: activo)
--
-- CREDENCIALES COMPARTIDAS (mismo servidor):
--   db_host, db_user, db_pass → variables de entorno DB_HOST / DB_USER / DB_PASS
--   No se almacenan en la tabla (son iguales para todos los colegios)
-- =============================================================

-- USE siscev;

-- -------------------------------------------------------------
-- 1. Catálogo global de módulos del portal
-- -------------------------------------------------------------
CREATE TABLE IF NOT EXISTS modulos (
  id         INT          NOT NULL AUTO_INCREMENT,
  slug       VARCHAR(60)  NOT NULL,
  nombre     VARCHAR(120) NOT NULL,
  grupo_menu VARCHAR(60)  DEFAULT NULL,
  orden      INT          NOT NULL DEFAULT 0,
  PRIMARY KEY (id),
  UNIQUE KEY uq_modulos_slug (slug)
) ENGINE=InnoDB;

-- -------------------------------------------------------------
-- 2. Habilitación módulo <-> colegio
-- -------------------------------------------------------------
CREATE TABLE IF NOT EXISTS colegio_modulos (
  id_colegio INT        NOT NULL,
  id_modulo  INT        NOT NULL,
  habilitado TINYINT(1) NOT NULL DEFAULT 0,
  PRIMARY KEY (id_colegio, id_modulo),
  CONSTRAINT fk_cm_modulo FOREIGN KEY (id_modulo) REFERENCES modulos(id)
) ENGINE=InnoDB;

-- -------------------------------------------------------------
-- 3. Config interna de cada módulo por colegio (clave/valor)
-- -------------------------------------------------------------
CREATE TABLE IF NOT EXISTS colegio_modulo_config (
  id_colegio INT         NOT NULL,
  id_modulo  INT         NOT NULL,
  clave      VARCHAR(80) NOT NULL,
  valor      TEXT        DEFAULT NULL,
  PRIMARY KEY (id_colegio, id_modulo, clave),
  CONSTRAINT fk_cmc_modulo FOREIGN KEY (id_modulo) REFERENCES modulos(id)
) ENGINE=InnoDB;

-- -------------------------------------------------------------
-- 4. Constantes institucionales por colegio (reemplaza inicia.php)
--    Valores sensibles (SMTP, claves) se guardarán cifrados con DB_PASS_KEY
-- -------------------------------------------------------------
CREATE TABLE IF NOT EXISTS colegio_config (
  id_colegio INT         NOT NULL,
  clave      VARCHAR(80) NOT NULL,
  valor      TEXT        DEFAULT NULL,
  PRIMARY KEY (id_colegio, clave)
) ENGINE=InnoDB;

-- -------------------------------------------------------------
-- 5. Seed de módulos (25 módulos de menú)
--    Endpoints auxiliares (chat-buscar, encuesta-hacer, etc.)
--    no son toggleables y no se registran aquí
-- -------------------------------------------------------------
INSERT IGNORE INTO modulos (slug, nombre, grupo_menu, orden) VALUES
-- Sin grupo
('home',              'Inicio',                     NULL,              1),
('perfil',            'Mi Perfil',                  NULL,              2),
('comunicados',       'Comunicados',                NULL,              3),
('publicacion',       'Publicaciones',              NULL,              4),
('encuestas',         'Encuestas',                  NULL,             40),
('encuesta',          'Reinscripción',              NULL,             41),
('calendario',        'Calendario de Actividades',  NULL,             50),
-- Administración
('registrar-pago',    'Registrar Pago',             'Administración', 10),
('historial-pagos',   'Historial de Pagos',         'Administración', 11),
-- Documentos
('planilla',          'Planilla de Inscripción',    'Documentos',     20),
('utiles',            'Lista de Útiles',            'Documentos',     21),
('horario',           'Horario de Clases',          'Documentos',     22),
('carnet',            'Carnet de Estudio',          'Documentos',     23),
('const-inscripcion', 'Constancia de Inscripción',  'Documentos',     24),
('const-estudio',     'Constancia de Estudio',      'Documentos',     25),
('const-asistencia',  'Constancia de Asistencia',   'Documentos',     26),
('const-promedio',    'Constancia de Promedio',     'Documentos',     27),
-- Calificaciones
('corte-notas',       'Corte de Notas',             'Calificaciones', 30),
('boletin',           'Boletín de Calificaciones',  'Calificaciones', 31),
-- Evaluaciones
('planificacion',     'Planificación Escolar',      'Evaluaciones',   60),
('cal-evaluaciones',  'Calendario de Evaluaciones', 'Evaluaciones',   61),
-- Aula Virtual
('video-aula',        'Video Aula',                 'Aula Virtual',   70),
('material',          'Material de Clases',         'Aula Virtual',   71),
('chat-docentes',     'Chat con Docentes',          'Aula Virtual',   72),
('docente-guia',      'Docente Guía',               'Aula Virtual',   73);
