-- ========================================================-- SISTEMA DE REGISTRO DE ESTUDIANTES-- C.E.I. Federico Froebel-- ========================================================-- Crear base de datos (si no existe)
CREATE DATABASE IF NOT EXISTS sistemag_FR CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE sistemag_FR;

-- ========================================================-- TABLA: usuarios (SIN ENCRIPTACION - passwords en texto plano)
-- ========================================================
DROP TABLE IF EXISTS inscripciones;
DROP TABLE IF EXISTS grupos;
DROP TABLE IF EXISTS usuarios;

CREATE TABLE usuarios (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    nombre_completo VARCHAR(100) NOT NULL,
    cedula VARCHAR(20),
    rol ENUM('admin','directora','secretaria') DEFAULT 'secretaria',
    activo TINYINT(1) DEFAULT 1,
    fecha_creacion TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    ultimo_acceso DATETIME
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Insertar usuarios por defecto (SIN ENCRIPTACION)
-- Password en texto plano: admin123
INSERT INTO usuarios (username, password, nombre_completo, cedula, rol) VALUES
('admin', 'admin123', 'Administrador del Sistema', 'V-00000000', 'admin'),
('directora', 'directora123', 'Directora', 'V-00000001', 'directora'),
('secretaria', 'secretaria123', 'Secretaria', 'V-00000002', 'secretaria');

-- ========================================================-- TABLA: grupos (cupos)
-- ========================================================
CREATE TABLE grupos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(50) NOT NULL,
    descripcion VARCHAR(100),
    cupo_total INT NOT NULL DEFAULT 0,
    cupo_usado INT NOT NULL DEFAULT 0,
    activo TINYINT(1) DEFAULT 1,
    orden INT DEFAULT 0,
    fecha_creacion TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Insertar grupos con sus cupos
INSERT INTO grupos (nombre, descripcion, cupo_total, orden) VALUES
('Maternal', 'Nivel maternal - Educacion inicial', 15, 1),
('1er grupo', 'Primer grupo - Educacion inicial', 25, 2),
('2do grupo', 'Segundo grupo - Educacion inicial', 25, 3),
('3er grupo', 'Tercer grupo - Educacion inicial', 25, 4);

-- ========================================================-- TABLA: inscripciones
-- ========================================================
CREATE TABLE inscripciones (
    id INT AUTO_INCREMENT PRIMARY KEY,
    
    -- Grupo al que pertenece
    grupo_id INT NOT NULL,
    periodo VARCHAR(50) NOT NULL,
    
    -- Datos del nino
    nino_apellidos VARCHAR(100) NOT NULL,
    nino_nombres VARCHAR(100) NOT NULL,
    sexo ENUM('Masculino','Femenino') NOT NULL,
    fecha_nac DATE,
    edad INT,
    lugar_nac VARCHAR(100),
    procede_de VARCHAR(100),
    procede_lugar VARCHAR(100),
    turno VARCHAR(20),
    
    -- Datos de la madre
    madre_nombre VARCHAR(150),
    madre_parentesco VARCHAR(50),
    madre_ocupacion VARCHAR(100),
    madre_trabajo VARCHAR(100),
    madre_direccion TEXT,
    madre_telefono VARCHAR(20),
    madre_telefono_alt VARCHAR(20),
    
    -- Datos del padre
    padre_nombre VARCHAR(150),
    padre_parentesco VARCHAR(50),
    padre_ocupacion VARCHAR(100),
    padre_trabajo VARCHAR(100),
    padre_direccion TEXT,
    padre_telefono VARCHAR(20),
    padre_telefono_alt VARCHAR(20),
    
    -- Firma y representante
    rep_ci VARCHAR(20),
    fecha_inscripcion DATE,
    cancelo VARCHAR(100),
    correo VARCHAR(100),
    observaciones TEXT,
    
    -- Control
    usuario_registro VARCHAR(50),
    fecha_registro TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    
    FOREIGN KEY (grupo_id) REFERENCES grupos(id) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ========================================================-- FIN DEL SCRIPT
-- ========================================================