


-- 🏫 Tabla colegio
CREATE TABLE permisosImportar (
  permisos BOOLEAN DEFAULT FALSE,
    contraseyaAdmin VARCHAR(150)
 
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; 


CREATE TABLE colegio (
  id INT AUTO_INCREMENT PRIMARY KEY,
  nombre VARCHAR(150) NOT NULL UNIQUE,
  direccion VARCHAR(200),
  telefono VARCHAR(30)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 👨‍🏫 Tabla profesores
CREATE TABLE profesores (
  id INT AUTO_INCREMENT PRIMARY KEY,
  nombre VARCHAR(100) NOT NULL,
  email VARCHAR(150) NULL,
  token_sesion VARCHAR(64) NULL,
  password VARCHAR(255) NULL,
  contraseyaTemporal VARCHAR(255) NULL,
  bloqueado BOOLEAN DEFAULT FALSE,
  session_pc VARCHAR(255) NULL,       
  session_celular VARCHAR(255) NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE intentos_ataque (
    id INT AUTO_INCREMENT PRIMARY KEY,
    profesor_id INT NOT NULL,
    fecha DATETIME DEFAULT CURRENT_TIMESTAMP,
    correoIntentoHakeo VARCHAR(255),
    FOREIGN KEY (profesor_id) REFERENCES profesores(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 🔗 Tabla intermedia colegios_profesores
CREATE TABLE colegios_profesores (
  id INT AUTO_INCREMENT PRIMARY KEY,
  colegio_id INT NOT NULL,
  profesor_id INT NOT NULL,
  FOREIGN KEY (colegio_id) REFERENCES colegio(id) ON DELETE CASCADE,
  FOREIGN KEY (profesor_id) REFERENCES profesores(id) ON DELETE CASCADE,
  UNIQUE (colegio_id, profesor_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 📚 Tabla secciones
CREATE TABLE secciones (
  id INT AUTO_INCREMENT PRIMARY KEY,
  nombre VARCHAR(20) NOT NULL,
  colegio_id INT NOT NULL,

  porcentajeCotidiano int,
  porcentajeTarea int,
  porcentajeAsistencia int,
  porcentajeExamen int,
  porcentajeProyectos int ,

  FOREIGN KEY (colegio_id) REFERENCES colegio(id) ON DELETE CASCADE,
  UNIQUE (nombre, colegio_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


-- 🧒 Tabla estudiantes
CREATE TABLE estudiantes (
  id INT AUTO_INCREMENT PRIMARY KEY,
  colegio_id INT NOT NULL,
  cedula VARCHAR(20) NOT NULL UNIQUE,
  nombre VARCHAR(100) NOT NULL,
  trabajoCotidiano VARCHAR(100) NULL,
  tareas VARCHAR(100) NULL,
  proyectos VARCHAR(100) NULL,
  asistencia VARCHAR(100) NULL,
  activo BOOLEAN DEFAULT TRUE,
  FOREIGN KEY (colegio_id) REFERENCES colegio(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;



-- 🆕 Tabla detalleCotidiano

CREATE TABLE detalleCotidiano (
  id INT AUTO_INCREMENT PRIMARY KEY,
  estudiante_id INT NOT NULL,
  seccion_id INT NOT NULL,
  fecha DATE NOT NULL,
  descripcion TEXT NULL,
  puntos DECIMAL(5,2) DEFAULT 0,
  
  FOREIGN KEY (estudiante_id) REFERENCES estudiantes(id) ON DELETE CASCADE,
  FOREIGN KEY (seccion_id) REFERENCES secciones(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 📝 Tabla detalleDeTareas
CREATE TABLE detalleDeTareas (
  id INT AUTO_INCREMENT PRIMARY KEY,
  estudiante_id INT NOT NULL,
  nombreTarea VARCHAR(150) NOT NULL,
  descripcion TEXT NULL,
  fechaEntrega DATE NULL,
  estado ENUM('pendiente','en progreso','finalizado') DEFAULT 'pendiente',
  calificacion DECIMAL(5,2) NULL,
  FOREIGN KEY (estudiante_id) REFERENCES estudiantes(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 🔗 Tabla intermedia estudiantes_secciones
CREATE TABLE estudiantes_secciones (
  id INT AUTO_INCREMENT PRIMARY KEY,
  estudiante_id INT NOT NULL,
  seccion_id INT NOT NULL,
  FOREIGN KEY (estudiante_id) REFERENCES estudiantes(id) ON DELETE CASCADE,
  FOREIGN KEY (seccion_id) REFERENCES secciones(id) ON DELETE CASCADE,
  UNIQUE (estudiante_id, seccion_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ❌ Tipos de ausencia
CREATE TABLE tipoAusencia (
  id INT AUTO_INCREMENT PRIMARY KEY,
  codigo VARCHAR(50) NOT NULL UNIQUE,
  descripcion VARCHAR(150) NOT NULL,
  valor INT NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 📆 Tabla asistencia
CREATE TABLE asistencia (
  id INT AUTO_INCREMENT PRIMARY KEY,
  estudiante_id INT NOT NULL,
  fecha DATE NOT NULL,
  hora TIME NOT NULL DEFAULT CURRENT_TIME,
  tipoAusencia_id INT NOT NULL,
  profesor_id INT NOT NULL,
  FOREIGN KEY (estudiante_id) REFERENCES estudiantes(id) ON DELETE CASCADE,
  FOREIGN KEY (tipoAusencia_id) REFERENCES tipoAusencia(id),
  FOREIGN KEY (profesor_id) REFERENCES profesores(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 🆕 Tabla tipoTrabajoCotidiano
CREATE TABLE tipoTrabajoCotidiano (
  id INT AUTO_INCREMENT PRIMARY KEY,
  codigo VARCHAR(50) NOT NULL UNIQUE,
  descripcion VARCHAR(150) NOT NULL,
  valor DECIMAL(4,2) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 🆕 Tabla cotidiano
CREATE TABLE cotidiano (
  id INT AUTO_INCREMENT PRIMARY KEY,
  estudiante_id INT NOT NULL,
  fecha DATE NOT NULL,
  hora TIME NOT NULL DEFAULT CURRENT_TIME,
  tipoTrabajoCotidiano_id INT NOT NULL,
  profesor_id INT NOT NULL,
  FOREIGN KEY (estudiante_id) REFERENCES estudiantes(id) ON DELETE CASCADE,
  FOREIGN KEY (tipoTrabajoCotidiano_id) REFERENCES tipoTrabajoCotidiano(id),
  FOREIGN KEY (profesor_id) REFERENCES profesores(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;



-- 📝 Tabla de registros de exámenes
CREATE TABLE examenes (
  id INT AUTO_INCREMENT PRIMARY KEY,
  estudiante_id INT NOT NULL,
  seccion_id INT NOT NULL,
  fecha DATE NOT NULL,
  tipo ENUM('examen1','examen2','examen3','examen4') NOT NULL,
  calificacion DECIMAL(5,2) NULL,
  profesor_id INT NOT NULL,
  FOREIGN KEY (estudiante_id) REFERENCES estudiantes(id) ON DELETE CASCADE,
  FOREIGN KEY (seccion_id) REFERENCES secciones(id) ON DELETE CASCADE,
  FOREIGN KEY (profesor_id) REFERENCES profesores(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 📝 Tabla detalleDeProyectos
CREATE TABLE detalleDeProyectos (
  id INT AUTO_INCREMENT PRIMARY KEY,
  estudiante_id INT NOT NULL,
  seccion_id INT NULL,
  nombreProyecto VARCHAR(150) NOT NULL,
  descripcion TEXT NULL,
  fechaEntrega DATE NULL,
  estado ENUM('pendiente','en progreso','finalizado') DEFAULT 'pendiente',
  calificacion DECIMAL(5,2) NULL,
  FOREIGN KEY (estudiante_id) REFERENCES estudiantes(id) ON DELETE CASCADE,
  FOREIGN KEY (seccion_id) REFERENCES secciones(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
