-- https://www.phpmyadmin.net/
--

START TRANSACTION;



--
-- Database: `preuni`
--

-- --------------------------------------------------------

--
-- Table structure for table `alertas`
--

CREATE TABLE `alertas` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) NOT NULL,
  `colegio_id` int(11) NOT NULL,
  `tipo` varchar(50) NOT NULL COMMENT 'academica, asistencia, conductual',
  `descripcion` text NOT NULL,
  `nivel` enum('info','atencion','critica') DEFAULT 'info',
  `estado` enum('pendiente','revisada','resuelta') DEFAULT 'pendiente',
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `alumnos`
--

CREATE TABLE `alumnos` (
  `id` int(11) NOT NULL,
  `usuario_id` int(11) DEFAULT NULL COMMENT 'Vincula al alumno con su cuenta de usuario',
  `nombre` varchar(100) NOT NULL,
  `apellido` varchar(100) NOT NULL,
  `grado` enum('4','5') NOT NULL,
  `fecha_nacimiento` date DEFAULT NULL,
  `telefono` varchar(50) DEFAULT NULL,
  `email` varchar(150) DEFAULT NULL,
  `colegio_id` int(11) DEFAULT NULL,
  `created_by_admin` int(11) DEFAULT NULL,
  `carrera_objetivo_id` int(11) DEFAULT NULL,
  `estado` enum('activo','inactivo') DEFAULT 'activo',
  `notas` text DEFAULT NULL,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp(),
  `universidad_objetivo_id` int(11) DEFAULT NULL,
  `ciudad` varchar(100) DEFAULT 'Lima',
  `facial_registrado` tinyint(1) DEFAULT 0,
  `nivel_academico` varchar(20) DEFAULT NULL,
  `email_padre` varchar(150) DEFAULT NULL,
  `email_madre` varchar(150) DEFAULT NULL,
  `foto_perfil` text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `alumnos`
--

INSERT INTO `alumnos` (`id`, `usuario_id`, `nombre`, `apellido`, `grado`, `fecha_nacimiento`, `telefono`, `email`, `colegio_id`, `created_by_admin`, `carrera_objetivo_id`, `estado`, `notas`, `creado_en`, `universidad_objetivo_id`, `ciudad`, `facial_registrado`, `nivel_academico`, `email_padre`, `email_madre`, `foto_perfil`) VALUES
(52, NULL, 'LUXIANA', 'VELLAVERDE', '5', NULL, '9658700093', 'juana@DIATAS.prealtum.pe', NULL, 81, 41, 'activo', NULL, '2026-05-18 04:49:36', 34, 'Lima', 1, NULL, NULL, NULL, NULL),
(53, NULL, 'maria', 'harol', '4', NULL, '965870094', 'amriaharol@BLASSED.prealtum.pe', 81, 17, 41, 'activo', NULL, '2026-05-19 06:24:58', 96, 'Lima', 1, NULL, NULL, NULL, NULL),
(54, 94, 'aaa', 'aaa', '4', NULL, '9658700095', 'aaaaa@BLASSED.prealtum.pe', 81, 17, 44, 'activo', '', '2026-05-26 18:46:06', 95, 'Lima', 1, 'Intermedio', 'yamileblas25@gmail.com', 'yamileblassm@gmail.com', NULL);

-- --------------------------------------------------------

--
-- Table structure for table `alumno_logros`
--

CREATE TABLE `alumno_logros` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) NOT NULL,
  `colegio_id` int(11) DEFAULT NULL COMMENT 'Tenant',
  `logro_id` int(11) NOT NULL,
  `fecha_obtenido` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `alumno_logros`
--

INSERT INTO `alumno_logros` (`id`, `alumno_id`, `colegio_id`, `logro_id`, `fecha_obtenido`) VALUES
(22, 52, NULL, 10, '2026-05-18 05:54:36'),
(23, 53, NULL, 10, '2026-05-19 06:30:55'),
(25, 54, NULL, 10, '2026-05-28 19:10:17');

-- --------------------------------------------------------

--
-- Table structure for table `anuncios`
--

CREATE TABLE `anuncios` (
  `id` int(11) NOT NULL,
  `titulo` varchar(200) NOT NULL,
  `contenido` text NOT NULL,
  `tipo` enum('info','alerta','exito','urgente') DEFAULT 'info',
  `alumno_id` int(11) DEFAULT NULL COMMENT 'NULL = para todos los alumnos',
  `visible_hasta` datetime DEFAULT NULL COMMENT 'NULL = sin vencimiento',
  `activo` tinyint(1) DEFAULT 1,
  `creado_por` int(11) DEFAULT NULL,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp(),
  `colegio_id` int(11) DEFAULT NULL,
  `grado_target` enum('4','5') DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `anuncios`
--

INSERT INTO `anuncios` (`id`, `titulo`, `contenido`, `tipo`, `alumno_id`, `visible_hasta`, `activo`, `creado_por`, `creado_en`, `colegio_id`, `grado_target`) VALUES
(4, '📄 Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico diario ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=1', 'exito', 54, NULL, 1, NULL, '2026-06-04 00:01:43', 81, NULL),
(5, '📄 Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico semanal ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=2', 'exito', 54, NULL, 1, NULL, '2026-06-04 00:11:24', 81, NULL),
(6, '📄 Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico semanal ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=3', 'exito', 54, NULL, 1, NULL, '2026-06-04 00:14:49', 81, NULL),
(7, '📄 Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico semanal ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=4', 'exito', 54, NULL, 1, NULL, '2026-06-04 00:17:12', 81, NULL),
(8, '📄 Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico diario ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=5', 'exito', 54, NULL, 1, NULL, '2026-06-04 00:34:25', 81, NULL),
(9, '📄 Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico diario ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=6', 'exito', 54, NULL, 1, NULL, '2026-06-04 00:34:37', 81, NULL),
(10, '📄 Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico diario manual ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=7', 'exito', 54, NULL, 1, NULL, '2026-06-04 00:34:54', 81, NULL),
(11, '📄 Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico diario manual ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=8', 'exito', 54, NULL, 1, NULL, '2026-06-04 00:35:51', 81, NULL),
(12, '📄 Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico diario ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=9', 'exito', 54, NULL, 1, NULL, '2026-06-04 02:54:59', 81, NULL),
(13, '📄 Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico diario ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=10', 'exito', 54, NULL, 1, NULL, '2026-06-04 03:11:45', 81, NULL),
(14, '📄 Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico diario ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=11', 'exito', 54, NULL, 1, NULL, '2026-06-04 03:31:19', 81, NULL),
(15, '📄 Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico diario ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=12', 'exito', 54, NULL, 1, NULL, '2026-06-04 06:31:26', 81, NULL),
(16, '📄 Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico diario ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=13', 'exito', 54, NULL, 1, NULL, '2026-06-04 06:51:00', 81, NULL),
(17, 'Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico diario ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=14', 'exito', 54, NULL, 1, NULL, '2026-06-04 07:03:18', 81, NULL),
(18, 'Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico diario ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=15', 'exito', 54, NULL, 1, NULL, '2026-06-04 07:07:46', 81, NULL),
(19, 'Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico general ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=16', 'exito', 54, NULL, 1, NULL, '2026-06-04 07:08:40', 81, NULL),
(20, 'Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico diario ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=17', 'exito', 54, NULL, 1, NULL, '2026-06-04 07:08:57', 81, NULL),
(21, 'Nuevo Diagnóstico Académico Disponible', 'Hola aaa aaa, tu informe académico diario ya está disponible. Descarga el PDF aquí: ../admin/diagnosticos.php?ajax=download_pdf&id=18', 'exito', 54, NULL, 1, NULL, '2026-06-04 07:26:22', 81, NULL);

-- --------------------------------------------------------

--
-- Table structure for table `anuncios_diagnosticos`
--

CREATE TABLE `anuncios_diagnosticos` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) NOT NULL,
  `colegio_id` int(11) DEFAULT NULL,
  `tipo_reporte` varchar(50) DEFAULT NULL,
  `ruta_pdf` varchar(500) DEFAULT NULL,
  `titulo` varchar(200) DEFAULT NULL,
  `descripcion` text DEFAULT NULL,
  `leido` tinyint(4) DEFAULT 0,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `anuncios_diagnosticos`
--

INSERT INTO `anuncios_diagnosticos` (`id`, `alumno_id`, `colegio_id`, `tipo_reporte`, `ruta_pdf`, `titulo`, `descripcion`, `leido`, `creado_en`) VALUES
(1, 54, 81, 'Diario', '../admin/diagnosticos.php?ajax=download_pdf&id=1', '📄 Nuevo Diagnóstico Académico Disponible', 'Su reporte académico diario ha sido generado el 04/06/2026. Contiene análisis de rendimiento, fortalezas y recomendaciones personalizadas.', 0, '2026-06-04 00:01:43'),
(2, 54, 81, 'Semanal', '../admin/diagnosticos.php?ajax=download_pdf&id=2', '📄 Nuevo Diagnóstico Académico Disponible', 'Su reporte académico semanal ha sido generado el 04/06/2026. Contiene análisis de rendimiento, fortalezas y recomendaciones personalizadas.', 0, '2026-06-04 00:11:24'),
(3, 54, 81, 'Semanal', '../admin/diagnosticos.php?ajax=download_pdf&id=3', '📄 Nuevo Diagnóstico Académico Disponible', 'Su reporte académico semanal ha sido generado el 04/06/2026. Contiene análisis de rendimiento, fortalezas y recomendaciones personalizadas.', 0, '2026-06-04 00:14:49'),
(4, 54, 81, 'Semanal', '../admin/diagnosticos.php?ajax=download_pdf&id=4', '📄 Nuevo Diagnóstico Académico Disponible', 'Su reporte académico semanal ha sido generado el 04/06/2026. Contiene análisis de rendimiento, fortalezas y recomendaciones personalizadas.', 0, '2026-06-04 00:17:12'),
(5, 54, 81, 'Diario', '../admin/diagnosticos.php?ajax=download_pdf&id=5', '📄 Nuevo Diagnóstico Académico Disponible', 'Su reporte académico diario ha sido generado el 04/06/2026. Contiene análisis de rendimiento, fortalezas y recomendaciones personalizadas.', 0, '2026-06-04 00:34:25'),
(6, 54, 81, 'Diario', '../admin/diagnosticos.php?ajax=download_pdf&id=6', '📄 Nuevo Diagnóstico Académico Disponible', 'Su reporte académico diario ha sido generado el 04/06/2026. Contiene análisis de rendimiento, fortalezas y recomendaciones personalizadas.', 0, '2026-06-04 00:34:37'),
(7, 54, 81, 'Diario Manual', '../admin/diagnosticos.php?ajax=download_pdf&id=7', '📄 Nuevo Diagnóstico Académico Disponible', 'Su reporte académico diario manual ha sido generado el 04/06/2026. Contiene análisis de rendimiento, fortalezas y recomendaciones personalizadas.', 0, '2026-06-04 00:34:54'),
(8, 54, 81, 'Diario Manual', '../admin/diagnosticos.php?ajax=download_pdf&id=8', '📄 Nuevo Diagnóstico Académico Disponible', 'Su reporte académico diario manual ha sido generado el 04/06/2026. Contiene análisis de rendimiento, fortalezas y recomendaciones personalizadas.', 0, '2026-06-04 00:35:51'),
(9, 54, 81, 'Diario', '../admin/diagnosticos.php?ajax=download_pdf&id=9', '📄 Nuevo Diagnóstico Académico Disponible', 'Su reporte académico diario ha sido generado el 04/06/2026. Contiene análisis de rendimiento, fortalezas y recomendaciones personalizadas.', 0, '2026-06-04 02:54:59'),
(10, 54, 81, 'Diario', '../admin/diagnosticos.php?ajax=download_pdf&id=10', '📄 Nuevo Diagnóstico Académico Disponible', 'Su reporte académico diario ha sido generado el 04/06/2026. Contiene análisis de rendimiento, fortalezas y recomendaciones personalizadas.', 0, '2026-06-04 03:11:45'),
(11, 54, 81, 'Diario', '../admin/diagnosticos.php?ajax=download_pdf&id=11', '📄 Nuevo Diagnóstico Académico Disponible', 'Su reporte académico diario ha sido generado el 04/06/2026. Contiene análisis de rendimiento, fortalezas y recomendaciones personalizadas.', 0, '2026-06-04 03:31:19'),
(12, 54, 81, 'Diario', '../admin/diagnosticos.php?ajax=download_pdf&id=12', '📄 Nuevo Diagnóstico Académico Disponible', 'Su reporte académico diario ha sido generado el 04/06/2026. Contiene análisis de rendimiento, fortalezas y recomendaciones personalizadas.', 0, '2026-06-04 06:31:26'),
(13, 54, 81, 'Diario', '../admin/diagnosticos.php?ajax=download_pdf&id=13', '📄 Nuevo Diagnóstico Académico Disponible', 'Su reporte académico diario ha sido generado el 04/06/2026. Contiene análisis de rendimiento, fortalezas y recomendaciones personalizadas.', 0, '2026-06-04 06:51:00'),
(14, 54, 81, 'Diario', '../admin/diagnosticos.php?ajax=download_pdf&id=14', 'Nuevo Diagnóstico Académico Disponible', 'Su reporte académico diario ha sido generado el 04/06/2026.', 0, '2026-06-04 07:03:18'),
(15, 54, 81, 'Diario', '../admin/diagnosticos.php?ajax=download_pdf&id=15', 'Nuevo Diagnóstico Académico Disponible', 'Su reporte académico diario ha sido generado el 04/06/2026.', 0, '2026-06-04 07:07:46'),
(16, 54, 81, 'General', '../admin/diagnosticos.php?ajax=download_pdf&id=16', 'Nuevo Diagnóstico Académico Disponible', 'Su reporte académico general ha sido generado el 04/06/2026.', 0, '2026-06-04 07:08:40'),
(17, 54, 81, 'Diario', '../admin/diagnosticos.php?ajax=download_pdf&id=17', 'Nuevo Diagnóstico Académico Disponible', 'Su reporte académico diario ha sido generado el 04/06/2026.', 0, '2026-06-04 07:08:57'),
(18, 54, 81, 'Diario', '../admin/diagnosticos.php?ajax=download_pdf&id=18', 'Nuevo Diagnóstico Académico Disponible', 'Su reporte académico diario ha sido generado el 04/06/2026.', 0, '2026-06-04 07:26:22');

-- --------------------------------------------------------

--
-- Table structure for table `areas_academicas`
--

CREATE TABLE `areas_academicas` (
  `id` int(11) NOT NULL,
  `nombre` varchar(100) NOT NULL,
  `descripcion` text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Áreas de conocimiento evaluadas (RM, RV, Biología, etc.)';

--
-- Dumping data for table `areas_academicas`
--

INSERT INTO `areas_academicas` (`id`, `nombre`, `descripcion`) VALUES
(1, 'Razonamiento Matematico', NULL),
(2, 'Razonamiento Verbal', NULL),
(3, 'Biologia', NULL),
(4, 'Quimica', NULL),
(5, 'Fisica', NULL),
(6, 'Historia', NULL),
(7, 'Geografia', NULL),
(8, 'Economia', NULL),
(9, 'trigonometria', NULL),
(10, 'Matemática', NULL),
(11, 'Verbal', NULL),
(12, 'Razonamiento', NULL),
(13, 'Ciencias', NULL);

-- --------------------------------------------------------

--
-- Table structure for table `asistencia`
--

CREATE TABLE `asistencia` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) NOT NULL,
  `colegio_id` int(11) DEFAULT NULL COMMENT 'Tenant: colegio al que pertenece este registro',
  `docente_id` int(11) DEFAULT NULL,
  `curso_id` int(11) DEFAULT NULL,
  `fecha` date NOT NULL,
  `hora` time DEFAULT NULL,
  `estado` enum('presente','tardanza','ausente','excused') NOT NULL DEFAULT 'presente',
  `observaciones` text DEFAULT NULL,
  `justificacion` text DEFAULT NULL,
  `registrado_por` int(11) DEFAULT NULL,
  `modificado_por` int(11) DEFAULT NULL,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp(),
  `modificado_en` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `asistencia`
--

INSERT INTO `asistencia` (`id`, `alumno_id`, `colegio_id`, `docente_id`, `curso_id`, `fecha`, `hora`, `estado`, `observaciones`, `justificacion`, `registrado_por`, `modificado_por`, `creado_en`, `modificado_en`) VALUES
(396, 52, NULL, 14, NULL, '2026-05-17', '23:51:00', 'presente', 'Ingreso general al sistema', NULL, NULL, NULL, '2026-05-18 04:51:00', NULL),
(397, 52, NULL, 14, NULL, '2026-05-18', '00:07:15', 'presente', 'Ingreso general al sistema', NULL, NULL, NULL, '2026-05-18 05:07:15', NULL),
(407, 54, NULL, 14, NULL, '2026-05-26', '13:46:48', 'presente', 'Ingreso general al sistema', NULL, NULL, NULL, '2026-05-26 18:46:48', NULL),
(408, 54, NULL, 14, NULL, '2026-05-28', '12:54:24', 'presente', 'Ingreso general al sistema', NULL, NULL, NULL, '2026-05-28 17:54:24', NULL),
(409, 54, NULL, 14, NULL, '2026-06-02', '15:33:29', 'presente', 'Ingreso general al sistema', NULL, NULL, NULL, '2026-06-02 20:33:29', NULL),
(410, 54, NULL, 14, NULL, '2026-06-03', '18:16:11', 'presente', 'Ingreso general al sistema', NULL, NULL, NULL, '2026-06-03 23:16:11', NULL);

-- --------------------------------------------------------

--
-- Table structure for table `asistencia_historial`
--

CREATE TABLE `asistencia_historial` (
  `id` int(11) NOT NULL,
  `asistencia_id` int(11) DEFAULT NULL,
  `alumno_id` int(11) NOT NULL,
  `colegio_id` int(11) DEFAULT NULL COMMENT 'Tenant: colegio al que pertenece este historial',
  `admin_id` int(11) DEFAULT NULL,
  `accion` enum('registrar','editar','justificar','anular_intento') NOT NULL,
  `detalle` varchar(255) NOT NULL,
  `estado_anterior` varchar(50) DEFAULT NULL,
  `estado_nuevo` varchar(50) DEFAULT NULL,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Historial de cambios administrativos sobre asistencia';

-- --------------------------------------------------------

--
-- Table structure for table `biblioteca_digital`
--

CREATE TABLE `biblioteca_digital` (
  `id` int(11) NOT NULL,
  `titulo` varchar(255) DEFAULT NULL,
  `autor` varchar(255) DEFAULT NULL,
  `descripcion` text DEFAULT NULL,
  `archivo_url` varchar(255) DEFAULT NULL,
  `archivo_nombre` varchar(255) DEFAULT NULL,
  `portada_url` varchar(255) DEFAULT NULL,
  `categoria` varchar(50) DEFAULT NULL,
  `area_id` int(11) DEFAULT NULL,
  `tags` varchar(255) DEFAULT NULL,
  `publico` tinyint(1) DEFAULT 1,
  `descargable` tinyint(1) DEFAULT 1,
  `fecha_subida` timestamp NOT NULL DEFAULT current_timestamp(),
  `descargas` int(11) DEFAULT 0,
  `colegio_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `cache_ia_peticiones`
--

CREATE TABLE `cache_ia_peticiones` (
  `hash_peticion` varchar(32) NOT NULL,
  `config_json` text DEFAULT NULL,
  `ids_preguntas` mediumtext DEFAULT NULL,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Caché de simulacros IA generados';

--
-- Dumping data for table `cache_ia_peticiones`
--

INSERT INTO `cache_ia_peticiones` (`hash_peticion`, `config_json`, `ids_preguntas`, `creado_en`) VALUES
('1a4b466e0b8f530b71e6ffb6a10a5073', '[79,\"F\\u00edsica\",\"simulacro\",50,5,{\"Razonamiento\":15,\"Ciencias\":20,\"Historia\":15}]', '75,43,67,92,69,45,72,74,78,76,48,70,68,71,49,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,28,30,83,81,99,90,82,84,88,29,100,85,27,86,87', '2026-05-21 17:55:08'),
('4fb6478b5b574d797b2ba28f9e32125c', '[105,\"F\\u00edsica\",\"diagnostico\",40,5,{\"Matem\\u00e1tica\":7,\"Verbal\":13,\"Razonamiento\":13,\"Historia\":7}]', '60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86', '2026-05-21 17:43:28'),
('80ba352421dfd59619c06ca78aed69a4', '[82,\"Biolog\\u00eda\",\"practica\",15,5,{\"Razonamiento\":4,\"Ciencias\":6,\"Historia\":5}]', '77,70,71,51,54,58,55,59,26,22,87,88,89,90,91', '2026-05-21 17:46:59'),
('bdbaa914254ff442f9db97ccdea41d99', '[58,\"Estad\\u00edstica\",\"curso\",10,5,{\"Razonamiento\":3,\"Ciencias\":4,\"Historia\":3}]', '92,93,94,95,96,97,98,99,100,101', '2026-05-21 17:51:22'),
('cde8d314f059cac7b3d1db5fd9a7ee69', '[44,\"Marketing\",\"reto_curso_ia\",20,5,{\"Matem\\u00e1tica\":8,\"Verbal\":8,\"Historia\":4}]', '134,135,136,137,138,139,140,141,28,81,30,84', '2026-05-21 18:32:07'),
('f3182041d0c3f9439ac011a166aaca91', '[92,\"Ingenier\\u00eda Industrial\",\"simulacro_ia\",30,5,{\"Matem\\u00e1tica\":7,\"Verbal\":6,\"Razonamiento\":6,\"Ciencias\":6,\"Historia\":5}]', '142,143,144,145,146,147,148,71,131,130,127,49,44,112,53,54,22,103,107,149,150,151,152,153', '2026-05-21 19:25:06'),
('faac8efb6886599a8870df9c0a0d7992', '[30,\"Historia\",\"diagnostico_ia\",40,4,{\"Razonamiento\":12,\"Ciencias\":16,\"Historia\":12}]', '122,123,124,125,126,127,128,129,130,131,132,133,54,96,109,55,117,105,113,118,57,98,23,110,24,111,114,104,30,86,91,27,84,82,89,29,99,101,87,90', '2026-05-21 18:23:12');

-- --------------------------------------------------------

--
-- Table structure for table `calificaciones`
--

CREATE TABLE `calificaciones` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) NOT NULL,
  `colegio_id` int(11) DEFAULT NULL COMMENT 'Tenant',
  `docente_id` int(11) DEFAULT NULL,
  `curso_id` int(11) DEFAULT NULL,
  `carrera_id` int(11) DEFAULT NULL,
  `evaluacion` varchar(150) DEFAULT NULL,
  `puntaje` decimal(5,2) DEFAULT NULL,
  `puntaje_maximo` decimal(5,2) DEFAULT 20.00,
  `tipo` enum('simulacro','examen','tarea','practica') DEFAULT 'simulacro',
  `fecha` date NOT NULL,
  `observaciones` text DEFAULT NULL,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `carreras`
--

CREATE TABLE `carreras` (
  `id` int(11) NOT NULL,
  `nombre` varchar(150) NOT NULL,
  `universidad_id` int(11) DEFAULT NULL,
  `area_conocimiento` varchar(100) DEFAULT NULL COMMENT 'Ej: Ciencias de la Salud, Ingenierías, Humanidades',
  `perfil_ingreso_ponderado` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'JSON con ponderación de áreas. Ej: {"Biología": 20, "Química": 20}' CHECK (json_valid(`perfil_ingreso_ponderado`)),
  `puntaje_corte` decimal(5,2) DEFAULT 0.00
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Carreras universitarias objetivo.';

--
-- Dumping data for table `carreras`
--

INSERT INTO `carreras` (`id`, `nombre`, `universidad_id`, `area_conocimiento`, `perfil_ingreso_ponderado`, `puntaje_corte`) VALUES
(1, 'Medicina Humana', 55, 'Ciencias de la Salud', NULL, 0.00),
(2, 'Odontología', 55, 'Ciencias de la Salud', NULL, 0.00),
(3, 'Farmacia y Bioquímica', 50, 'Ciencias de la Salud', NULL, 0.00),
(4, 'Enfermería', 53, 'Ciencias de la Salud', NULL, 0.00),
(5, 'Obstetricia', 50, 'Ciencias de la Salud', NULL, 0.00),
(6, 'Nutrición', 50, 'Ciencias de la Salud', NULL, 0.00),
(7, 'Tecnología Médica', 50, 'Ciencias de la Salud', NULL, 0.00),
(8, 'Medicina Veterinaria', 50, 'Ciencias de la Salud', NULL, 0.00),
(9, 'Psicología', 56, 'Ciencias Sociales', NULL, 0.00),
(10, 'Derecho', 56, 'Ciencias Jurídicas y Sociales', NULL, 0.00),
(11, 'Ciencias Políticas', NULL, 'Ciencias Jurídicas y Sociales', NULL, 0.00),
(12, 'Trabajo Social', 6, 'Ciencias Sociales', NULL, 0.00),
(13, 'Sociología', NULL, 'Ciencias Sociales', NULL, 0.00),
(14, 'Comunicación Social', 56, 'Ciencias Sociales', NULL, 0.00),
(15, 'Antropología', 1, 'Humanidades', NULL, 0.00),
(16, 'Arqueología', NULL, 'Humanidades', NULL, 0.00),
(17, 'Historia', 41, 'Humanidades', NULL, 0.00),
(18, 'Literatura', 6, 'Humanidades', NULL, 0.00),
(19, 'Filosofía', 41, 'Humanidades', NULL, 0.00),
(20, 'Administración de Empresas', 56, 'Ciencias Económicas y Empresariales', NULL, 0.00),
(21, 'Contabilidad', 49, 'Ciencias Económicas y Empresariales', NULL, 0.00),
(22, 'Economía', 56, 'Ciencias Económicas y Empresariales', NULL, 0.00),
(23, 'Marketing', 56, 'Ciencias Económicas y Empresariales', NULL, 0.00),
(24, 'Negocios Internacionales', 56, 'Ciencias Económicas y Empresariales', NULL, 0.00),
(25, 'Turismo y Hotelería', 46, 'Ciencias Empresariales', NULL, 0.00),
(26, 'Ingeniería de Sistemas e Informática', 56, 'Ingeniería y Tecnología', NULL, 0.00),
(27, 'Ingeniería Civil', 56, 'Ingeniería y Tecnología', NULL, 0.00),
(28, 'Ingeniería Industrial', 56, 'Ingeniería y Tecnología', NULL, 0.00),
(29, 'Ingeniería Electrónica', 48, 'Ingeniería y Tecnología', NULL, 0.00),
(30, 'Ingeniería Mecánica', 48, 'Ingeniería y Tecnología', NULL, 0.00),
(31, 'Ingeniería Mecatrónica', 48, 'Ingeniería y Tecnología', NULL, 0.00),
(32, 'Ingeniería Química', 48, 'Ingeniería y Tecnología', NULL, 0.00),
(33, 'Ingeniería Ambiental', 48, 'Ingeniería y Tecnología', NULL, 0.00),
(34, 'Ingeniería de Minas', 2, 'Ingeniería y Tecnología', NULL, 0.00),
(35, 'Ingeniería Geológica', 2, 'Ingeniería y Tecnología', NULL, 0.00),
(36, 'Ingeniería Metalúrgica', 2, 'Ingeniería y Tecnología', NULL, 0.00),
(37, 'Ingeniería Pesquera', 5, 'Ingeniería y Tecnología', NULL, 0.00),
(38, 'Ingeniería Forestal', 3, 'Ingeniería y Tecnología', NULL, 0.00),
(39, 'Ingeniería de Telecomunicaciones', 48, 'Ingeniería y Tecnología', NULL, 0.00),
(40, 'Ingeniería en Energía', 48, 'Ingeniería y Tecnología', NULL, 0.00),
(41, 'Ciencias de la Computación', 48, 'Ingeniería y Tecnología', NULL, 0.00),
(42, 'Ingeniería Agrónoma', 3, 'Ciencias Agrarias', NULL, 0.00),
(43, 'Ingeniería Zootecnista', 3, 'Ciencias Agrarias', NULL, 0.00),
(44, 'Arquitectura', 56, 'Arquitectura y Urbanismo', NULL, 0.00),
(45, 'Arte y Diseño Gráfico', NULL, 'Arte y Diseño', NULL, 0.00),
(46, 'Educación', 56, 'Educación', NULL, 0.00),
(47, 'Biología', 55, 'Ciencias Naturales', NULL, 0.00),
(48, 'Química', 50, 'Ciencias Naturales', NULL, 0.00),
(49, 'Física', 50, 'Ciencias Naturales', NULL, 0.00),
(50, 'Matemáticas', 41, 'Ciencias Exactas', NULL, 0.00),
(51, 'Estadística', NULL, 'Ciencias Exactas', NULL, 0.00);

-- --------------------------------------------------------

--
-- Table structure for table `chat_escribiendo`
--

CREATE TABLE `chat_escribiendo` (
  `usuario_id` int(11) NOT NULL,
  `destinatario_id` int(11) NOT NULL,
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `chat_grupos`
--

CREATE TABLE `chat_grupos` (
  `id` int(11) NOT NULL,
  `nombre` varchar(100) NOT NULL,
  `creado_por` int(11) NOT NULL,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `chat_grupo_miembros`
--

CREATE TABLE `chat_grupo_miembros` (
  `grupo_id` int(11) NOT NULL,
  `usuario_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `colegios`
--

CREATE TABLE `colegios` (
  `id` int(11) NOT NULL,
  `nombre` varchar(255) NOT NULL,
  `tipo_gestion` varchar(50) DEFAULT 'privado',
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp(),
  `codigo_modular` varchar(100) DEFAULT NULL,
  `nivel_educativo` varchar(100) DEFAULT NULL,
  `ano_fundacion` year(4) DEFAULT NULL,
  `cantidad_estudiantes` int(11) DEFAULT NULL,
  `turnos` varchar(100) DEFAULT NULL,
  `areas` varchar(255) DEFAULT NULL,
  `pais` varchar(100) DEFAULT NULL,
  `departamento` varchar(100) DEFAULT NULL,
  `provincia` varchar(100) DEFAULT NULL,
  `distrito` varchar(100) DEFAULT NULL,
  `direccion` varchar(255) DEFAULT NULL,
  `referencia` text DEFAULT NULL,
  `codigo_postal` varchar(20) DEFAULT NULL,
  `telefono_institucional` varchar(50) DEFAULT NULL,
  `telefono_alternativo` varchar(50) DEFAULT NULL,
  `email_institucional` varchar(150) DEFAULT NULL,
  `pagina_web` varchar(255) DEFAULT NULL,
  `facebook` varchar(255) DEFAULT NULL,
  `instagram` varchar(255) DEFAULT NULL,
  `tiktok` varchar(255) DEFAULT NULL,
  `director_nombre` varchar(150) DEFAULT NULL,
  `director_dni` varchar(20) DEFAULT NULL,
  `director_telefono` varchar(50) DEFAULT NULL,
  `director_email` varchar(150) DEFAULT NULL,
  `director_tiempo_cargo` int(11) DEFAULT NULL,
  `director_horario` varchar(100) DEFAULT NULL,
  `director_cargo` varchar(100) DEFAULT NULL,
  `subdirector_nombre` varchar(150) DEFAULT NULL,
  `subdirector_cargo` varchar(100) DEFAULT NULL,
  `subdirector_telefono` varchar(50) DEFAULT NULL,
  `subdirector_email` varchar(150) DEFAULT NULL,
  `coord_nombre` varchar(150) DEFAULT NULL,
  `coord_cargo` varchar(100) DEFAULT NULL,
  `coord_telefono` varchar(50) DEFAULT NULL,
  `coord_email` varchar(150) DEFAULT NULL,
  `coord_preferido` varchar(150) DEFAULT NULL,
  `estudiantes_4to` int(11) DEFAULT NULL,
  `estudiantes_5to` int(11) DEFAULT NULL,
  `carreras_interes` varchar(255) DEFAULT NULL,
  `universidades_interes` varchar(255) DEFAULT NULL,
  `programa_interes` varchar(255) DEFAULT NULL,
  `modalidad_preferida` varchar(100) DEFAULT NULL,
  `auditorio` varchar(100) DEFAULT NULL,
  `auditorio_capacidad` int(11) DEFAULT NULL,
  `proyector` varchar(100) DEFAULT NULL,
  `laboratorio` varchar(100) DEFAULT NULL,
  `computadores` varchar(100) DEFAULT NULL,
  `necesidades` text DEFAULT NULL,
  `historial_visitas` text DEFAULT NULL,
  `fecha_registro` date DEFAULT NULL,
  `responsable_registro` varchar(150) DEFAULT NULL,
  `estado_sistema` varchar(50) DEFAULT NULL,
  `proxima_fecha` date DEFAULT NULL,
  `actividad_charlas` tinyint(1) DEFAULT 0,
  `actividad_simulacro` tinyint(1) DEFAULT 0,
  `actividad_preparacion` tinyint(1) DEFAULT 0,
  `ciudad` varchar(100) DEFAULT 'Lima',
  `color_hex` varchar(20) DEFAULT '#7c3aed',
  `estado` text DEFAULT NULL,
  `plan_type` text DEFAULT NULL,
  `fecha_fin_suscripcion` text DEFAULT NULL,
  `fecha_inicio_suscripcion` text DEFAULT NULL,
  `estado_suscripcion` text DEFAULT NULL,
  `max_alumnos` int(11) DEFAULT 50 COMMENT 'Máximo de alumnos permitidos según el plan',
  `max_docentes` int(11) DEFAULT 5 COMMENT 'Máximo de docentes permitidos según el plan',
  `plan_credito_id` int(11) DEFAULT 1 COMMENT 'FK a planes_creditos',
  `creditos_actuales` int(11) DEFAULT 50 COMMENT 'Saldo actual de créditos',
  `creditos_usados_mes` int(11) DEFAULT 0 COMMENT 'Créditos gastados en el mes actual',
  `fecha_renovacion` date DEFAULT NULL COMMENT 'Fecha de próxima renovación automática',
  `limite_activo` tinyint(1) DEFAULT 1 COMMENT '1=bloquear si sin créditos, 0=ilimitado'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Colegios de procedencia de los alumnos.';

--
-- Dumping data for table `colegios`
--

INSERT INTO `colegios` (`id`, `nombre`, `tipo_gestion`, `creado_en`, `codigo_modular`, `nivel_educativo`, `ano_fundacion`, `cantidad_estudiantes`, `turnos`, `areas`, `pais`, `departamento`, `provincia`, `distrito`, `direccion`, `referencia`, `codigo_postal`, `telefono_institucional`, `telefono_alternativo`, `email_institucional`, `pagina_web`, `facebook`, `instagram`, `tiktok`, `director_nombre`, `director_dni`, `director_telefono`, `director_email`, `director_tiempo_cargo`, `director_horario`, `director_cargo`, `subdirector_nombre`, `subdirector_cargo`, `subdirector_telefono`, `subdirector_email`, `coord_nombre`, `coord_cargo`, `coord_telefono`, `coord_email`, `coord_preferido`, `estudiantes_4to`, `estudiantes_5to`, `carreras_interes`, `universidades_interes`, `programa_interes`, `modalidad_preferida`, `auditorio`, `auditorio_capacidad`, `proyector`, `laboratorio`, `computadores`, `necesidades`, `historial_visitas`, `fecha_registro`, `responsable_registro`, `estado_sistema`, `proxima_fecha`, `actividad_charlas`, `actividad_simulacro`, `actividad_preparacion`, `ciudad`, `color_hex`, `estado`, `plan_type`, `fecha_fin_suscripcion`, `fecha_inicio_suscripcion`, `estado_suscripcion`, `max_alumnos`, `max_docentes`, `plan_credito_id`, `creditos_actuales`, `creditos_usados_mes`, `fecha_renovacion`, `limite_activo`) VALUES
(81, 'I.E. BLASSED', 'estatal', '2026-05-08 20:31:29', '9389389', 'primaria-secundaria', NULL, 300, 'mixto', NULL, NULL, 'Lima', 'Lima', 'SAN MARTIN DE PORRES', 'URB PALAO PARQUE DE LA PERA 353', NULL, NULL, '965870094', NULL, 'BLASSED@GMAIL.COM', 'BLASSED.prealtum.pe', NULL, NULL, NULL, 'JUAN RONAL ESPINOZA LARA', NULL, '996987655', 'JUANRONALD@GMAIL.COM', NULL, NULL, 'Director', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 120, 180, NULL, NULL, 'PLAN PREMIUM', 'virtual', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2026-05-08', 'YAMI', 'prospecto', NULL, 1, 1, 1, 'Lima', '#ff0a0a', 'Activo', 'Premium', '2027-05-09', '2026-05-09', 'Activo', 100, 10, 1, 160, 0, NULL, 1),
(84, 'I.E.  LOPEX  ALIGA', 'estatal', '2026-05-09 18:55:34', '0927982', 'primaria-secundaria', NULL, 200, 'mixto', NULL, NULL, 'Lima', 'Lima', 'LOS OLIVOS', 'URB PALAO PARQUE DE LA PERA 353', NULL, NULL, '917298213', NULL, 'yamileblasG25@gmail.com', 'YAMILE.prealtum.pe', NULL, NULL, NULL, 'YAMILE BLAS SANTA MARIA', NULL, '937937333', 'yamileblaSDDs25@gmail.com', NULL, NULL, 'Director', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, 100, NULL, NULL, 'PLAN PREMIUM', 'virtual', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2026-05-09', 'YAMILE', 'prospecto', NULL, 1, 1, 1, 'Lima', '#ffae00', 'Activo', 'Premium', '2027-05-09', '2026-05-09', 'Activo', 50, 5, 1, 50, 0, NULL, 1),
(98, 'I.E. los olvoips', 'estatal', '2026-05-21 18:45:17', '9489489', 'primaria-secundaria', NULL, 200, 'mixto', NULL, NULL, 'Lima', 'Lima', 'los olivos', 'URB PALAO PARQUE DE LA PERA 353', NULL, NULL, '965769983', NULL, 'yamilebljaslj@gmail.com', 'olivos.prealtum.pe', NULL, NULL, NULL, 'juana', NULL, '975986966', 'yamileblwjaslj@gmail.com', NULL, NULL, 'Director', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, 100, NULL, NULL, NULL, 'virtual', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2026-05-21', 'yamile', 'prospecto', NULL, 1, 1, 1, 'Lima', '#1eff00', 'Activo', 'Enterprise', '2026-11-17', '2026-05-21', 'Activo', 50, 5, 1, 3050, 0, NULL, 1),
(100, 'I.E. juana', 'estatal', '2026-05-21 19:03:13', '9793793', 'primaria-secundaria', NULL, 120, 'mixto', NULL, NULL, 'Huancavelica', 'Chiclayo', '444', 'URB PALAO PARQUE DE LA PERA 353', NULL, NULL, '976655556', NULL, 'jaunasmajsj@gmail.com', 'juanaaaa.prealtum.pe', NULL, NULL, NULL, 'juana', NULL, '937893794', 'jaunamajsj@gmail.com', NULL, NULL, 'Director', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 60, 60, NULL, NULL, NULL, 'virtual', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2026-05-21', 'yami', 'prospecto', NULL, 1, 1, 1, 'Lima', '#ff0000', 'Activo', 'Estándar', '2026-11-17', '2026-05-21', 'Activo', 50, 5, 1, 270, 0, NULL, 1),
(101, 'I.E. sjhgsuabg', 'estatal', '2026-05-21 19:27:15', '9821739', 'primaria-secundaria', NULL, 250, 'mixto', NULL, NULL, 'Callao', 'Callao', 'callao', 'URB PALAO PARQUE DE LA PERA 353', NULL, NULL, '827982782', NULL, 'yamilebald@gmail.com', 'jauna.prealtum.pe', NULL, NULL, NULL, 'juanamarika', NULL, '938398732', 'yamilebald@gmail.com', NULL, NULL, 'Director', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 200, 50, NULL, NULL, NULL, 'virtual', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2026-05-21', 'ytamj', 'prospecto', NULL, 1, 1, 1, 'Lima', '#ee3a3a', 'Activo', 'Premium', '2026-11-17', '2026-05-21', 'Activo', 50, 5, 1, 1000, 0, NULL, 1);

-- --------------------------------------------------------

--
-- Table structure for table `configuracion`
--

CREATE TABLE `configuracion` (
  `id` int(11) NOT NULL,
  `clave` varchar(100) NOT NULL,
  `valor` text DEFAULT NULL,
  `tipo` varchar(20) DEFAULT 'string' COMMENT 'string, int, boolean, json',
  `descripcion` text DEFAULT NULL,
  `actualizado_en` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Configuraciones globales del sistema';

--
-- Dumping data for table `configuracion`
--

INSERT INTO `configuracion` (`id`, `clave`, `valor`, `tipo`, `descripcion`, `actualizado_en`) VALUES
(1, 'global_planes', '[{\"nombre\":\"Gratuito\",\"precio\":0,\"max_alumnos\":30,\"max_admins\":1,\"max_profesores\":3,\"features\":[\"Hasta 30 alumnos\",\"1 admin\",\"Sin soporte\",\"Funciones básicas\"]},{\"nombre\":\"Estándar\",\"precio\":49,\"max_alumnos\":200,\"max_admins\":3,\"max_profesores\":15,\"features\":[\"Hasta 200 alumnos\",\"3 admins\",\"Soporte email\",\"Reportes básicos\",\"Exportar CSV\"]},{\"nombre\":\"Premium\",\"precio\":99,\"max_alumnos\":500,\"max_admins\":10,\"max_profesores\":50,\"features\":[\"Hasta 500 alumnos\",\"10 admins\",\"Soporte prioritario\",\"Reportes avanzados\",\"API acceso\",\"Dashboard analytics\"]},{\"nombre\":\"Enterprise\",\"precio\":299,\"max_alumnos\":0,\"max_admins\":0,\"max_profesores\":0,\"features\":[\"Alumnos ilimitados\",\"Todo incluido\",\"SLA 99.9%\",\"Onboarding dedicado\",\"Integración SSO\",\"Soporte telefónico\"]}]', 'json', NULL, '2026-05-11 03:37:45');

-- --------------------------------------------------------

--
-- Table structure for table `configuracion_creditos`
--

CREATE TABLE `configuracion_creditos` (
  `id` int(11) NOT NULL,
  `accion` varchar(60) NOT NULL,
  `nombre_display` varchar(150) DEFAULT NULL COMMENT 'Nombre legible para el dashboard',
  `label` varchar(100) NOT NULL,
  `categoria` varchar(50) DEFAULT 'general',
  `costo_creditos` int(11) NOT NULL DEFAULT 5,
  `activo` tinyint(1) DEFAULT 1,
  `icono` varchar(10) DEFAULT '⚡',
  `descripcion` text DEFAULT NULL,
  `precio_por_pregunta` int(11) DEFAULT 0,
  `precio_por_dificultad` text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Precio en créditos por acción';

--
-- Dumping data for table `configuracion_creditos`
--

INSERT INTO `configuracion_creditos` (`id`, `accion`, `nombre_display`, `label`, `categoria`, `costo_creditos`, `activo`, `icono`, `descripcion`, `precio_por_pregunta`, `precio_por_dificultad`) VALUES
(4, 'evaluacion', 'Evaluación', 'Evaluación estándar', 'evaluacion', 8, 1, '📊', 'Evaluación académica general', 0, NULL),
(6, 'practica', 'Práctica', 'Práctica dirigida', 'practicas', 4, 1, '✏️', 'Sesión de práctica con retroalimentación', 0, NULL),
(22, 'examen_ia', 'Examen con IA', '', 'EVALUACION', 25, 1, '⚡', 'Examen generado íntegramente con IA', 0, NULL),
(23, 'examen_final', 'Examen Final', '', 'EVALUACION', 12, 1, '⚡', 'Examen final de área o ciclo', 0, NULL),
(24, 'evaluacion_gen', 'Evaluación', '', 'EVALUACION', 8, 1, '⚡', 'Evaluación académica general', 0, NULL),
(25, 'reporte_ia', 'Reporte IA de Alumno', '', 'HERRAMIENTA', 15, 1, '⚡', 'Análisis IA de rendimiento individual', 0, NULL),
(26, 'banco_ia', 'Banco de Preguntas IA', '', 'IA', 30, 1, '⚡', 'Generación de banco de preguntas con IA', 0, NULL),
(27, 'diagnostico_ia', 'Diagnóstico IA', '', 'IA', 25, 1, '⚡', 'Diagnóstico académico personalizado con IA', 0, NULL),
(28, 'repaso_ia', 'Repaso con IA', '', 'IA', 15, 1, '⚡', 'Sesión de repaso generada por IA', 0, NULL),
(29, 'practica_ia', 'Práctica Dirigida IA', '', 'IA', 5, 1, '⚡', 'Práctica dirigida generada con IA', 0, NULL),
(30, 'practica_std', 'Práctica', '', 'PRACTICAS', 4, 1, '⚡', 'Sesión de práctica con retroalimentación', 0, NULL),
(31, 'reto_curso_ia', 'Reto por Curso IA', '', 'IA', 15, 1, '⚡', 'Evaluación específica de un curso/área', 0, NULL),
(32, 'herramienta_premium', 'Herramienta Premium', '', 'PREMIUM', 50, 1, '⚡', 'Acceso a herramientas avanzadas premium', 0, NULL),
(33, 'simulacro_ia', 'Simulacro con IA', '', 'SIMULACROS', 30, 1, '⚡', 'Simulacro generado con Inteligencia Artificial', 0, '{\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0}'),
(34, 'simulacro_basico', 'Simulacro Básico', '', 'SIMULACROS', 5, 1, '⚡', 'Simulacro generado sin IA', 0, NULL),
(35, 'test_rapido', 'Test Rápido', '', 'TEST', 3, 1, '⚡', 'Test corto de práctica', 0, NULL),
(36, 'test_vocacional', 'Test Vocacional', '', 'TESTS', 10, 1, '⚡', 'Test de orientación vocacional', 0, NULL);

-- --------------------------------------------------------

--
-- Table structure for table `config_reportes_ia`
--

CREATE TABLE `config_reportes_ia` (
  `id` int(11) NOT NULL,
  `colegio_id` int(11) DEFAULT NULL,
  `activo` tinyint(4) DEFAULT 0,
  `frecuencia` varchar(20) DEFAULT 'mensual',
  `envio_alertas` tinyint(4) DEFAULT 1,
  `envio_simulacros` tinyint(4) DEFAULT 1,
  `plantilla_html` text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `config_reportes_ia`
--

INSERT INTO `config_reportes_ia` (`id`, `colegio_id`, `activo`, `frecuencia`, `envio_alertas`, `envio_simulacros`, `plantilla_html`) VALUES
(1, 81, 0, 'mensual', 1, 1, NULL);

-- --------------------------------------------------------

--
-- Table structure for table `convocatorias_admision`
--

CREATE TABLE `convocatorias_admision` (
  `id` int(11) NOT NULL,
  `carrera_id` int(11) NOT NULL,
  `tipo_universidad` enum('pública','privada') NOT NULL,
  `frecuencia` varchar(50) NOT NULL,
  `meses_convocatoria` varchar(150) NOT NULL,
  `observaciones` text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `convocatorias_admision`
--

INSERT INTO `convocatorias_admision` (`id`, `carrera_id`, `tipo_universidad`, `frecuencia`, `meses_convocatoria`, `observaciones`) VALUES
(1, 1, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(2, 1, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(3, 2, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(4, 2, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(5, 3, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(6, 3, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(7, 4, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(8, 4, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(9, 5, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(10, 5, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(11, 6, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(12, 6, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(13, 7, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(14, 7, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(15, 8, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(16, 8, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(17, 9, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(18, 9, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(19, 10, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(20, 10, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(21, 11, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(22, 11, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(23, 12, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(24, 12, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(25, 13, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(26, 13, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(27, 14, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(28, 14, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(29, 15, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(30, 15, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(31, 16, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(32, 16, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(33, 17, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(34, 17, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(35, 18, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(36, 18, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(37, 19, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(38, 19, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(39, 20, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(40, 20, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(41, 21, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(42, 21, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(43, 22, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(44, 22, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(45, 23, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(46, 23, 'privada', 'Continuo', 'Enero, Marzo, Mayo, Agosto, Octubre, Diciembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(47, 24, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(48, 24, 'privada', 'Continuo', 'Enero, Marzo, Mayo, Agosto, Octubre, Diciembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(49, 25, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(50, 25, 'privada', 'Continuo', 'Enero, Marzo, Mayo, Agosto, Octubre, Diciembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(51, 26, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(52, 26, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(53, 27, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(54, 27, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(55, 28, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(56, 28, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(57, 29, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(58, 29, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(59, 30, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(60, 30, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(61, 31, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(62, 31, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(63, 32, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(64, 32, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(65, 33, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(66, 33, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(67, 34, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(68, 34, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(69, 35, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(70, 35, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(71, 36, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(72, 36, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(73, 37, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(74, 37, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(75, 38, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(76, 38, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(77, 39, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(78, 39, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(79, 40, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(80, 40, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(81, 41, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(82, 41, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(83, 42, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(84, 42, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(85, 43, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(86, 43, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(87, 44, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(88, 44, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(89, 45, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(90, 45, 'privada', 'Continuo', 'Enero, Marzo, Mayo, Agosto, Octubre, Diciembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(91, 46, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(92, 46, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(93, 47, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(94, 47, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(95, 48, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(96, 48, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(97, 49, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(98, 49, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(99, 50, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(100, 50, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad'),
(101, 51, 'pública', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'CEPRE/Preuniversitario: Enero-Febrero y Julio-Agosto'),
(102, 51, 'privada', '2 veces al año', 'Proceso I: Marzo-Abril | Proceso II: Agosto-Setiembre', 'Modalidades especiales: traslado externo, egresados, quinta modalidad');

-- --------------------------------------------------------

--
-- Table structure for table `creditos_movimientos`
--

CREATE TABLE `creditos_movimientos` (
  `id` int(11) NOT NULL,
  `usuario_id` int(11) NOT NULL,
  `colegio_id` int(11) DEFAULT NULL,
  `tipo` varchar(50) NOT NULL COMMENT 'alta_plan, renovacion, gasto, recarga, admin_manual',
  `accion` varchar(100) DEFAULT NULL COMMENT 'simulacro_ia, test_vocacional, etc',
  `creditos` int(11) NOT NULL,
  `saldo_anterior` int(11) DEFAULT 0,
  `saldo_posterior` int(11) DEFAULT 0,
  `descripcion` text DEFAULT NULL,
  `referencia_id` int(11) DEFAULT NULL,
  `ip_address` varchar(45) DEFAULT NULL,
  `admin_id` int(11) DEFAULT NULL,
  `fecha` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `creditos_movimientos`
--

INSERT INTO `creditos_movimientos` (`id`, `usuario_id`, `colegio_id`, `tipo`, `accion`, `creditos`, `saldo_anterior`, `saldo_posterior`, `descripcion`, `referencia_id`, `ip_address`, `admin_id`, `fecha`) VALUES
(1, 81, 91, 'bonus', 'ajuste_admin', 100, 0, 100, '', NULL, '::1', 43, '2026-05-21 04:12:03'),
(2, 81, 91, 'gasto', 'practica', 4, 0, 0, 'Generación IA: practica de 15 preguntas', NULL, NULL, NULL, '2026-05-21 17:46:59'),
(3, 17, 81, 'compra', 'ajuste_admin', 300, 0, 300, 'muchas x tu compra', NULL, '::1', 43, '2026-05-21 17:48:42'),
(4, 17, 81, 'admin_manual_resta', 'ajuste_admin', -100, 300, 200, '', NULL, '::1', 43, '2026-05-21 17:49:17'),
(5, 17, 81, 'gasto', 'diagnostico_ia', -25, 200, 175, 'Generación IA: diagnostico_ia de 40 preguntas', 13, '::1', NULL, '2026-05-21 18:23:12'),
(6, 17, 81, 'gasto', 'reto_curso_ia', -15, 175, 160, 'Generación IA: reto_curso_ia de 20 preguntas', 14, '::1', NULL, '2026-05-21 18:32:07'),
(7, 91, 99, 'alta_plan', 'plan_change', 5000, 0, 5000, 'Asignación de plan: Enterprise', NULL, '::1', NULL, '2026-05-21 18:48:50'),
(8, 90, 98, 'alta_plan', 'plan_change', 1000, 0, 1000, 'Asignación de plan: Premium', NULL, '::1', NULL, '2026-05-21 19:01:27'),
(9, 90, 98, 'alta_plan', 'plan_change', 1000, 1000, 2000, 'Asignación de plan: Premium', NULL, '::1', NULL, '2026-05-21 19:01:35'),
(10, 90, 98, 'alta_plan', 'plan_change', 1000, 2000, 3000, 'Asignación de plan: Premium', NULL, '::1', NULL, '2026-05-21 19:01:43'),
(11, 90, 98, 'alta_plan', 'plan_change', 50, 3000, 3050, 'Asignación de plan: Enterprise', NULL, '::1', NULL, '2026-05-21 19:01:52'),
(12, 92, 100, 'alta_plan', 'plan_change', 300, 0, 300, 'Asignación de plan: Estándar', NULL, '::1', NULL, '2026-05-21 19:03:13'),
(13, 92, 100, 'gasto', 'simulacro_ia', -30, 300, 270, 'Generación IA: simulacro_ia de 30 preguntas', 15, '::1', NULL, '2026-05-21 19:25:06'),
(14, 93, 101, 'alta_plan', 'plan_change', 1000, 0, 1000, 'Asignación de plan: Premium', NULL, '::1', NULL, '2026-05-21 19:27:15');

-- --------------------------------------------------------

--
-- Table structure for table `cursos`
--

CREATE TABLE `cursos` (
  `id` int(11) NOT NULL,
  `nombre` varchar(150) NOT NULL,
  `docente` varchar(150) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `docente_alumno`
--

CREATE TABLE `docente_alumno` (
  `id` int(11) NOT NULL,
  `docente_id` int(11) NOT NULL COMMENT 'ID del docente (usuarios con role=docente)',
  `alumno_id` int(11) NOT NULL COMMENT 'ID del alumno',
  `seccion` varchar(50) DEFAULT NULL COMMENT 'Sección/Grupo (A, B, C, etc)',
  `colegio_id` int(11) NOT NULL COMMENT 'ID del colegio',
  `curso` varchar(100) NOT NULL DEFAULT '',
  `aula` varchar(50) NOT NULL DEFAULT '',
  `asignado_en` timestamp NOT NULL DEFAULT current_timestamp(),
  `activo` tinyint(1) DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Relación entre docentes y alumnos por colegio';

--
-- Dumping data for table `docente_alumno`
--

INSERT INTO `docente_alumno` (`id`, `docente_id`, `alumno_id`, `seccion`, `colegio_id`, `curso`, `aula`, `asignado_en`, `activo`) VALUES
(26, 95, 54, 'A', 81, 'General', '4', '2026-06-04 03:56:27', 1),
(27, 95, 53, 'A', 81, 'General', '4', '2026-06-04 03:56:27', 1);

-- --------------------------------------------------------

--
-- Table structure for table `examenes`
--

CREATE TABLE `examenes` (
  `id` int(11) NOT NULL,
  `colegio_id` int(11) DEFAULT NULL,
  `nombre` varchar(150) NOT NULL,
  `tipo` enum('DIAGNOSTICO_INTEGRAL','VOCACIONAL','SIMULACRO_CARRERA') NOT NULL,
  `duracion_minutos` int(11) DEFAULT NULL,
  `reglas` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'JSON con reglas (puntos por correcta, penalización, etc.)' CHECK (json_valid(`reglas`)),
  `carrera_id` int(11) DEFAULT NULL COMMENT 'Para simulacros segmentados por carrera',
  `descripcion` text DEFAULT NULL,
  `url_pdf` varchar(255) DEFAULT NULL,
  `url_video` varchar(255) DEFAULT NULL,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `examenes`
--

INSERT INTO `examenes` (`id`, `colegio_id`, `nombre`, `tipo`, `duracion_minutos`, `reglas`, `carrera_id`, `descripcion`, `url_pdf`, `url_video`, `creado_en`) VALUES
(1, NULL, 'Test Vocacional Completo', 'VOCACIONAL', NULL, NULL, NULL, NULL, NULL, NULL, '2026-03-13 19:59:20');

-- --------------------------------------------------------

--
-- Table structure for table `examen_preguntas`
--

CREATE TABLE `examen_preguntas` (
  `examen_id` int(11) NOT NULL,
  `pregunta_id` int(11) NOT NULL,
  `puntos` int(11) DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `foro_admins`
--

CREATE TABLE `foro_admins` (
  `id` int(11) NOT NULL,
  `nombre` varchar(100) NOT NULL,
  `email` varchar(150) NOT NULL,
  `clave_hash` varchar(255) NOT NULL,
  `rol` enum('superadmin','moderador') DEFAULT 'moderador',
  `activo` tinyint(1) DEFAULT 1,
  `creado_en` datetime DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `foro_admins`
--

INSERT INTO `foro_admins` (`id`, `nombre`, `email`, `clave_hash`, `rol`, `activo`, `creado_en`) VALUES
(1, 'Super Admin Foro', 'admin@tuforo.com', '$2y$12$placeholderHashCambiame', 'superadmin', 1, '2026-03-20 12:26:14');

-- --------------------------------------------------------

--
-- Table structure for table `foro_badges_secretos`
--

CREATE TABLE `foro_badges_secretos` (
  `id` int(11) NOT NULL,
  `perfil_id` int(11) NOT NULL,
  `codigo` varchar(50) NOT NULL COMMENT 'Ej: madrugador, racha_respuestas',
  `nombre` varchar(80) NOT NULL,
  `icono` varchar(10) NOT NULL DEFAULT '?',
  `obtenido_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `foro_categorias`
--

CREATE TABLE `foro_categorias` (
  `id` int(11) NOT NULL,
  `nombre` varchar(80) NOT NULL,
  `descripcion` varchar(255) DEFAULT NULL,
  `icono` varchar(10) NOT NULL DEFAULT '?',
  `color` varchar(7) NOT NULL DEFAULT '#2563eb',
  `orden` int(11) NOT NULL DEFAULT 0,
  `activa` tinyint(1) NOT NULL DEFAULT 1,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp(),
  `carrera_id` int(11) DEFAULT NULL COMMENT 'Referencia a tabla carreras'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `foro_categorias`
--

INSERT INTO `foro_categorias` (`id`, `nombre`, `descripcion`, `icono`, `color`, `orden`, `activa`, `creado_en`, `carrera_id`) VALUES
(1, 'Medicina Humana', 'Hilos sobre admisión y carrera de Medicina', '🩺', '#ef4444', 1, 1, '2026-03-20 21:33:43', 1),
(2, 'Odontología', 'Todo sobre la carrera de Odontología', '🦷', '#f97316', 2, 1, '2026-03-20 21:33:43', 2),
(3, 'Farmacia y Bioquímica', 'Discusiones de Farmacia y Bioquímica', '💊', '#8b5cf6', 3, 1, '2026-03-20 21:33:43', 3),
(4, 'Enfermería', 'Comunidad de Enfermería', '💉', '#06b6d4', 4, 1, '2026-03-20 21:33:43', 4),
(5, 'Obstetricia', 'Hilos sobre Obstetricia', '👶', '#ec4899', 5, 1, '2026-03-20 21:33:43', 5),
(6, 'Nutrición', 'Carrera de Nutrición y Dietética', '🥗', '#84cc16', 6, 1, '2026-03-20 21:33:43', 6),
(7, 'Tecnología Médica', 'Tecnología Médica y especialidades', '🔬', '#0891b2', 7, 1, '2026-03-20 21:33:43', 7),
(8, 'Medicina Veterinaria', 'Medicina Veterinaria y Zootecnia', '🐾', '#65a30d', 8, 1, '2026-03-20 21:33:43', 8),
(9, 'Psicología', 'Todo sobre la carrera de Psicología', '🧠', '#a855f7', 9, 1, '2026-03-20 21:33:43', 9),
(10, 'Derecho', 'Hilos sobre Derecho y Ciencias Jurídicas', '⚖️', '#1d4ed8', 10, 1, '2026-03-20 21:33:43', 10),
(11, 'Ciencias Políticas', 'Ciencias Políticas y Gobierno', '🏛️', '#7c3aed', 11, 1, '2026-03-20 21:33:43', 11),
(12, 'Trabajo Social', 'Carrera de Trabajo Social', '🤝', '#0d9488', 12, 1, '2026-03-20 21:33:43', 12),
(13, 'Sociología', 'Sociología y Ciencias Sociales', '👥', '#0369a1', 13, 1, '2026-03-20 21:33:43', 13),
(14, 'Comunicación Social', 'Comunicación, Periodismo y Medios', '📡', '#b45309', 14, 1, '2026-03-20 21:33:43', 14),
(15, 'Antropología', 'Antropología y Ciencias Humanas', '🏺', '#92400e', 15, 1, '2026-03-20 21:33:43', 15),
(16, 'Arqueología', 'Arqueología y Patrimonio Cultural', '🗿', '#78716c', 16, 1, '2026-03-20 21:33:43', 16),
(17, 'Historia', 'Historia y Ciencias Históricas', '📜', '#b45309', 17, 1, '2026-03-20 21:33:43', 17),
(18, 'Literatura', 'Literatura y Lingüística', '📚', '#7c3aed', 18, 1, '2026-03-20 21:33:43', 18),
(19, 'Filosofía', 'Filosofía y Pensamiento', '🔭', '#475569', 19, 1, '2026-03-20 21:33:43', 19),
(20, 'Administración de Empresas', 'Gestión, Administración y Negocios', '💼', '#2563eb', 20, 1, '2026-03-20 21:33:43', 20),
(21, 'Contabilidad', 'Contabilidad y Finanzas', '🧾', '#059669', 21, 1, '2026-03-20 21:33:43', 21),
(22, 'Economía', 'Economía y Políticas Económicas', '📈', '#16a34a', 22, 1, '2026-03-20 21:33:43', 22),
(23, 'Marketing', 'Marketing y Publicidad', '📣', '#dc2626', 23, 1, '2026-03-20 21:33:43', 23),
(24, 'Negocios Internacionales', 'Comercio y Negocios Globales', '🌍', '#0284c7', 24, 1, '2026-03-20 21:33:43', 24),
(25, 'Turismo y Hotelería', 'Turismo, Hostelería y Gastronomía', '✈️', '#0891b2', 25, 1, '2026-03-20 21:33:43', 25),
(26, 'Ing. de Sistemas e Informática', 'Programación, Redes, Software', '💻', '#6366f1', 26, 1, '2026-03-20 21:33:43', 26),
(27, 'Ingeniería Civil', 'Estructuras, Construcción y Urbanismo', '🏗️', '#78716c', 27, 1, '2026-03-20 21:33:43', 27),
(28, 'Ingeniería Industrial', 'Procesos, Calidad y Producción', '⚙️', '#b45309', 28, 1, '2026-03-20 21:33:43', 28),
(29, 'Ingeniería Electrónica', 'Electrónica y Automatización', '⚡', '#f59e0b', 29, 1, '2026-03-20 21:33:43', 29),
(30, 'Ingeniería Mecánica', 'Mecánica y Manufactura', '🔧', '#64748b', 30, 1, '2026-03-20 21:33:43', 30),
(31, 'Ingeniería Mecatrónica', 'Mecatrónica y Robótica', '🤖', '#8b5cf6', 31, 1, '2026-03-20 21:33:43', 31),
(32, 'Ingeniería Química', 'Química Industrial y Procesos', '🧪', '#10b981', 32, 1, '2026-03-20 21:33:43', 32),
(33, 'Ingeniería Ambiental', 'Medio Ambiente y Sostenibilidad', '🌿', '#16a34a', 33, 1, '2026-03-20 21:33:43', 33),
(34, 'Ingeniería de Minas', 'Minería y Recursos Minerales', '⛏️', '#78716c', 34, 1, '2026-03-20 21:33:43', 34),
(35, 'Ingeniería Geológica', 'Geología y Ciencias de la Tierra', '🌋', '#92400e', 35, 1, '2026-03-20 21:33:43', 35),
(36, 'Ingeniería Metalúrgica', 'Metalurgia y Materiales', '🔩', '#475569', 36, 1, '2026-03-20 21:33:43', 36),
(37, 'Ingeniería Pesquera', 'Recursos Hidrobiológicos', '🐟', '#0891b2', 37, 1, '2026-03-20 21:33:43', 37),
(38, 'Ingeniería Forestal', 'Recursos Forestales y del Ambiente', '🌲', '#15803d', 38, 1, '2026-03-20 21:33:43', 38),
(39, 'Ing. de Telecomunicaciones', 'Redes y Telecomunicaciones', '📶', '#2563eb', 39, 1, '2026-03-20 21:33:43', 39),
(40, 'Ingeniería en Energía', 'Energías Renovables y Eficiencia', '⚡', '#d97706', 40, 1, '2026-03-20 21:33:43', 40),
(41, 'Ciencias de la Computación', 'Algoritmos, IA y Computación', '🖥️', '#4f46e5', 41, 1, '2026-03-20 21:33:43', 41),
(42, 'Ingeniería Agrónoma', 'Agronomía y Producción Agrícola', '🌾', '#65a30d', 42, 1, '2026-03-20 21:33:43', 42),
(43, 'Ingeniería Zootecnista', 'Zootecnia y Producción Animal', '🐄', '#84cc16', 43, 1, '2026-03-20 21:33:43', 43),
(44, 'Arquitectura', 'Arquitectura y Urbanismo', '🏛️', '#f97316', 44, 1, '2026-03-20 21:33:43', 44),
(45, 'Arte y Diseño Gráfico', 'Bellas Artes, Diseño y Creatividad', '🎨', '#ec4899', 45, 1, '2026-03-20 21:33:43', 45),
(46, 'Educación', 'Docencia y Ciencias de la Educación', '📐', '#0d9488', 46, 1, '2026-03-20 21:33:43', 46),
(47, 'Biología', 'Biología y Ciencias Naturales', '🧬', '#16a34a', 47, 1, '2026-03-20 21:33:43', 47),
(48, 'Química', 'Química y Ciencias Exactas', '⚗️', '#7c3aed', 48, 1, '2026-03-20 21:33:43', 48),
(49, 'Física', 'Física Teórica y Experimental', '🔭', '#2563eb', 49, 1, '2026-03-20 21:33:43', 49),
(50, 'Matemáticas', 'Matemáticas Puras y Aplicadas', '📐', '#4f46e5', 50, 1, '2026-03-20 21:33:43', 50),
(51, 'Estadística', 'Estadística y Probabilidad', '📊', '#0891b2', 51, 1, '2026-03-20 21:33:43', 51),
(52, 'General', 'Temas generales, consejos y dudas del preuniversitario', '💬', '#6366f1', 99, 1, '2026-03-20 21:33:43', NULL);

-- --------------------------------------------------------

--
-- Table structure for table `foro_hilos`
--

CREATE TABLE `foro_hilos` (
  `id` int(11) NOT NULL,
  `categoria_id` int(11) NOT NULL,
  `perfil_id` int(11) NOT NULL,
  `titulo` varchar(200) NOT NULL,
  `contenido` text NOT NULL,
  `tags` varchar(255) DEFAULT NULL COMMENT 'JSON array de tags',
  `vistas` int(11) NOT NULL DEFAULT 0,
  `votos` int(11) NOT NULL DEFAULT 0,
  `fijado` tinyint(1) NOT NULL DEFAULT 0,
  `destacado` tinyint(1) NOT NULL DEFAULT 0,
  `cerrado` tinyint(1) NOT NULL DEFAULT 0,
  `eliminado` tinyint(1) NOT NULL DEFAULT 0,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp(),
  `actualizado_en` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `foro_logros`
--

CREATE TABLE `foro_logros` (
  `id` int(11) NOT NULL,
  `nombre` varchar(80) NOT NULL,
  `descripcion` varchar(200) NOT NULL,
  `icono` varchar(10) NOT NULL,
  `xp_reward` int(11) NOT NULL DEFAULT 50,
  `condicion` varchar(100) NOT NULL COMMENT 'Descripcion de la condicion'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `foro_logros`
--

INSERT INTO `foro_logros` (`id`, `nombre`, `descripcion`, `icono`, `xp_reward`, `condicion`) VALUES
(1, 'Primera Palabra', 'Publicaste tu primer hilo', '✍️', 50, 'primer_hilo'),
(2, 'Responde y Aprende', 'Diste tu primera respuesta', '💬', 30, 'primera_respuesta'),
(3, 'Popular', 'Tu hilo llegó a 10 votos', '🔥', 100, 'hilo_10_votos'),
(4, 'Experto', 'Tienes 5 mejores respuestas', '🏆', 200, 'cinco_mejores'),
(5, 'Racha x7', 'Visitaste el foro 7 días seguidos', '⚡', 150, 'racha_7'),
(6, 'Racha x30', 'Visitaste el foro 30 días seguidos', '💎', 500, 'racha_30'),
(7, 'Nivel 5', 'Alcanzaste el nivel Experto', '⭐', 300, 'nivel_5'),
(8, 'Top Carrera', 'Llegaste al top 3 de tu carrera', '👑', 400, 'top3_carrera'),
(9, 'Bronce', 'Alcanzaste 2000 XP total', '🥉', 100, 'liga_bronce'),
(10, 'Plata', 'Alcanzaste 8000 XP total', '🥈', 200, 'liga_plata'),
(11, 'Oro', 'Alcanzaste 20000 XP total', '🥇', 500, 'liga_oro'),
(12, 'Diamante', 'Alcanzaste 50000 XP total', '💎', 1000, 'liga_diamante'),
(13, 'Madrugador', 'Publicaste a las 3am (badge secreto)', '🌙', 0, 'madrugador'),
(14, 'Racha Respuestas', '10 respuestas seguidas', '🔥', 150, 'racha_resp_10'),
(15, 'Hilo Trending', 'Tu hilo llegó a 20 likes', '📈', 200, 'hilo_trending'),
(16, 'Bronce', 'Alcanzaste 2000 XP total', '🥉', 100, 'liga_bronce'),
(17, 'Plata', 'Alcanzaste 8000 XP total', '🥈', 200, 'liga_plata'),
(18, 'Oro', 'Alcanzaste 20000 XP total', '🥇', 500, 'liga_oro'),
(19, 'Diamante', 'Alcanzaste 50000 XP total', '💎', 1000, 'liga_diamante'),
(20, 'Madrugador', 'Publicaste a las 3am (badge secreto)', '🌙', 0, 'madrugador'),
(21, 'Racha Respuestas', '10 respuestas seguidas', '🔥', 150, 'racha_resp_10'),
(22, 'Hilo Trending', 'Tu hilo llegó a 20 likes', '📈', 200, 'hilo_trending'),
(23, 'Bronce', 'Alcanzaste 2000 XP total', '🥉', 100, 'liga_bronce'),
(24, 'Plata', 'Alcanzaste 8000 XP total', '🥈', 200, 'liga_plata'),
(25, 'Oro', 'Alcanzaste 20000 XP total', '🥇', 500, 'liga_oro'),
(26, 'Diamante', 'Alcanzaste 50000 XP total', '💎', 1000, 'liga_diamante'),
(27, 'Madrugador', 'Publicaste a las 3am (badge secreto)', '🌙', 0, 'madrugador'),
(28, 'Racha Respuestas', '10 respuestas seguidas', '🔥', 150, 'racha_resp_10'),
(29, 'Hilo Trending', 'Tu hilo llegó a 20 likes', '📈', 200, 'hilo_trending'),
(30, 'Primer Hilo', 'Publicaste tu primer hilo', '📝', 50, 'primer_hilo'),
(31, 'Primera Respuesta', 'Respondiste por primera vez', '💬', 30, 'primera_respuesta'),
(32, 'Hilo Popular', 'Tu hilo recibió 10 votos', '🔥', 100, 'hilo_10_votos'),
(33, 'Hilo Trending', 'Tu hilo llegó a 20 votos', '📈', 200, 'hilo_trending'),
(34, 'Racha 7 días', 'Visitaste 7 días seguidos', '⚡', 200, 'racha_7'),
(35, 'Racha 30 días', 'Visitaste 30 días seguidos', '💎', 500, 'racha_30'),
(36, 'Liga Bronce', 'Alcanzaste Bronce', '🥉', 100, 'liga_bronce'),
(37, 'Liga Plata', 'Alcanzaste Plata', '🥈', 200, 'liga_plata'),
(38, 'Liga Oro', 'Alcanzaste Oro', '🥇', 500, 'liga_oro'),
(39, 'Liga Diamante', 'Alcanzaste Diamante', '💎', 1000, 'liga_diamante'),
(40, 'Cinco Mejores', '5 de tus respuestas marcadas como mejores', '🏆', 300, 'cinco_mejores');

-- --------------------------------------------------------

--
-- Table structure for table `foro_logros_alumno`
--

CREATE TABLE `foro_logros_alumno` (
  `id` int(11) NOT NULL,
  `perfil_id` int(11) NOT NULL,
  `logro_id` int(11) NOT NULL,
  `obtenido_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `foro_notificaciones`
--

CREATE TABLE `foro_notificaciones` (
  `id` int(11) NOT NULL,
  `perfil_id` int(11) NOT NULL COMMENT 'Quién recibe',
  `tipo` enum('respuesta','voto','mencion','mejor_respuesta','nivel','ban','logro') NOT NULL,
  `mensaje` varchar(255) NOT NULL,
  `url` varchar(255) DEFAULT NULL,
  `leida` tinyint(1) NOT NULL DEFAULT 0,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `foro_perfiles`
--

CREATE TABLE `foro_perfiles` (
  `id` int(11) NOT NULL,
  `usuario_id` int(11) NOT NULL,
  `alias` varchar(40) NOT NULL,
  `avatar_color` varchar(7) NOT NULL DEFAULT '#2563eb',
  `avatar_emoji` varchar(10) NOT NULL DEFAULT '?',
  `foto_perfil` varchar(255) DEFAULT NULL,
  `bio` varchar(200) DEFAULT NULL,
  `xp` int(11) NOT NULL DEFAULT 0,
  `nivel` tinyint(4) NOT NULL DEFAULT 1,
  `racha_dias` int(11) NOT NULL DEFAULT 0,
  `ultima_visita` date DEFAULT NULL,
  `es_moderador` tinyint(1) NOT NULL DEFAULT 0,
  `baneado` tinyint(1) NOT NULL DEFAULT 0,
  `ban_motivo` varchar(255) DEFAULT NULL,
  `ban_hasta` datetime DEFAULT NULL,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp(),
  `xp_hoy` int(11) NOT NULL DEFAULT 0,
  `xp_hoy_fecha` date DEFAULT NULL,
  `total_hilos` int(11) NOT NULL DEFAULT 0,
  `total_respuestas` int(11) NOT NULL DEFAULT 0,
  `mejores_respuestas` int(11) NOT NULL DEFAULT 0,
  `temporada_xp` int(11) NOT NULL DEFAULT 0 COMMENT 'XP acumulado en la temporada actual (no se reinicia el global)'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `foro_ranking_mensual`
--

CREATE TABLE `foro_ranking_mensual` (
  `id` int(11) NOT NULL,
  `temporada_id` int(11) NOT NULL,
  `perfil_id` int(11) NOT NULL,
  `posicion` int(11) NOT NULL,
  `xp_temporada` int(11) NOT NULL DEFAULT 0,
  `guardado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `foro_reacciones`
--

CREATE TABLE `foro_reacciones` (
  `id` int(11) NOT NULL,
  `perfil_id` int(11) NOT NULL,
  `hilo_id` int(11) NOT NULL,
  `emoji` varchar(10) NOT NULL,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `foro_reportes`
--

CREATE TABLE `foro_reportes` (
  `id` int(11) NOT NULL,
  `perfil_id` int(11) NOT NULL COMMENT 'Quién reporta',
  `tipo` enum('hilo','respuesta','perfil') NOT NULL,
  `item_id` int(11) NOT NULL,
  `motivo` varchar(255) NOT NULL,
  `estado` enum('pendiente','revisado','resuelto') DEFAULT 'pendiente',
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `foro_respuestas`
--

CREATE TABLE `foro_respuestas` (
  `id` int(11) NOT NULL,
  `hilo_id` int(11) NOT NULL,
  `perfil_id` int(11) NOT NULL,
  `padre_id` int(11) DEFAULT NULL COMMENT 'Para respuestas anidadas',
  `contenido` text NOT NULL,
  `votos` int(11) NOT NULL DEFAULT 0,
  `es_mejor` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Mejor respuesta',
  `eliminado` tinyint(1) NOT NULL DEFAULT 0,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `foro_temporadas`
--

CREATE TABLE `foro_temporadas` (
  `id` int(11) NOT NULL,
  `nombre` varchar(80) NOT NULL,
  `inicio` date NOT NULL,
  `fin` date NOT NULL,
  `activa` tinyint(1) NOT NULL DEFAULT 0,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `foro_temporadas`
--

INSERT INTO `foro_temporadas` (`id`, `nombre`, `inicio`, `fin`, `activa`, `creado_en`) VALUES
(1, 'Temporada Marzo 2026', '2026-03-01', '2026-03-31', 1, '2026-03-20 19:50:18'),
(2, 'Temporada Marzo 2026', '2026-03-01', '2026-03-31', 1, '2026-03-20 19:56:25'),
(3, 'Temporada Marzo 2026', '2026-03-01', '2026-03-31', 1, '2026-03-20 21:05:26'),
(4, 'Temporada 2025', '2026-03-20', '2026-06-20', 1, '2026-03-20 21:33:44');

-- --------------------------------------------------------

--
-- Table structure for table `foro_usuarios_ext`
--

CREATE TABLE `foro_usuarios_ext` (
  `id` int(11) NOT NULL,
  `sis_id` int(11) NOT NULL,
  `email` varchar(150) NOT NULL,
  `nombre` varchar(150) NOT NULL,
  `tipo` enum('sis') DEFAULT 'sis',
  `creado_en` datetime DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `foro_votos`
--

CREATE TABLE `foro_votos` (
  `id` int(11) NOT NULL,
  `perfil_id` int(11) NOT NULL,
  `tipo` enum('hilo','respuesta') NOT NULL,
  `item_id` int(11) NOT NULL,
  `valor` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1=upvote, -1=downvote',
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `foro_xp_log`
--

CREATE TABLE `foro_xp_log` (
  `id` int(11) NOT NULL,
  `perfil_id` int(11) NOT NULL,
  `xp` int(11) NOT NULL,
  `motivo` varchar(100) NOT NULL,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `historial_asignaciones`
--

CREATE TABLE `historial_asignaciones` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) NOT NULL,
  `docente_id` int(11) NOT NULL,
  `curso` varchar(100) NOT NULL,
  `accion` varchar(50) NOT NULL,
  `registrado_por` int(11) NOT NULL,
  `fecha` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `historial_asignaciones`
--

INSERT INTO `historial_asignaciones` (`id`, `alumno_id`, `docente_id`, `curso`, `accion`, `registrado_por`, `fecha`) VALUES
(1, 2, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(2, 9, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(3, 32, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(4, 25, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(5, 7, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(6, 28, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(7, 24, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(8, 27, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(9, 13, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(10, 29, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(11, 15, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(12, 26, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(13, 46, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(14, 36, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(15, 40, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(16, 11, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(17, 37, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(18, 38, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(19, 34, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(20, 42, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(21, 30, 14, 'General', 'asignacion', 17, '2026-04-30 17:56:30'),
(22, 2, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(23, 4, 17, 'General', 'asignacion', 17, '2026-04-30 17:57:15'),
(24, 47, 17, 'General', 'asignacion', 17, '2026-04-30 17:57:15'),
(25, 9, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(26, 32, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(27, 25, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(28, 7, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(29, 28, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(30, 24, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(31, 27, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(32, 13, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(33, 29, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(34, 15, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(35, 26, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(36, 46, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(37, 36, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(38, 40, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(39, 11, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(40, 37, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(41, 38, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(42, 34, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(43, 42, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(44, 30, 17, 'General', 'reasignacion', 17, '2026-04-30 17:57:15'),
(45, 2, 17, 'General', 'desasignacion', 17, '2026-04-30 18:01:21'),
(46, 2, 17, 'General', 'asignacion', 17, '2026-04-30 18:01:33'),
(47, 9, 17, 'General', 'desasignacion', 17, '2026-04-30 19:53:02'),
(48, 32, 17, 'General', 'desasignacion', 17, '2026-04-30 19:53:07'),
(49, 25, 17, 'General', 'desasignacion', 17, '2026-04-30 19:53:11'),
(50, 54, 95, 'General', 'asignacion', 17, '2026-06-04 03:56:27'),
(51, 53, 95, 'General', 'asignacion', 17, '2026-06-04 03:56:27');

-- --------------------------------------------------------

--
-- Table structure for table `historial_envios_reportes`
--

CREATE TABLE `historial_envios_reportes` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) DEFAULT NULL,
  `colegio_id` int(11) DEFAULT NULL,
  `tipo_reporte` varchar(50) DEFAULT NULL,
  `destinatarios` varchar(255) DEFAULT NULL,
  `estado` varchar(20) DEFAULT 'enviado',
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp(),
  `archivo_pdf` varchar(500) DEFAULT NULL,
  `periodo_tipo` varchar(20) DEFAULT 'general',
  `fecha_inicio` datetime DEFAULT NULL,
  `fecha_fin` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `historial_envios_reportes`
--

INSERT INTO `historial_envios_reportes` (`id`, `alumno_id`, `colegio_id`, `tipo_reporte`, `destinatarios`, `estado`, `creado_en`, `archivo_pdf`, `periodo_tipo`, `fecha_inicio`, `fecha_fin`) VALUES
(1, 54, 81, 'Diario', '', 'generado', '2026-06-04 00:01:43', 'uploads/informes/diario_54_20260604_020143.pdf', 'diario', '2026-06-04 00:00:00', '2026-06-04 02:01:41'),
(2, 54, 81, 'Semanal', '', 'generado', '2026-06-04 00:11:24', 'uploads/informes/semanal_54_20260604_021124.pdf', 'semanal', '2026-05-28 02:11:22', '2026-06-04 02:11:22'),
(3, 54, 81, 'Semanal', '', 'generado', '2026-06-04 00:14:49', 'uploads/informes/semanal_54_20260604_021449.pdf', 'semanal', '2026-05-28 02:14:47', '2026-06-04 02:14:47'),
(4, 54, 81, 'Semanal', '', 'generado', '2026-06-04 00:17:12', 'uploads/informes/semanal_54_20260604_021712.pdf', 'semanal', '2026-05-28 02:17:10', '2026-06-04 02:17:10'),
(5, 54, 81, 'Diario', '', 'generado', '2026-06-04 00:34:25', 'uploads/informes/diario_54_20260604_023425.pdf', 'diario', '2026-06-04 00:00:00', '2026-06-04 02:34:23'),
(6, 54, 81, 'Diario', '', 'generado', '2026-06-04 00:34:36', 'uploads/informes/diario_54_20260604_023436.pdf', 'diario', '2026-06-04 00:00:00', '2026-06-04 02:34:35'),
(7, 54, 81, 'Diario Manual', 'yamileblas25@gmail.com, yamileblassm@gmail.com', 'error_correo', '2026-06-04 00:34:54', 'uploads/informes/diario_manual_54_20260604_023452.pdf', 'diario', '2026-06-04 00:00:00', '2026-06-04 02:34:51'),
(8, 54, 81, 'Diario Manual', 'yamileblas25@gmail.com', 'error_correo', '2026-06-04 00:35:51', 'uploads/informes/diario_manual_54_20260604_023549.pdf', 'diario', '2026-06-04 00:00:00', '2026-06-04 02:35:47'),
(9, 54, 81, 'Diario', '', 'generado', '2026-06-04 02:54:59', 'uploads/informes/diario_54_20260604_045459.pdf', 'diario', '2026-06-04 00:00:00', '2026-06-04 04:54:48'),
(10, 54, 81, 'Diario', '', 'generado', '2026-06-04 03:11:45', 'uploads/informes/diario_54_20260604_051145.pdf', 'diario', '2026-06-04 00:00:00', '2026-06-04 05:11:43'),
(11, 54, 81, 'Diario', '', 'generado', '2026-06-04 03:31:19', 'uploads/informes/diario_54_20260604_053119.pdf', 'diario', '2026-06-04 00:00:00', '2026-06-04 05:31:18'),
(12, 54, 81, 'Diario', '', 'generado', '2026-06-04 06:31:26', 'uploads/informes/diario_54_20260604_083126.pdf', 'diario', '2026-06-04 00:00:00', '2026-06-04 08:31:24'),
(13, 54, 81, 'Diario', '', 'generado', '2026-06-04 06:51:00', 'uploads/informes/diario_54_20260604_085100.pdf', 'diario', '2026-06-04 00:00:00', '2026-06-04 08:50:58'),
(14, 54, 81, 'Diario', '', 'generado', '2026-06-04 07:03:18', 'uploads/informes/diario_54_20260604_090318.pdf', 'diario', '2026-06-04 00:00:00', '2026-06-04 09:03:16'),
(15, 54, 81, 'Diario', '', 'generado', '2026-06-04 07:07:46', 'uploads/informes/diario_54_20260604_090746.pdf', 'diario', '2026-06-04 00:00:00', '2026-06-04 09:07:44'),
(16, 54, 81, 'General', '', 'generado', '2026-06-04 07:08:40', 'uploads/informes/general_54_20260604_090840.pdf', 'general', NULL, NULL),
(17, 54, 81, 'Diario', '', 'generado', '2026-06-04 07:08:57', 'uploads/informes/diario_54_20260604_090857.pdf', 'diario', '2026-06-04 00:00:00', '2026-06-04 09:08:55'),
(18, 54, 81, 'Diario', '', 'generado', '2026-06-04 07:26:22', 'uploads/informes/diario_54_20260604_092622.pdf', 'diario', '2026-06-04 00:00:00', '2026-06-04 09:26:20');

-- --------------------------------------------------------

--
-- Table structure for table `horarios`
--

CREATE TABLE `horarios` (
  `id` int(11) NOT NULL,
  `colegio_id` int(11) DEFAULT NULL,
  `curso_id` int(11) DEFAULT NULL,
  `docente_id` int(11) DEFAULT NULL,
  `alumno_id` int(11) DEFAULT NULL,
  `asignatura` varchar(150) NOT NULL,
  `dia_semana` varchar(20) NOT NULL,
  `hora_inicio` time NOT NULL,
  `hora_fin` time NOT NULL,
  `aula` varchar(100) DEFAULT NULL,
  `color_hex` varchar(20) DEFAULT '#3b82f6',
  `nivel_requerido` enum('alto','medio','bajo') DEFAULT 'medio',
  `tipo` enum('clase','video','simulacro','recuperacion') DEFAULT 'clase',
  `activo` tinyint(1) DEFAULT 1,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp(),
  `actualizado_en` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `carrera_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Horarios académicos del sistema';

--
-- Dumping data for table `horarios`
--

INSERT INTO `horarios` (`id`, `colegio_id`, `curso_id`, `docente_id`, `alumno_id`, `asignatura`, `dia_semana`, `hora_inicio`, `hora_fin`, `aula`, `color_hex`, `nivel_requerido`, `tipo`, `activo`, `creado_en`, `actualizado_en`, `carrera_id`) VALUES
(4, 81, NULL, 17, 37, 's', 'Miércoles', '07:00:00', '08:00:00', 's', '#3b82f6', 'medio', 'simulacro', 1, '2026-04-30 18:38:06', '2026-05-10 03:01:18', NULL),
(5, 81, NULL, 17, 32, 'Estudio', 'Martes', '07:00:00', '08:00:00', '', '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:07:45', '2026-05-10 03:01:18', NULL),
(6, 81, NULL, 17, 32, 'Video', 'Jueves', '07:00:00', '08:00:00', '', '#7c5cfc', 'medio', 'video', 1, '2026-04-30 19:07:54', '2026-05-10 03:01:18', NULL),
(7, 81, NULL, NULL, 32, 'Estudio', 'Lunes', '07:00:00', '08:00:00', '', '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:10:29', '2026-05-10 03:01:18', NULL),
(518, 81, NULL, NULL, 13, 'Estudio', 'Lunes', '07:00:00', '08:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(519, 81, NULL, NULL, 13, 'Estudio', 'Lunes', '08:00:00', '09:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(520, 81, NULL, NULL, 13, 'Video', 'Lunes', '09:00:00', '10:00:00', NULL, '#7c5cfc', 'medio', 'video', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(521, 81, NULL, NULL, 13, 'Estudio', 'Lunes', '10:00:00', '11:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(522, 81, NULL, NULL, 13, 'Estudio', 'Lunes', '11:00:00', '12:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(523, 81, NULL, NULL, 13, 'Video', 'Lunes', '12:00:00', '13:00:00', NULL, '#7c5cfc', 'medio', 'video', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(524, 81, NULL, NULL, 13, 'Descanso', 'Lunes', '13:00:00', '14:00:00', NULL, '#475569', 'medio', '', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(525, 81, NULL, NULL, 13, 'Estudio', 'Lunes', '14:00:00', '15:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(526, 81, NULL, NULL, 13, 'Estudio', 'Martes', '07:00:00', '08:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(527, 81, NULL, NULL, 13, 'Estudio', 'Martes', '08:00:00', '09:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(528, 81, NULL, NULL, 13, 'Video', 'Martes', '09:00:00', '10:00:00', NULL, '#7c5cfc', 'medio', 'video', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(529, 81, NULL, NULL, 13, 'Estudio', 'Martes', '10:00:00', '11:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(530, 81, NULL, NULL, 13, 'Estudio', 'Martes', '11:00:00', '12:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(531, 81, NULL, NULL, 13, 'Video', 'Martes', '12:00:00', '13:00:00', NULL, '#7c5cfc', 'medio', 'video', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(532, 81, NULL, NULL, 13, 'Descanso', 'Martes', '13:00:00', '14:00:00', NULL, '#475569', 'medio', '', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(533, 81, NULL, NULL, 13, 'Estudio', 'Martes', '14:00:00', '15:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(534, 81, NULL, NULL, 13, 'Estudio', 'Miércoles', '07:00:00', '08:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(535, 81, NULL, NULL, 13, 'Estudio', 'Miércoles', '08:00:00', '09:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(536, 81, NULL, NULL, 13, 'Video', 'Miércoles', '09:00:00', '10:00:00', NULL, '#7c5cfc', 'medio', 'video', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(537, 81, NULL, NULL, 13, 'Estudio', 'Miércoles', '10:00:00', '11:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(538, 81, NULL, NULL, 13, 'Estudio', 'Miércoles', '11:00:00', '12:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(539, 81, NULL, NULL, 13, 'Video', 'Miércoles', '12:00:00', '13:00:00', NULL, '#7c5cfc', 'medio', 'video', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(540, 81, NULL, NULL, 13, 'Descanso', 'Miércoles', '13:00:00', '14:00:00', NULL, '#475569', 'medio', '', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(541, 81, NULL, NULL, 13, 'Estudio', 'Miércoles', '14:00:00', '15:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(542, 81, NULL, NULL, 13, 'Estudio', 'Jueves', '07:00:00', '08:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(543, 81, NULL, NULL, 13, 'Estudio', 'Jueves', '08:00:00', '09:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(544, 81, NULL, NULL, 13, 'Video', 'Jueves', '09:00:00', '10:00:00', NULL, '#7c5cfc', 'medio', 'video', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(545, 81, NULL, NULL, 13, 'Estudio', 'Jueves', '10:00:00', '11:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(546, 81, NULL, NULL, 13, 'Estudio', 'Jueves', '11:00:00', '12:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(547, 81, NULL, NULL, 13, 'Video', 'Jueves', '12:00:00', '13:00:00', NULL, '#7c5cfc', 'medio', 'video', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(548, 81, NULL, NULL, 13, 'Descanso', 'Jueves', '13:00:00', '14:00:00', NULL, '#475569', 'medio', '', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(549, 81, NULL, NULL, 13, 'Estudio', 'Jueves', '14:00:00', '15:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(550, 81, NULL, NULL, 13, 'Estudio', 'Viernes', '07:00:00', '08:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(551, 81, NULL, NULL, 13, 'Estudio', 'Viernes', '08:00:00', '09:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(552, 81, NULL, NULL, 13, 'Video', 'Viernes', '09:00:00', '10:00:00', NULL, '#7c5cfc', 'medio', 'video', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(553, 81, NULL, NULL, 13, 'Estudio', 'Viernes', '10:00:00', '11:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(554, 81, NULL, NULL, 13, 'Estudio', 'Viernes', '11:00:00', '12:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(555, 81, NULL, NULL, 13, 'Video', 'Viernes', '12:00:00', '13:00:00', NULL, '#7c5cfc', 'medio', 'video', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(556, 81, NULL, NULL, 13, 'Descanso', 'Viernes', '13:00:00', '14:00:00', NULL, '#475569', 'medio', '', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(557, 81, NULL, NULL, 13, 'Estudio', 'Viernes', '14:00:00', '15:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(558, 81, NULL, NULL, 13, 'Estudio', 'Sábado', '07:00:00', '08:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(559, 81, NULL, NULL, 13, 'Estudio', 'Sábado', '08:00:00', '09:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(560, 81, NULL, NULL, 13, 'Video', 'Sábado', '09:00:00', '10:00:00', NULL, '#7c5cfc', 'medio', 'video', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(561, 81, NULL, NULL, 13, 'Estudio', 'Sábado', '10:00:00', '11:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(562, 81, NULL, NULL, 13, 'Estudio', 'Sábado', '11:00:00', '12:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(563, 81, NULL, NULL, 13, 'Video', 'Sábado', '12:00:00', '13:00:00', NULL, '#7c5cfc', 'medio', 'video', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(564, 81, NULL, NULL, 13, 'Descanso', 'Sábado', '13:00:00', '14:00:00', NULL, '#475569', 'medio', '', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(565, 81, NULL, NULL, 13, 'Estudio', 'Sábado', '14:00:00', '15:00:00', NULL, '#3b82f6', 'medio', 'clase', 1, '2026-04-30 19:49:59', '2026-05-10 03:01:18', NULL),
(638, 81, NULL, NULL, 1, 'Biblioteca', 'Lunes', '15:00:00', '16:00:00', NULL, '#f97316', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(639, 81, NULL, NULL, 1, 'Tareas', 'Lunes', '16:00:00', '17:00:00', NULL, '#8b5cf6', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(640, 81, NULL, NULL, 1, 'Biblioteca', 'Lunes', '17:00:00', '18:00:00', NULL, '#f97316', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(641, 81, NULL, NULL, 1, 'Tareas', 'Lunes', '18:00:00', '19:00:00', NULL, '#8b5cf6', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(642, 81, NULL, NULL, 1, 'Biblioteca', 'Martes', '15:00:00', '16:00:00', NULL, '#f97316', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(643, 81, NULL, NULL, 1, 'Tareas', 'Martes', '16:00:00', '17:00:00', NULL, '#8b5cf6', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(644, 81, NULL, NULL, 1, 'Biblioteca', 'Martes', '17:00:00', '18:00:00', NULL, '#f97316', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(645, 81, NULL, NULL, 1, 'Tareas', 'Martes', '18:00:00', '19:00:00', NULL, '#8b5cf6', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(646, 81, NULL, NULL, 1, 'Biblioteca', 'Miércoles', '15:00:00', '16:00:00', NULL, '#f97316', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(647, 81, NULL, NULL, 1, 'Tareas', 'Miércoles', '16:00:00', '17:00:00', NULL, '#8b5cf6', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(648, 81, NULL, NULL, 1, 'Biblioteca', 'Miércoles', '17:00:00', '18:00:00', NULL, '#f97316', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(649, 81, NULL, NULL, 1, 'Tareas', 'Miércoles', '18:00:00', '19:00:00', NULL, '#8b5cf6', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(650, 81, NULL, NULL, 1, 'Biblioteca', 'Jueves', '15:00:00', '16:00:00', NULL, '#f97316', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(651, 81, NULL, NULL, 1, 'Tareas', 'Jueves', '16:00:00', '17:00:00', NULL, '#8b5cf6', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(652, 81, NULL, NULL, 1, 'Biblioteca', 'Jueves', '17:00:00', '18:00:00', NULL, '#f97316', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(653, 81, NULL, NULL, 1, 'Tareas', 'Jueves', '18:00:00', '19:00:00', NULL, '#8b5cf6', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(654, 81, NULL, NULL, 1, 'Biblioteca', 'Viernes', '15:00:00', '16:00:00', NULL, '#f97316', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(655, 81, NULL, NULL, 1, 'Tareas', 'Viernes', '16:00:00', '17:00:00', NULL, '#8b5cf6', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(656, 81, NULL, NULL, 1, 'Biblioteca', 'Viernes', '17:00:00', '18:00:00', NULL, '#f97316', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(657, 81, NULL, NULL, 1, 'Tareas', 'Viernes', '18:00:00', '19:00:00', NULL, '#8b5cf6', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(658, 81, NULL, NULL, 1, 'Biblioteca', 'Sábado', '15:00:00', '16:00:00', NULL, '#f97316', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(659, 81, NULL, NULL, 1, 'Tareas', 'Sábado', '16:00:00', '17:00:00', NULL, '#8b5cf6', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(660, 81, NULL, NULL, 1, 'Biblioteca', 'Sábado', '17:00:00', '18:00:00', NULL, '#f97316', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL),
(661, 81, NULL, NULL, 1, 'Tareas', 'Sábado', '18:00:00', '19:00:00', NULL, '#8b5cf6', 'medio', '', 1, '2026-04-30 19:53:43', '2026-05-10 03:01:18', NULL);

-- --------------------------------------------------------

--
-- Table structure for table `intentos`
--

CREATE TABLE `intentos` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) NOT NULL,
  `colegio_id` int(11) DEFAULT NULL,
  `examen_id` int(11) NOT NULL,
  `puntaje_total` decimal(8,2) DEFAULT 0.00,
  `resultados_por_area` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'JSON con puntajes por área académica' CHECK (json_valid(`resultados_por_area`)),
  `iniciado_en` datetime DEFAULT NULL,
  `finalizado_en` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `intentos_simulacro_carrera`
--

CREATE TABLE `intentos_simulacro_carrera` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) NOT NULL,
  `simulacro_id` int(11) NOT NULL,
  `puntaje` decimal(8,2) NOT NULL,
  `fecha` datetime DEFAULT current_timestamp(),
  `colegio_id` int(11) DEFAULT NULL COMMENT 'Tenant'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `intentos_simulacro_ia`
--

CREATE TABLE `intentos_simulacro_ia` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) NOT NULL,
  `cache_id` int(11) NOT NULL,
  `universidad_id` int(11) NOT NULL,
  `carrera_id` int(11) DEFAULT NULL,
  `puntaje_total` decimal(5,2) DEFAULT NULL,
  `correctas` tinyint(3) DEFAULT NULL,
  `total_preguntas` tinyint(3) DEFAULT NULL,
  `respuestas_json` mediumtext DEFAULT NULL COMMENT 'JSON {pregunta_idx: respuesta_dada}',
  `tiempo_usado` smallint(6) DEFAULT NULL COMMENT 'Segundos que tardó',
  `iniciado_en` timestamp NOT NULL DEFAULT current_timestamp(),
  `finalizado_en` timestamp NULL DEFAULT NULL,
  `colegio_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Intentos de simulacros generados por IA';

-- --------------------------------------------------------

--
-- Table structure for table `logros`
--

CREATE TABLE `logros` (
  `id` int(11) NOT NULL,
  `nombre` varchar(100) NOT NULL,
  `descripcion` text NOT NULL,
  `icono` varchar(10) NOT NULL,
  `color` varchar(20) NOT NULL,
  `grupo` varchar(50) NOT NULL,
  `condicion_tipo` varchar(50) NOT NULL,
  `condicion_valor` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `logros`
--

INSERT INTO `logros` (`id`, `nombre`, `descripcion`, `icono`, `color`, `grupo`, `condicion_tipo`, `condicion_valor`) VALUES
(1, 'Primeros Pasos', 'Completa tu primer simulacro.', '🎯', '#60a5fa', 'Simulacros', 'total_intentos', 1),
(2, 'Constancia', 'Completa 5 simulacros.', '⚡', '#fbbf24', 'Simulacros', 'total_intentos', 5),
(3, 'Dedicación', 'Completa 10 simulacros.', '🔥', '#f97316', 'Simulacros', 'total_intentos', 10),
(4, 'Maratonista', 'Completa 25 simulacros.', '🚀', '#ef4444', 'Simulacros', 'total_intentos', 25),
(5, 'Buen Comienzo', 'Supera los 60 puntos en un examen.', '👍', '#34d399', 'Rendimiento', 'mejor_puntaje', 60),
(6, 'Alto Rendimiento', 'Supera los 80 puntos en un examen.', '⭐', '#facc15', 'Rendimiento', 'mejor_puntaje', 80),
(7, 'Élite Académica', 'Alcanza los 95 puntos. ¡Impresionante!', '🏆', '#a78bfa', 'Rendimiento', 'mejor_puntaje', 95),
(8, 'Racha x3', 'Estudia 3 días seguidos.', '🌟', '#c084fc', 'Consistencia', 'racha_dias', 3),
(9, 'Racha Semanal', 'Estudia 7 días seguidos sin parar.', '🏅', '#f472b6', 'Consistencia', 'racha_dias', 7),
(10, 'Autodescubrimiento', 'Completa el test vocacional.', '🧠', '#38bdf8', 'Orientación', 'test_vocacional', 1),
(11, 'Plan en Marcha', 'Inicia tu primer plan de estudio.', '🗺️', '#818cf8', 'Planificación', 'plan_activo', 1),
(12, 'Finalizador', 'Completa 10 tareas de tu plan.', '✔️', '#22c55e', 'Planificación', 'tareas_completadas', 10);

-- --------------------------------------------------------

--
-- Table structure for table `matriculas`
--

CREATE TABLE `matriculas` (
  `id` int(11) NOT NULL,
  `usuario_id` int(11) DEFAULT NULL COMMENT 'Vincula a un usuario del sistema si aplica',
  `nombre` varchar(100) NOT NULL,
  `apellido` varchar(100) NOT NULL,
  `email` varchar(150) DEFAULT NULL,
  `telefono` varchar(50) DEFAULT NULL,
  `fecha_nacimiento` date DEFAULT NULL,
  `grado` enum('4','5') NOT NULL,
  `colegio_id` int(11) DEFAULT NULL,
  `carrera_objetivo_id` int(11) DEFAULT NULL,
  `notas` text DEFAULT NULL,
  `fecha_matricula` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Registros de matrículas de estudiantes';

-- --------------------------------------------------------

--
-- Table structure for table `mensajes`
--

CREATE TABLE `mensajes` (
  `id` int(11) NOT NULL,
  `colegio_id` int(11) DEFAULT NULL,
  `remitente_id` int(11) NOT NULL,
  `destinatario_id` int(11) NOT NULL,
  `mensaje` text NOT NULL,
  `leido` tinyint(1) DEFAULT 0,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp(),
  `archivo_url` varchar(255) DEFAULT NULL,
  `archivo_nombre` varchar(255) DEFAULT NULL,
  `grupo_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `mensajes`
--

INSERT INTO `mensajes` (`id`, `colegio_id`, `remitente_id`, `destinatario_id`, `mensaje`, `leido`, `creado_en`, `archivo_url`, `archivo_nombre`, `grupo_id`) VALUES
(1, 81, 35, 14, 'BUENAS', 0, '2026-04-14 20:18:36', NULL, NULL, NULL);

-- --------------------------------------------------------

--
-- Table structure for table `mensajes_motivacionales`
--

CREATE TABLE `mensajes_motivacionales` (
  `id` int(11) NOT NULL,
  `titulo` varchar(160) NOT NULL DEFAULT '',
  `mensaje` text NOT NULL,
  `emoji` varchar(10) DEFAULT '?',
  `activo` tinyint(1) DEFAULT 1,
  `fijado` tinyint(1) DEFAULT 0,
  `creado_por` int(11) DEFAULT NULL,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp(),
  `grado_target` enum('4','5') DEFAULT NULL COMMENT 'NULL=todos los grados'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `mensajes_motivacionales`
--

INSERT INTO `mensajes_motivacionales` (`id`, `titulo`, `mensaje`, `emoji`, `activo`, `fijado`, `creado_por`, `creado_en`, `grado_target`) VALUES
(1, '¡Tú puedes!', 'El esfuerzo de hoy es el éxito de mañana. ¡Sigue adelante con cada simulacro!', '🚀', 1, 1, NULL, '2026-03-08 22:44:58', NULL),
(2, 'Constancia', 'Cada simulacro que completas te acerca más a tu carrera soñada. ¡No pares!', '🎯', 1, 0, NULL, '2026-03-08 22:44:58', NULL),
(3, 'Mente positiva', 'Los grandes logros requieren práctica constante. ¡Confía en tu proceso!', '⭐', 1, 0, NULL, '2026-03-08 22:44:58', NULL),
(4, 'Foco total', 'Dedica 30 minutos al día a practicar. La constancia supera al talento.', '🔥', 1, 0, NULL, '2026-03-08 22:44:58', NULL),
(5, 'Bienvenida', 'Recuerda: cada pregunta que respondes es un paso más hacia tu ingreso.', '💡', 1, 0, NULL, '2026-03-08 22:44:58', NULL),
(6, 'muy bien mijo', 'vamso con todo este año 2026', '💬', 1, 1, 14, '2026-03-10 17:37:50', NULL),
(7, 'tu puedes', 'vamos', '💬', 1, 0, 17, '2026-03-10 18:06:16', NULL),
(8, 'perfecto', 'vamos con todo', '💬', 1, 0, 17, '2026-03-16 04:20:49', NULL);

-- --------------------------------------------------------

--
-- Table structure for table `metas_alumno`
--

CREATE TABLE `metas_alumno` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) NOT NULL,
  `colegio_id` int(11) DEFAULT NULL COMMENT 'Tenant',
  `titulo` varchar(200) NOT NULL,
  `descripcion` text DEFAULT NULL,
  `tipo` enum('simulacros','puntaje','racha','vocacional','custom') DEFAULT 'custom',
  `valor_meta` decimal(10,2) DEFAULT 0.00 COMMENT 'Ej: 5 simulacros, 80 puntos',
  `valor_actual` decimal(10,2) DEFAULT 0.00 COMMENT 'Se actualiza automáticamente',
  `fecha_limite` date DEFAULT NULL,
  `completada` tinyint(1) DEFAULT 0,
  `creado_por` int(11) DEFAULT NULL,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `nivel_rendimiento`
--

CREATE TABLE `nivel_rendimiento` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) NOT NULL,
  `curso_id` int(11) DEFAULT NULL,
  `nivel` enum('alto','medio','bajo') DEFAULT 'medio',
  `porcentaje` decimal(5,2) DEFAULT NULL,
  `semana_inicio` date DEFAULT NULL,
  `calculado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `notificaciones`
--

CREATE TABLE `notificaciones` (
  `id` int(11) NOT NULL,
  `colegio_id` int(11) DEFAULT NULL,
  `usuario_id` int(11) NOT NULL,
  `mensaje` varchar(255) NOT NULL,
  `url` varchar(255) DEFAULT NULL,
  `leido` tinyint(1) NOT NULL DEFAULT 0,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `notificaciones`
--

INSERT INTO `notificaciones` (`id`, `colegio_id`, `usuario_id`, `mensaje`, `url`, `leido`, `creado_en`) VALUES
(33, 81, 14, '✅ JUANAMA BLAS ingresó · 07:51 PM · Domingo 26/04/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-04-27 00:51:36'),
(34, 81, 17, '✅ JUANAMA BLAS ingresó · 07:51 PM · Domingo 26/04/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 1, '2026-04-27 00:51:36'),
(36, 81, 14, '✅ lucina ingresó · 07:06 PM · Lunes 27/04/2026 | 📚 1 curso: Ingreso general | 🔴 Asistencia: 60% (En riesgo)', 'gestion_asistencia.php', 0, '2026-04-28 00:06:26'),
(37, 81, 17, '✅ lucina ingresó · 07:06 PM · Lunes 27/04/2026 | 📚 1 curso: Ingreso general | 🔴 Asistencia: 60% (En riesgo)', 'gestion_asistencia.php', 1, '2026-04-28 00:06:26'),
(39, 81, 14, '✅ JUANAMA BLAS ingresó · 10:46 PM · Lunes 27/04/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-04-28 03:46:02'),
(40, 81, 17, '✅ JUANAMA BLAS ingresó · 10:46 PM · Lunes 27/04/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 1, '2026-04-28 03:46:02'),
(42, 81, 14, '✅ maria ingresó · 11:34 AM · Martes 28/04/2026 | 📚 1 curso: Ingreso general | 🟡 Asistencia: 83.3% (Regular)', 'gestion_asistencia.php', 0, '2026-04-28 16:34:16'),
(43, 81, 17, '✅ maria ingresó · 11:34 AM · Martes 28/04/2026 | 📚 1 curso: Ingreso general | 🟡 Asistencia: 83.3% (Regular)', 'gestion_asistencia.php', 1, '2026-04-28 16:34:16'),
(45, 81, 14, '✅ JUANAMA BLAS ingresó · 11:37 AM · Martes 28/04/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-04-28 16:37:19'),
(46, 81, 17, '✅ JUANAMA BLAS ingresó · 11:37 AM · Martes 28/04/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 1, '2026-04-28 16:37:19'),
(49, 81, 14, '✅ fabian ingresó · 11:43 AM · Martes 28/04/2026 | 📚 1 curso: Ingreso general | 🔴 Asistencia: 37.5% (En riesgo)', 'gestion_asistencia.php', 0, '2026-04-28 16:43:13'),
(50, 81, 17, '✅ fabian ingresó · 11:43 AM · Martes 28/04/2026 | 📚 1 curso: Ingreso general | 🔴 Asistencia: 37.5% (En riesgo)', 'gestion_asistencia.php', 1, '2026-04-28 16:43:13'),
(52, 81, 14, '✅ JUANAMA BLAS ingresó · 11:45 AM · Jueves 30/04/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-04-30 16:45:44'),
(53, 81, 17, '✅ JUANAMA BLAS ingresó · 11:45 AM · Jueves 30/04/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 1, '2026-04-30 16:45:44'),
(56, 81, 14, '✅ JUANAMA BLAS ingresó · 01:07 PM · Jueves 30/04/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-04-30 18:07:59'),
(57, 81, 17, '✅ JUANAMA BLAS ingresó · 01:07 PM · Jueves 30/04/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 1, '2026-04-30 18:07:59'),
(60, 81, 14, '✅ lucina ingresó · 12:11 AM · Sábado 09/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-09 05:11:38'),
(61, 81, 17, '✅ lucina ingresó · 12:11 AM · Sábado 09/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 1, '2026-05-09 05:11:38'),
(85, NULL, 14, '✅ JUANAMA BLAS ingresó · 12:45 PM · Lunes 11/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-11 17:45:04'),
(86, NULL, 17, '✅ JUANAMA BLAS ingresó · 12:45 PM · Lunes 11/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 1, '2026-05-11 17:45:04'),
(88, NULL, 75, '✅ JUANAMA BLAS ingresó · 12:45 PM · Lunes 11/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-11 17:45:04'),
(89, NULL, 76, '✅ JUANAMA BLAS ingresó · 12:45 PM · Lunes 11/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-11 17:45:04'),
(90, NULL, 77, '✅ JUANAMA BLAS ingresó · 12:45 PM · Lunes 11/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-11 17:45:04'),
(91, NULL, 80, '✅ JUANAMA BLAS ingresó · 12:45 PM · Lunes 11/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-11 17:45:04'),
(92, NULL, 14, '✅ JUANAMA BLAS ingresó · 11:45 AM · Jueves 14/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-14 16:45:21'),
(93, NULL, 17, '✅ JUANAMA BLAS ingresó · 11:45 AM · Jueves 14/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-14 16:45:21'),
(95, NULL, 75, '✅ JUANAMA BLAS ingresó · 11:45 AM · Jueves 14/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-14 16:45:21'),
(96, NULL, 76, '✅ JUANAMA BLAS ingresó · 11:45 AM · Jueves 14/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-14 16:45:21'),
(97, NULL, 77, '✅ JUANAMA BLAS ingresó · 11:45 AM · Jueves 14/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-14 16:45:21'),
(98, NULL, 80, '✅ JUANAMA BLAS ingresó · 11:45 AM · Jueves 14/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-14 16:45:21'),
(99, NULL, 14, '✅ JUANAMA BLAS ingresó · 01:36 PM · Jueves 14/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-14 18:36:50'),
(100, NULL, 17, '✅ JUANAMA BLAS ingresó · 01:36 PM · Jueves 14/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-14 18:36:50'),
(102, NULL, 75, '✅ JUANAMA BLAS ingresó · 01:36 PM · Jueves 14/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-14 18:36:50'),
(103, NULL, 76, '✅ JUANAMA BLAS ingresó · 01:36 PM · Jueves 14/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-14 18:36:50'),
(104, NULL, 77, '✅ JUANAMA BLAS ingresó · 01:36 PM · Jueves 14/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-14 18:36:50'),
(105, NULL, 80, '✅ JUANAMA BLAS ingresó · 01:36 PM · Jueves 14/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-14 18:36:50'),
(106, NULL, 14, '✅ LUXIANA VELLAVERDE ingresó · 11:51 PM · Domingo 17/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-18 04:51:00'),
(107, NULL, 17, '✅ LUXIANA VELLAVERDE ingresó · 11:51 PM · Domingo 17/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-18 04:51:00'),
(109, NULL, 75, '✅ LUXIANA VELLAVERDE ingresó · 11:51 PM · Domingo 17/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-18 04:51:00'),
(110, NULL, 76, '✅ LUXIANA VELLAVERDE ingresó · 11:51 PM · Domingo 17/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-18 04:51:00'),
(111, NULL, 77, '✅ LUXIANA VELLAVERDE ingresó · 11:51 PM · Domingo 17/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-18 04:51:00'),
(112, NULL, 80, '✅ LUXIANA VELLAVERDE ingresó · 11:51 PM · Domingo 17/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-18 04:51:00'),
(113, NULL, 81, '✅ LUXIANA VELLAVERDE ingresó · 11:51 PM · Domingo 17/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-18 04:51:00'),
(114, NULL, 14, '✅ LUXIANA VELLAVERDE ingresó · 12:07 AM · Lunes 18/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-18 05:07:15'),
(115, NULL, 17, '✅ LUXIANA VELLAVERDE ingresó · 12:07 AM · Lunes 18/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-18 05:07:15'),
(117, NULL, 75, '✅ LUXIANA VELLAVERDE ingresó · 12:07 AM · Lunes 18/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-18 05:07:15'),
(118, NULL, 76, '✅ LUXIANA VELLAVERDE ingresó · 12:07 AM · Lunes 18/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-18 05:07:15'),
(119, NULL, 77, '✅ LUXIANA VELLAVERDE ingresó · 12:07 AM · Lunes 18/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-18 05:07:15'),
(120, NULL, 80, '✅ LUXIANA VELLAVERDE ingresó · 12:07 AM · Lunes 18/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-18 05:07:15'),
(121, NULL, 81, '✅ LUXIANA VELLAVERDE ingresó · 12:07 AM · Lunes 18/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-18 05:07:15'),
(123, NULL, 14, '✅ lucina ingresó · 01:17 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:17:08'),
(124, NULL, 17, '✅ lucina ingresó · 01:17 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:17:08'),
(126, NULL, 75, '✅ lucina ingresó · 01:17 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:17:08'),
(127, NULL, 76, '✅ lucina ingresó · 01:17 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:17:08'),
(128, NULL, 77, '✅ lucina ingresó · 01:17 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:17:08'),
(129, NULL, 80, '✅ lucina ingresó · 01:17 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:17:08'),
(130, NULL, 81, '✅ lucina ingresó · 01:17 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:17:08'),
(131, NULL, 14, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 01:17 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:17:41'),
(132, NULL, 17, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 01:17 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:17:41'),
(134, NULL, 75, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 01:17 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:17:41'),
(135, NULL, 76, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 01:17 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:17:41'),
(136, NULL, 77, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 01:17 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:17:41'),
(137, NULL, 80, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 01:17 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:17:41'),
(138, NULL, 81, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 01:17 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:17:41'),
(139, NULL, 14, '✅ maria harol ingresó · 01:25 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:25:46'),
(140, NULL, 17, '✅ maria harol ingresó · 01:25 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:25:46'),
(142, NULL, 75, '✅ maria harol ingresó · 01:25 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:25:46'),
(143, NULL, 76, '✅ maria harol ingresó · 01:25 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:25:46'),
(144, NULL, 77, '✅ maria harol ingresó · 01:25 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:25:46'),
(145, NULL, 80, '✅ maria harol ingresó · 01:25 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:25:46'),
(146, NULL, 81, '✅ maria harol ingresó · 01:25 AM · Martes 19/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-19 06:25:46'),
(148, NULL, 14, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(149, NULL, 17, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(151, NULL, 75, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(152, NULL, 76, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(153, NULL, 77, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(154, NULL, 80, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(155, NULL, 81, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(156, NULL, 84, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(157, NULL, 85, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(158, NULL, 86, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(159, NULL, 87, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(160, NULL, 88, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(161, NULL, 89, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(162, NULL, 90, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(163, NULL, 91, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(164, NULL, 92, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(165, NULL, 93, '✅ GERARDO MANUEL MENDOZA TORO ingresó · 12:56 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 17:56:32'),
(166, NULL, 14, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(167, NULL, 17, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(169, NULL, 75, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(170, NULL, 76, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(171, NULL, 77, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(172, NULL, 80, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(173, NULL, 81, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(174, NULL, 84, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(175, NULL, 85, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(176, NULL, 86, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(177, NULL, 87, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(178, NULL, 88, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(179, NULL, 89, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(180, NULL, 90, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(181, NULL, 91, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(182, NULL, 92, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(183, NULL, 93, '✅ maria ingresó · 01:02 PM · Viernes 22/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-22 18:02:25'),
(184, NULL, 14, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(185, NULL, 17, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(187, NULL, 75, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(188, NULL, 76, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(189, NULL, 77, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(190, NULL, 80, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(191, NULL, 81, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(192, NULL, 84, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(193, NULL, 85, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(194, NULL, 86, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(195, NULL, 87, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(196, NULL, 88, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(197, NULL, 89, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(198, NULL, 90, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(199, NULL, 91, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(200, NULL, 92, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(201, NULL, 93, '✅ maria ingresó · 10:25 AM · Lunes 25/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-25 15:25:51'),
(202, NULL, 14, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(203, NULL, 17, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(205, NULL, 75, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(206, NULL, 76, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(207, NULL, 77, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(208, NULL, 80, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(209, NULL, 81, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(210, NULL, 84, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(211, NULL, 85, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(212, NULL, 86, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(213, NULL, 87, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(214, NULL, 88, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(215, NULL, 89, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(216, NULL, 90, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(217, NULL, 91, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(218, NULL, 92, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(219, NULL, 93, '✅ JUANAMA BLAS ingresó · 11:51 AM · Martes 26/05/2026 | 📚 1 curso: Biblioteca | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:51:17'),
(221, NULL, 14, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(222, NULL, 17, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(224, NULL, 75, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(225, NULL, 76, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(226, NULL, 77, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(227, NULL, 80, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(228, NULL, 81, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(229, NULL, 84, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(230, NULL, 85, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(231, NULL, 86, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(232, NULL, 87, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(233, NULL, 88, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(234, NULL, 89, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(235, NULL, 90, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(236, NULL, 91, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(237, NULL, 92, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(238, NULL, 93, '✅ casandra ingresó · 11:56 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:56:59'),
(239, NULL, 14, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(240, NULL, 17, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(242, NULL, 75, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(243, NULL, 76, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(244, NULL, 77, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(245, NULL, 80, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(246, NULL, 81, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(247, NULL, 84, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(248, NULL, 85, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(249, NULL, 86, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(250, NULL, 87, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(251, NULL, 88, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(252, NULL, 89, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(253, NULL, 90, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(254, NULL, 91, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(255, NULL, 92, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(256, NULL, 93, '✅ maria harol ingresó · 11:58 AM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 16:58:53'),
(257, NULL, 14, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(258, NULL, 17, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(259, NULL, 75, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(260, NULL, 76, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(261, NULL, 77, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(262, NULL, 80, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(263, NULL, 81, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(264, NULL, 84, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(265, NULL, 85, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(266, NULL, 86, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(267, NULL, 87, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(268, NULL, 88, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(269, NULL, 89, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(270, NULL, 90, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(271, NULL, 91, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(272, NULL, 92, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(273, NULL, 93, '✅ aaa aaa ingresó · 01:46 PM · Martes 26/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-26 18:46:48'),
(274, NULL, 14, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(275, NULL, 17, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(276, NULL, 75, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(277, NULL, 76, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(278, NULL, 77, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(279, NULL, 80, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(280, NULL, 81, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(281, NULL, 84, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(282, NULL, 85, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(283, NULL, 86, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(284, NULL, 87, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(285, NULL, 88, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(286, NULL, 89, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(287, NULL, 90, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(288, NULL, 91, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(289, NULL, 92, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(290, NULL, 93, '✅ aaa aaa ingresó · 12:54 PM · Jueves 28/05/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-05-28 17:54:24'),
(291, NULL, 94, '🏆 ¡Logro desbloqueado! Has obtenido: \"Autodescubrimiento\".', 'mis_logros.php', 1, '2026-05-28 19:10:17'),
(292, NULL, 14, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(293, NULL, 17, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(294, NULL, 75, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(295, NULL, 76, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(296, NULL, 77, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(297, NULL, 80, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(298, NULL, 81, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(299, NULL, 84, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(300, NULL, 85, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(301, NULL, 86, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(302, NULL, 87, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(303, NULL, 88, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(304, NULL, 89, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(305, NULL, 90, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(306, NULL, 91, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(307, NULL, 92, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(308, NULL, 93, '✅ aaa aaa ingresó · 03:33 PM · Martes 02/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-02 20:33:29'),
(309, NULL, 14, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(310, NULL, 17, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(311, NULL, 75, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(312, NULL, 76, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(313, NULL, 77, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(314, NULL, 80, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(315, NULL, 81, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(316, NULL, 84, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(317, NULL, 85, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(318, NULL, 86, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(319, NULL, 87, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(320, NULL, 88, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(321, NULL, 89, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(322, NULL, 90, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(323, NULL, 91, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(324, NULL, 92, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(325, NULL, 93, '✅ aaa aaa ingresó · 06:16 PM · Miércoles 03/06/2026 | 📚 1 curso: Ingreso general | 🟢 Asistencia: 100% (Excelente)', 'gestion_asistencia.php', 0, '2026-06-03 23:16:11'),
(326, 81, 94, '🔔 Nuevo informe académico disponible.\nPeríodo: Diario\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=1', 0, '2026-06-04 00:01:43'),
(327, 81, 94, '🔔 Nuevo informe académico disponible.\nPeríodo: Semanal\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=2', 0, '2026-06-04 00:11:24'),
(328, 81, 94, '🔔 Nuevo informe académico disponible.\nPeríodo: Semanal\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=3', 0, '2026-06-04 00:14:49'),
(329, 81, 94, '🔔 Nuevo informe académico disponible.\nPeríodo: Semanal\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=4', 0, '2026-06-04 00:17:12'),
(330, 81, 94, '🔔 Nuevo informe académico disponible.\nPeríodo: Diario\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=5', 0, '2026-06-04 00:34:25'),
(331, 81, 94, '🔔 Nuevo informe académico disponible.\nPeríodo: Diario\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=6', 0, '2026-06-04 00:34:36'),
(332, 81, 94, '🔔 Nuevo informe académico disponible.\nPeríodo: Diario Manual\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=7', 0, '2026-06-04 00:34:54'),
(333, 81, 94, '🔔 Nuevo informe académico disponible.\nPeríodo: Diario Manual\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=8', 0, '2026-06-04 00:35:51'),
(334, 81, 94, '🔔 Nuevo informe académico disponible.\nPeríodo: Diario\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=9', 0, '2026-06-04 02:54:59'),
(335, 81, 94, '🔔 Nuevo informe académico disponible.\nPeríodo: Diario\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=10', 0, '2026-06-04 03:11:45'),
(336, 81, 94, '🔔 Nuevo informe académico disponible.\nPeríodo: Diario\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=11', 0, '2026-06-04 03:31:19'),
(337, 81, 94, '🔔 Nuevo informe académico disponible.\nPeríodo: Diario\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=12', 0, '2026-06-04 06:31:26'),
(338, 81, 94, '🔔 Nuevo informe académico disponible.\nPeríodo: Diario\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=13', 0, '2026-06-04 06:51:00'),
(339, 81, 94, 'Nuevo informe académico disponible.\nPeríodo: Diario\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=14', 0, '2026-06-04 07:03:18'),
(340, 81, 94, 'Nuevo informe académico disponible.\nPeríodo: Diario\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=15', 0, '2026-06-04 07:07:46'),
(341, 81, 94, 'Nuevo informe académico disponible.\nPeríodo: General\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=16', 0, '2026-06-04 07:08:40'),
(342, 81, 94, 'Nuevo informe académico disponible.\nPeríodo: Diario\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=17', 0, '2026-06-04 07:08:57'),
(343, 81, 94, 'Nuevo informe académico disponible.\nPeríodo: Diario\nFecha: 04/06/2026\nHaz clic para ver o descargar el PDF.', '../admin/diagnosticos.php?ajax=download_pdf&id=18', 0, '2026-06-04 07:26:22');

-- --------------------------------------------------------

--
-- Table structure for table `observaciones_docentes`
--

CREATE TABLE `observaciones_docentes` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) NOT NULL,
  `docente_id` int(11) NOT NULL,
  `colegio_id` int(11) NOT NULL,
  `descripcion` text NOT NULL,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `packs_creditos`
--

CREATE TABLE `packs_creditos` (
  `id` int(11) NOT NULL,
  `nombre` varchar(100) NOT NULL,
  `creditos` int(11) NOT NULL,
  `precio` decimal(8,2) NOT NULL,
  `bonus_pct` int(11) DEFAULT 0 COMMENT '% de bonus sobre el pack',
  `popular` tinyint(1) DEFAULT 0,
  `estado` enum('activo','inactivo') DEFAULT 'activo',
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `packs_creditos`
--

INSERT INTO `packs_creditos` (`id`, `nombre`, `creditos`, `precio`, `bonus_pct`, `popular`, `estado`, `creado_en`) VALUES
(1, 'Starter Pack', 200, 29.00, 0, 0, 'activo', '2026-05-21 02:15:43'),
(2, 'Growth Pack', 600, 79.00, 10, 1, 'activo', '2026-05-21 02:15:43'),
(3, 'Pro Pack', 1500, 179.00, 20, 0, 'activo', '2026-05-21 02:15:43'),
(4, 'Elite Pack', 5000, 499.00, 30, 0, 'activo', '2026-05-21 02:15:43');

-- --------------------------------------------------------

--
-- Table structure for table `participaciones`
--

CREATE TABLE `participaciones` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) NOT NULL,
  `colegio_id` int(11) NOT NULL,
  `docente_id` int(11) DEFAULT NULL,
  `tipo` enum('activa','pasiva','interrupcion') DEFAULT 'activa',
  `puntos` int(11) DEFAULT 0,
  `fecha` date DEFAULT (curdate()),
  `comentario` text DEFAULT NULL,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Stand-in structure for view `perfil_universidad_ia`
-- (See below for the actual view)
--
CREATE TABLE `perfil_universidad_ia` (
`id` int(11)
,`nombre` varchar(255)
,`siglas` varchar(20)
,`ciudad` varchar(100)
,`tipo_gestion` enum('pública','privada')
,`dificultad` tinyint(1)
,`nivel_matematico` tinyint(1)
,`nivel_verbal` tinyint(1)
,`nivel_logico` tinyint(1)
,`nivel_ciencias` tinyint(1)
,`nivel_historia` tinyint(1)
,`peso_matematica` tinyint(3)
,`peso_verbal` tinyint(3)
,`peso_razonamiento` tinyint(3)
,`peso_ciencias` tinyint(3)
,`peso_historia` tinyint(3)
,`total_pesos` int(8)
,`total_preguntas` tinyint(3)
,`tiempo_minutos` smallint(6)
,`tipo_examen` varchar(80)
,`penalizacion_error` tinyint(1)
,`estilo_preguntas` varchar(255)
,`cursos_prioritarios` text
,`areas_excluidas` text
,`descripcion_ia` text
,`activa` tinyint(1)
,`total_carreras` bigint(21)
);

-- --------------------------------------------------------

--
-- Table structure for table `planes`
--

CREATE TABLE `planes` (
  `id` int(11) NOT NULL,
  `nombre` varchar(100) NOT NULL COMMENT 'Nombre del plan',
  `creditos_mensuales` int(11) NOT NULL DEFAULT 0 COMMENT 'Créditos que se dan cada mes',
  `max_alumnos` int(11) DEFAULT NULL COMMENT 'NULL = ilimitado',
  `max_admins` int(11) DEFAULT NULL COMMENT 'NULL = ilimitado',
  `precio_mensual` decimal(10,2) DEFAULT 0.00 COMMENT 'Precio en USD (referencia)',
  `descripcion` text DEFAULT NULL,
  `color_badge` varchar(20) DEFAULT '#6366f1' COMMENT 'Color para UI',
  `es_popular` tinyint(1) DEFAULT 0,
  `estado` enum('activo','inactivo') DEFAULT 'activo',
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `planes`
--

INSERT INTO `planes` (`id`, `nombre`, `creditos_mensuales`, `max_alumnos`, `max_admins`, `precio_mensual`, `descripcion`, `color_badge`, `es_popular`, `estado`, `creado_en`) VALUES
(1, 'Free', 50, 30, 1, 0.00, 'Plan gratuito para explorar la plataforma', '#94a3b8', 0, 'activo', '2026-05-21 02:21:02'),
(2, 'Básico', 300, 100, 3, 19.00, 'Ideal para colegios pequeños', '#3b82f6', 0, 'activo', '2026-05-21 02:21:02'),
(3, 'Intermedio', 1000, 500, 5, 49.00, 'Para colegios medianos con uso regular de IA', '#8b5cf6', 1, 'activo', '2026-05-21 02:21:02'),
(4, 'Avanzado', 5000, NULL, NULL, 99.00, 'Sin límite de alumnos, máxima potencia IA', '#f59e0b', 0, 'activo', '2026-05-21 02:21:02');

-- --------------------------------------------------------

--
-- Table structure for table `planes_creditos`
--

CREATE TABLE `planes_creditos` (
  `id` int(11) NOT NULL,
  `nombre` varchar(100) NOT NULL,
  `slug` varchar(50) NOT NULL,
  `creditos_mensuales` int(11) NOT NULL DEFAULT 0,
  `max_alumnos` int(11) NOT NULL DEFAULT 50,
  `max_admins` int(11) NOT NULL DEFAULT 2,
  `precio_mensual` decimal(8,2) NOT NULL DEFAULT 0.00,
  `color_hex` varchar(20) DEFAULT '#6366f1',
  `icono` varchar(50) DEFAULT '?',
  `descripcion` text DEFAULT NULL,
  `estado` enum('activo','inactivo') DEFAULT 'activo',
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Planes de suscripción SaaS';

--
-- Dumping data for table `planes_creditos`
--

INSERT INTO `planes_creditos` (`id`, `nombre`, `slug`, `creditos_mensuales`, `max_alumnos`, `max_admins`, `precio_mensual`, `color_hex`, `icono`, `descripcion`, `estado`, `creado_en`) VALUES
(1, 'Free', 'free', 50, 30, 1, 0.00, '#64748b', '🆓', 'Plan gratuito para explorar el sistema', 'activo', '2026-05-21 02:15:43'),
(2, 'Básico', 'basico', 300, 100, 2, 49.00, '#10b981', '⚡', 'Para academias pequeñas en crecimiento', 'activo', '2026-05-21 02:15:43'),
(3, 'Intermedio', 'intermedio', 1000, 300, 5, 149.00, '#6366f1', '🚀', 'Para colegios con volumen medio de estudiantes', 'activo', '2026-05-21 02:15:43'),
(4, 'Avanzado', 'avanzado', 5000, 1000, 10, 399.00, '#f59e0b', '👑', 'Para grandes instituciones educativas', 'activo', '2026-05-21 02:15:43');

-- --------------------------------------------------------

--
-- Table structure for table `planes_estudio`
--

CREATE TABLE `planes_estudio` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) NOT NULL,
  `titulo` varchar(150) NOT NULL DEFAULT 'Plan de Estudio',
  `ruta` enum('PROGRESIVA','COMPETITIVA','ALTO_IMPACTO') NOT NULL,
  `fecha_inicio` date NOT NULL,
  `fecha_fin` date DEFAULT NULL,
  `objetivos` text DEFAULT NULL,
  `estado` enum('activo','completado','cancelado') DEFAULT 'activo',
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp(),
  `colegio_id` int(11) DEFAULT NULL COMMENT 'Tenant'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Planes de intensificación personalizados';

-- --------------------------------------------------------

--
-- Table structure for table `plantillas_horario`
--

CREATE TABLE `plantillas_horario` (
  `id` int(11) NOT NULL,
  `nombre` varchar(100) NOT NULL,
  `estructura_json` text NOT NULL,
  `horas_totales` int(11) DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `plantillas_horario`
--

INSERT INTO `plantillas_horario` (`id`, `nombre`, `estructura_json`, `horas_totales`) VALUES
(1, 'Horario Intensivo', '[{\"dia\":\"Lunes\",\"hora\":\"07:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Lunes\",\"hora\":\"08:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Lunes\",\"hora\":\"09:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Lunes\",\"hora\":\"10:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Lunes\",\"hora\":\"11:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Lunes\",\"hora\":\"12:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Lunes\",\"hora\":\"13:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Lunes\",\"hora\":\"14:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Lunes\",\"hora\":\"15:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Lunes\",\"hora\":\"16:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Lunes\",\"hora\":\"17:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Lunes\",\"hora\":\"18:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Martes\",\"hora\":\"07:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Martes\",\"hora\":\"08:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Martes\",\"hora\":\"09:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Martes\",\"hora\":\"10:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Martes\",\"hora\":\"11:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Martes\",\"hora\":\"12:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Martes\",\"hora\":\"13:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Martes\",\"hora\":\"14:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Martes\",\"hora\":\"15:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Martes\",\"hora\":\"16:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Martes\",\"hora\":\"17:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Martes\",\"hora\":\"18:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"07:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"08:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"09:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"10:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"11:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"12:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"13:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"14:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"15:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"16:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"17:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"18:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Jueves\",\"hora\":\"07:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Jueves\",\"hora\":\"08:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Jueves\",\"hora\":\"09:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Jueves\",\"hora\":\"10:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Jueves\",\"hora\":\"11:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Jueves\",\"hora\":\"12:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Jueves\",\"hora\":\"13:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Jueves\",\"hora\":\"14:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Jueves\",\"hora\":\"15:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Jueves\",\"hora\":\"16:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Jueves\",\"hora\":\"17:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Jueves\",\"hora\":\"18:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Viernes\",\"hora\":\"07:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Viernes\",\"hora\":\"08:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Viernes\",\"hora\":\"09:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Viernes\",\"hora\":\"10:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Viernes\",\"hora\":\"11:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Viernes\",\"hora\":\"12:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Viernes\",\"hora\":\"13:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Viernes\",\"hora\":\"14:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Viernes\",\"hora\":\"15:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Viernes\",\"hora\":\"16:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"Viernes\",\"hora\":\"17:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Viernes\",\"hora\":\"18:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"07:00\",\"tipo\":\"Estudio\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"08:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"09:00\",\"tipo\":\"Estudio\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"10:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"11:00\",\"tipo\":\"Estudio\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"12:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"13:00\",\"tipo\":\"Estudio\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"14:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"15:00\",\"tipo\":\"Estudio\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"16:00\",\"tipo\":\"Pr\\u00e1ctica\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"17:00\",\"tipo\":\"Estudio\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"18:00\",\"tipo\":\"Pr\\u00e1ctica\"}]', 72),
(2, 'Horario Balanceado', '[{\"dia\":\"Lunes\",\"hora\":\"07:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Lunes\",\"hora\":\"08:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Lunes\",\"hora\":\"09:00\",\"tipo\":\"Video\"},{\"dia\":\"Lunes\",\"hora\":\"10:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Lunes\",\"hora\":\"11:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Lunes\",\"hora\":\"12:00\",\"tipo\":\"Video\"},{\"dia\":\"Lunes\",\"hora\":\"13:00\",\"tipo\":\"Descanso\"},{\"dia\":\"Lunes\",\"hora\":\"14:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Martes\",\"hora\":\"07:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Martes\",\"hora\":\"08:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Martes\",\"hora\":\"09:00\",\"tipo\":\"Video\"},{\"dia\":\"Martes\",\"hora\":\"10:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Martes\",\"hora\":\"11:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Martes\",\"hora\":\"12:00\",\"tipo\":\"Video\"},{\"dia\":\"Martes\",\"hora\":\"13:00\",\"tipo\":\"Descanso\"},{\"dia\":\"Martes\",\"hora\":\"14:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"07:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"08:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"09:00\",\"tipo\":\"Video\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"10:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"11:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"12:00\",\"tipo\":\"Video\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"13:00\",\"tipo\":\"Descanso\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"14:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Jueves\",\"hora\":\"07:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Jueves\",\"hora\":\"08:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Jueves\",\"hora\":\"09:00\",\"tipo\":\"Video\"},{\"dia\":\"Jueves\",\"hora\":\"10:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Jueves\",\"hora\":\"11:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Jueves\",\"hora\":\"12:00\",\"tipo\":\"Video\"},{\"dia\":\"Jueves\",\"hora\":\"13:00\",\"tipo\":\"Descanso\"},{\"dia\":\"Jueves\",\"hora\":\"14:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Viernes\",\"hora\":\"07:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Viernes\",\"hora\":\"08:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Viernes\",\"hora\":\"09:00\",\"tipo\":\"Video\"},{\"dia\":\"Viernes\",\"hora\":\"10:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Viernes\",\"hora\":\"11:00\",\"tipo\":\"Estudio\"},{\"dia\":\"Viernes\",\"hora\":\"12:00\",\"tipo\":\"Video\"},{\"dia\":\"Viernes\",\"hora\":\"13:00\",\"tipo\":\"Descanso\"},{\"dia\":\"Viernes\",\"hora\":\"14:00\",\"tipo\":\"Estudio\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"07:00\",\"tipo\":\"Estudio\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"08:00\",\"tipo\":\"Estudio\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"09:00\",\"tipo\":\"Video\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"10:00\",\"tipo\":\"Estudio\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"11:00\",\"tipo\":\"Estudio\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"12:00\",\"tipo\":\"Video\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"13:00\",\"tipo\":\"Descanso\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"14:00\",\"tipo\":\"Estudio\"}]', 48),
(3, 'Horario Ligero', '[{\"dia\":\"Lunes\",\"hora\":\"07:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Lunes\",\"hora\":\"08:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Lunes\",\"hora\":\"09:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Lunes\",\"hora\":\"10:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Lunes\",\"hora\":\"11:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Martes\",\"hora\":\"07:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Martes\",\"hora\":\"08:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Martes\",\"hora\":\"09:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Martes\",\"hora\":\"10:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Martes\",\"hora\":\"11:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"07:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"08:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"09:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"10:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"11:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Jueves\",\"hora\":\"07:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Jueves\",\"hora\":\"08:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Jueves\",\"hora\":\"09:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Jueves\",\"hora\":\"10:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Jueves\",\"hora\":\"11:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Viernes\",\"hora\":\"07:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Viernes\",\"hora\":\"08:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Viernes\",\"hora\":\"09:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Viernes\",\"hora\":\"10:00\",\"tipo\":\"Repaso\"},{\"dia\":\"Viernes\",\"hora\":\"11:00\",\"tipo\":\"Repaso\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"07:00\",\"tipo\":\"Repaso\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"08:00\",\"tipo\":\"Repaso\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"09:00\",\"tipo\":\"Repaso\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"10:00\",\"tipo\":\"Repaso\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"11:00\",\"tipo\":\"Repaso\"}]', 30),
(4, 'Horario Exámenes', '[{\"dia\":\"Lunes\",\"hora\":\"07:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Lunes\",\"hora\":\"08:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Lunes\",\"hora\":\"09:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Lunes\",\"hora\":\"10:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Lunes\",\"hora\":\"11:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Lunes\",\"hora\":\"12:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Lunes\",\"hora\":\"13:00\",\"tipo\":\"Descanso\"},{\"dia\":\"Lunes\",\"hora\":\"14:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Lunes\",\"hora\":\"15:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Lunes\",\"hora\":\"16:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Lunes\",\"hora\":\"17:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Lunes\",\"hora\":\"18:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Martes\",\"hora\":\"07:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Martes\",\"hora\":\"08:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Martes\",\"hora\":\"09:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Martes\",\"hora\":\"10:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Martes\",\"hora\":\"11:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Martes\",\"hora\":\"12:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Martes\",\"hora\":\"13:00\",\"tipo\":\"Descanso\"},{\"dia\":\"Martes\",\"hora\":\"14:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Martes\",\"hora\":\"15:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Martes\",\"hora\":\"16:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Martes\",\"hora\":\"17:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Martes\",\"hora\":\"18:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"07:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"08:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"09:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"10:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"11:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"12:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"13:00\",\"tipo\":\"Descanso\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"14:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"15:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"16:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"17:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"18:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Jueves\",\"hora\":\"07:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Jueves\",\"hora\":\"08:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Jueves\",\"hora\":\"09:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Jueves\",\"hora\":\"10:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Jueves\",\"hora\":\"11:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Jueves\",\"hora\":\"12:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Jueves\",\"hora\":\"13:00\",\"tipo\":\"Descanso\"},{\"dia\":\"Jueves\",\"hora\":\"14:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Jueves\",\"hora\":\"15:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Jueves\",\"hora\":\"16:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Jueves\",\"hora\":\"17:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Jueves\",\"hora\":\"18:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Viernes\",\"hora\":\"07:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Viernes\",\"hora\":\"08:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Viernes\",\"hora\":\"09:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Viernes\",\"hora\":\"10:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Viernes\",\"hora\":\"11:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Viernes\",\"hora\":\"12:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Viernes\",\"hora\":\"13:00\",\"tipo\":\"Descanso\"},{\"dia\":\"Viernes\",\"hora\":\"14:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Viernes\",\"hora\":\"15:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Viernes\",\"hora\":\"16:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Viernes\",\"hora\":\"17:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Viernes\",\"hora\":\"18:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"07:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"08:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"09:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"10:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"11:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"12:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"13:00\",\"tipo\":\"Descanso\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"14:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"15:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"16:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"17:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"18:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Domingo\",\"hora\":\"07:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Domingo\",\"hora\":\"08:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Domingo\",\"hora\":\"09:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Domingo\",\"hora\":\"10:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Domingo\",\"hora\":\"11:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Domingo\",\"hora\":\"12:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Domingo\",\"hora\":\"13:00\",\"tipo\":\"Descanso\"},{\"dia\":\"Domingo\",\"hora\":\"14:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Domingo\",\"hora\":\"15:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Domingo\",\"hora\":\"16:00\",\"tipo\":\"Simulacro\"},{\"dia\":\"Domingo\",\"hora\":\"17:00\",\"tipo\":\"Tutor\\u00eda\"},{\"dia\":\"Domingo\",\"hora\":\"18:00\",\"tipo\":\"Tutor\\u00eda\"}]', 84),
(5, 'Horario Productivo', '[{\"dia\":\"Lunes\",\"hora\":\"15:00\",\"tipo\":\"Biblioteca\"},{\"dia\":\"Lunes\",\"hora\":\"16:00\",\"tipo\":\"Tareas\"},{\"dia\":\"Lunes\",\"hora\":\"17:00\",\"tipo\":\"Biblioteca\"},{\"dia\":\"Lunes\",\"hora\":\"18:00\",\"tipo\":\"Tareas\"},{\"dia\":\"Martes\",\"hora\":\"15:00\",\"tipo\":\"Biblioteca\"},{\"dia\":\"Martes\",\"hora\":\"16:00\",\"tipo\":\"Tareas\"},{\"dia\":\"Martes\",\"hora\":\"17:00\",\"tipo\":\"Biblioteca\"},{\"dia\":\"Martes\",\"hora\":\"18:00\",\"tipo\":\"Tareas\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"15:00\",\"tipo\":\"Biblioteca\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"16:00\",\"tipo\":\"Tareas\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"17:00\",\"tipo\":\"Biblioteca\"},{\"dia\":\"Mi\\u00e9rcoles\",\"hora\":\"18:00\",\"tipo\":\"Tareas\"},{\"dia\":\"Jueves\",\"hora\":\"15:00\",\"tipo\":\"Biblioteca\"},{\"dia\":\"Jueves\",\"hora\":\"16:00\",\"tipo\":\"Tareas\"},{\"dia\":\"Jueves\",\"hora\":\"17:00\",\"tipo\":\"Biblioteca\"},{\"dia\":\"Jueves\",\"hora\":\"18:00\",\"tipo\":\"Tareas\"},{\"dia\":\"Viernes\",\"hora\":\"15:00\",\"tipo\":\"Biblioteca\"},{\"dia\":\"Viernes\",\"hora\":\"16:00\",\"tipo\":\"Tareas\"},{\"dia\":\"Viernes\",\"hora\":\"17:00\",\"tipo\":\"Biblioteca\"},{\"dia\":\"Viernes\",\"hora\":\"18:00\",\"tipo\":\"Tareas\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"15:00\",\"tipo\":\"Biblioteca\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"16:00\",\"tipo\":\"Tareas\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"17:00\",\"tipo\":\"Biblioteca\"},{\"dia\":\"S\\u00e1bado\",\"hora\":\"18:00\",\"tipo\":\"Tareas\"}]', 24);

-- --------------------------------------------------------

--
-- Table structure for table `plan_tareas`
--

CREATE TABLE `plan_tareas` (
  `id` int(11) NOT NULL,
  `plan_id` int(11) NOT NULL,
  `descripcion` text NOT NULL,
  `fecha_limite` date DEFAULT NULL,
  `estado` enum('pendiente','en_progreso','completada') DEFAULT 'pendiente',
  `prioridad` enum('baja','media','alta') NOT NULL DEFAULT 'media',
  `completada_en` timestamp NULL DEFAULT NULL,
  `creado_en` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `predicciones_ingreso`
--

CREATE TABLE `predicciones_ingreso` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) NOT NULL,
  `colegio_id` int(11) DEFAULT NULL COMMENT 'Tenant',
  `carrera` varchar(100) NOT NULL,
  `universidad` varchar(150) NOT NULL,
  `probabilidad_ingreso` decimal(5,2) NOT NULL,
  `brecha` decimal(8,2) NOT NULL,
  `fecha` datetime DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `predicciones_ingreso`
--

INSERT INTO `predicciones_ingreso` (`id`, `alumno_id`, `colegio_id`, `carrera`, `universidad`, `probabilidad_ingreso`, `brecha`, `fecha`) VALUES
(187, 52, NULL, 'Psicología', 'Universidad Peruana Cayetano Heredia (UPCH)', 26.00, 154.00, '2026-05-18 00:38:35'),
(188, 52, NULL, 'Enfermería', 'Universidad Peruana Cayetano Heredia (UPCH)', 31.00, 124.00, '2026-05-18 00:38:35'),
(189, 52, NULL, 'Medicina', 'Universidad Nacional Mayor de San Marcos (UNMSM)', 14.00, 264.00, '2026-05-18 00:38:35'),
(190, 52, NULL, 'Comunicaciones', 'Pontificia Universidad Católica del Perú (PUCP)', 27.00, 144.00, '2026-05-18 00:38:35'),
(191, 52, NULL, 'Contabilidad', 'Universidad del Pacífico', 27.00, 144.00, '2026-05-18 00:38:35'),
(192, 52, NULL, 'Marketing', 'Universidad del Pacífico', 24.00, 164.00, '2026-05-18 00:38:35'),
(199, 54, NULL, 'Derecho', 'Pontificia Universidad Católica del Perú (PUCP)', 29.00, 162.00, '2026-05-28 12:57:32'),
(200, 54, NULL, 'Comunicaciones', 'Pontificia Universidad Católica del Perú (PUCP)', 38.00, 102.00, '2026-05-28 12:57:32'),
(201, 54, NULL, 'Psicología', 'Universidad Peruana Cayetano Heredia (UPCH)', 36.00, 112.00, '2026-05-28 12:57:32'),
(202, 54, NULL, 'Medicina', 'Universidad Nacional Mayor de San Marcos (UNMSM)', 21.00, 222.00, '2026-05-28 12:57:32'),
(203, 54, NULL, 'Enfermería', 'Universidad Peruana Cayetano Heredia (UPCH)', 41.00, 82.00, '2026-05-28 12:57:32'),
(204, 54, NULL, 'Ingeniería Industrial', 'Universidad de Lima', 31.00, 142.00, '2026-05-28 12:57:32');

-- --------------------------------------------------------

--
-- Table structure for table `preguntas`
--

CREATE TABLE `preguntas` (
  `id` int(11) NOT NULL,
  `colegio_id` int(11) DEFAULT NULL,
  `pregunta` text NOT NULL,
  `tipo` enum('single','multiple','text') DEFAULT 'single',
  `opciones` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`opciones`)),
  `respuesta_correcta` text DEFAULT NULL,
  `area_id` int(11) DEFAULT NULL COMMENT 'FK a areas_academicas para preguntas de conocimiento',
  `dimension_vocacional` varchar(100) DEFAULT NULL COMMENT 'Para tests psicométricos (Ej: RIASEC_I, COG_MEMORIA_OP)',
  `carrera_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `preguntas`
--

INSERT INTO `preguntas` (`id`, `colegio_id`, `pregunta`, `tipo`, `opciones`, `respuesta_correcta`, `area_id`, `dimension_vocacional`, `carrera_id`) VALUES
(4, NULL, 'Un dentista necesita preparar una solución de fluoruro para tratar a sus pacientes. La solución debe contener 0,5 gramos de fluoruro por litro de solución. Si el dentista necesita preparar 20 litros de solución, ¿cuántos gramos de fluoruro necesitará en total?', 'single', '[\"A) 5 gramos\",\"B) 10 gramos\",\"C) 15 gramos\",\"D) 20 gramos\",\"E) 25 gramos\"]', 'B) 10 gramos', 10, NULL, NULL),
(5, NULL, 'Un paciente tiene una temperatura corporal de 38,5°C. Si la temperatura normal es de 36,5°C, ¿cuántos grados por encima de la normal tiene el paciente?', 'single', '[\"A) 1,5°C\",\"B) 2°C\",\"C) 2,5°C\",\"D) 3°C\",\"E) 3,5°C\"]', 'B) 2°C', 10, NULL, NULL),
(6, NULL, 'Un odontólogo necesita calcular el área de una cavidad dental en forma de triángulo. La base del triángulo mide 5 mm y la altura mide 8 mm. ¿Cuál es el área del triángulo?', 'single', '[\"A) 10 mm²\",\"B) 15 mm²\",\"C) 20 mm²\",\"D) 25 mm²\",\"E) 30 mm²\"]', 'C) 20 mm²', 10, NULL, NULL),
(7, NULL, 'Un paciente tiene un peso de 70 kg y una altura de 1,70 m. ¿Cuál es su índice de masa corporal (IMC)?', 'single', '[\"A) 20\",\"B) 22\",\"C) 24\",\"D) 26\",\"E) 28\"]', 'C) 24', 10, NULL, NULL),
(8, NULL, 'Un dentista necesita ordenar suministros para su clínica. Un paquete de instrumental dental cuesta $50 y un paquete de materiales de restauración cuesta $30. Si el dentista necesita ordenar 5 paquetes de instrumental dental y 10 paquetes de materiales de restauración, ¿cuánto costará el pedido en total?', 'single', '[\"A) $400\",\"B) $500\",\"C) $550\",\"D) $600\",\"E) $650\"]', 'C) $550', 10, NULL, NULL),
(9, NULL, 'Un paciente tiene una presión arterial sistólica de 120 mmHg y una presión arterial diastólica de 80 mmHg. ¿Cuál es su presión arterial media?', 'single', '[\"A) 90 mmHg\",\"B) 100 mmHg\",\"C) 110 mmHg\",\"D) 120 mmHg\",\"E) 130 mmHg\"]', 'B) 100 mmHg', 10, NULL, NULL),
(10, NULL, 'Un odontólogo necesita calcular la dosis de anestesia necesaria para un paciente. La dosis recomendada es de 1,5 ml por 10 kg de peso corporal. Si el paciente pesa 60 kg, ¿cuántos ml de anestesia se necesitan?', 'single', '[\"A) 6 ml\",\"B) 8 ml\",\"C) 9 ml\",\"D) 10 ml\",\"E) 12 ml\"]', 'C) 9 ml', 10, NULL, NULL),
(11, NULL, 'Un dentista necesita calcular el volumen de una cavidad dental en forma de cilindro. La altura del cilindro es de 10 mm y el diámetro es de 5 mm. ¿Cuál es el volumen del cilindro?', 'single', '[\"A) 100 mm³\",\"B) 150 mm³\",\"C) 200 mm³\",\"D) 250 mm³\",\"E) 300 mm³\"]', 'C) 200 mm³', 10, NULL, NULL),
(12, NULL, 'Un paciente tiene un nivel de azúcar en sangre de 120 mg/dl. Si el nivel normal es de 90 mg/dl, ¿cuánto por encima del nivel normal está el paciente?', 'single', '[\"A) 10%\",\"B) 20%\",\"C) 30%\",\"D) 40%\",\"E) 50%\"]', 'C) 30%', 10, NULL, NULL),
(13, NULL, 'Un odontólogo necesita calcular la probabilidad de que un paciente desarrolle caries dentales. La probabilidad es de 0,2 para un paciente con buen hábito de higiene y de 0,5 para un paciente con mal hábito de higiene. Si el paciente tiene un hábito de higiene regular, ¿cuál es la probabilidad de que desarrolle caries dentales?', 'single', '[\"A) 0,1\",\"B) 0,2\",\"C) 0,3\",\"D) 0,4\",\"E) 0,5\"]', 'C) 0,3', 10, NULL, NULL),
(14, NULL, 'Un tanque de agua tiene una forma de cilindro recto con una altura de 10 metros y un radio de 4 metros. Si el agua se está vertiendo en el tanque a una tasa de 0,5 metros cúbicos por minuto, ¿cuánto tiempo tomará llenar el tanque?', 'single', '[\"A) 125,6 minutos\",\"B) 100,5 minutos\",\"C) 150,8 minutos\",\"D) 80,2 minutos\",\"E) 200,1 minutos\"]', 'A) 125,6 minutos', 10, NULL, NULL),
(15, NULL, 'Una empresa de ingeniería ambiental está diseñando un sistema de tratamiento de agua para una comunidad. El sistema necesita tratar 2500 litros de agua por hora. Si el sistema tiene una eficiencia del 80% y el costo de operación es de $0,05 por litro tratado, ¿cuál es el costo total de operación del sistema por día?', 'single', '[\"A) $300\",\"B) $250\",\"C) $200\",\"D) $150\",\"E) $400\"]', 'A) $300', 10, NULL, NULL),
(16, NULL, 'Un río tiene una pendiente de 0,05 metros por metro y una anchura de 50 metros. Si el caudal del río es de 100 metros cúbicos por segundo, ¿cuál es la profundidad del río?', 'single', '[\"A) 2,5 metros\",\"B) 3,5 metros\",\"C) 4,5 metros\",\"D) 5,5 metros\",\"E) 6,5 metros\"]', 'B) 3,5 metros', 10, NULL, NULL),
(17, NULL, 'Un modelo de crecimiento de una población de peces en un lago está dado por la ecuación P(t) = 2000e^(0,02t), donde P(t) es la población en el tiempo t. Si la población inicial es de 1000 peces, ¿cuánto tiempo tomará que la población alcance 5000 peces?', 'single', '[\"A) 100 días\",\"B) 150 días\",\"C) 200 días\",\"D) 250 días\",\"E) 300 días\"]', 'C) 200 días', 10, NULL, NULL),
(18, NULL, 'Una secuencia de números comienza con 1, 2, 4, 7, 11, ¿cuál es el siguiente número en la secuencia?', 'single', '[\"A) 14\",\"B) 15\",\"C) 16\",\"D) 17\",\"E) 18\"]', 'C) 16', 12, NULL, NULL),
(19, NULL, 'Un lago tiene 5 tipos de peces: trucha, salmón, bagre, carpa y lubina. Si se sabe que el salmón es más grande que la trucha, la lubina es más pequeña que el bagre, la carpa es más grande que la lubina y el bagre es más grande que la trucha, ¿cuál es el orden de tamaño de los peces desde el más grande hasta el más pequeño?', 'single', '[\"A) Salmón, carpa, bagre, trucha, lubina\",\"B) Salmón, bagre, carpa, trucha, lubina\",\"C) Salmón, carpa, bagre, lubina, trucha\",\"D) Bagre, salmón, carpa, trucha, lubina\",\"E) Carpa, salmón, bagre, trucha, lubina\"]', 'B) Salmón, bagre, carpa, trucha, lubina', 12, NULL, NULL),
(20, NULL, 'Una matriz de 3x3 tiene los siguientes números: 1, 2, 3 en la primera fila; 4, 5, 6 en la segunda fila; y 7, 8, 9 en la tercera fila. Si se suma el número de la primera fila con el número de la tercera fila, ¿cuál es el resultado de la suma de los números de la diagonal principal?', 'single', '[\"A) 15\",\"B) 20\",\"C) 25\",\"D) 30\",\"E) 35\"]', 'B) 15 + 5 + 9 = 29, pero la respuesta correcta según las opciones es A) 15 no es correcta, la respuesta correcta es 15 es incorrecta, la respuesta correcta es 1+5+9=15', 12, NULL, NULL),
(21, NULL, 'Un grupo de amigos quiere dividir una cuenta de restaurante de manera justa. La cuenta total es de 120 soles y hay 8 amigos. Sin embargo, 2 de los amigos solo comieron un plato que cuesta 10 soles cada uno, mientras que los otros 6 amigos comieron un plato que cuesta 20 soles cada uno. ¿Cuánto debe pagar cada uno de los 2 amigos que comieron el plato más barato?', 'single', '[\"A) 10 soles\",\"B) 12 soles\",\"C) 15 soles\",\"D) 18 soles\",\"E) 20 soles\"]', 'A) 10 soles', 12, NULL, NULL),
(22, NULL, 'Un ecosistema lacustre tiene una productividad primaria neta de 200 g/m²/año. Si la eficiencia de transferencia de energía entre niveles tróficos es del 10%, ¿cuánta energía se transfiere a los consumidores primarios en g/m²/año?', 'single', '[\"A) 20 g\\/m²\\/año\",\"B) 2000 g\\/m²\\/año\",\"C) 200 g\\/m²\\/año\",\"D) 400 g\\/m²\\/año\",\"E) 100 g\\/m²\\/año\"]', 'A) 20 g/m²/año', 13, NULL, NULL),
(23, NULL, 'Un reactor químico tiene una constante de velocidad de reacción de 0,05 min^-1. Si la concentración inicial de reactantes es de 2 mol/L, ¿cuál es la concentración de reactantes después de 10 minutos?', 'single', '[\"A) 0,1 mol\\/L\",\"B) 1,8 mol\\/L\",\"C) 0,5 mol\\/L\",\"D) 1,1 mol\\/L\",\"E) 1,5 mol\\/L\"]', 'B) 1,8 mol/L', 13, NULL, NULL),
(24, NULL, 'Un objeto de 5 kg se mueve con una velocidad de 2 m/s. Si se aplica una fuerza de 10 N durante 3 s, ¿cuál es la velocidad final del objeto?', 'single', '[\"A) 4 m\\/s\",\"B) 6 m\\/s\",\"C) 8 m\\/s\",\"D) 10 m\\/s\",\"E) 2 m\\/s\"]', 'A) 4 m/s', 13, NULL, NULL),
(25, NULL, 'Un átomo de hidrógeno tiene un electrón en el nivel de energía 1. Si se absorbe una energía de 10,2 eV, ¿a qué nivel de energía se mueve el electrón?', 'single', '[\"A) Nivel 2\",\"B) Nivel 3\",\"C) Nivel 4\",\"D) Nivel 5\",\"E) Nivel 1\"]', 'B) Nivel 3', 13, NULL, NULL),
(26, NULL, 'Un ecosistema forestal tiene una biomasa de 1000 kg/ha. Si la tasa de crecimiento de la biomasa es de 50 kg/ha/año, ¿cuál es la biomasa después de 10 años?', 'single', '[\"A) 1500 kg\\/ha\",\"B) 2000 kg\\/ha\",\"C) 1000 kg\\/ha\",\"D) 1200 kg\\/ha\",\"E) 800 kg\\/ha\"]', 'A) 1500 kg/ha', 13, NULL, NULL),
(27, NULL, 'La expansión del Imperio Incaico durante el siglo XV se debió en gran medida a la estrategia militar y política de:', 'single', '[\"A) Pachacuti\",\"B) Atahualpa\",\"C) Huayna Capac\",\"D) Tupac Amaru\",\"E) Francisco Pizarro\"]', 'A) Pachacuti', 6, NULL, NULL),
(28, NULL, 'El Tratado de Ancón, firmado en 1883, marcó el final de la Guerra del Pacífico y estableció las condiciones para la cesión de territorios peruanos a:', 'single', '[\"A) Chile\",\"B) Bolivia\",\"C) Ecuador\",\"D) Colombia\",\"E) Brasil\"]', 'A) Chile', 6, NULL, NULL),
(29, NULL, 'La Revolución Francesa de 1789, que sentó las bases para la moderna democracia liberal, se caracterizó por la adopción de la Declaración de los Derechos del Hombre y del Ciudadano, influenciada por las ideas de:', 'single', '[\"A) Jean-Jacques Rousseau\",\"B) John Locke\",\"C) Immanuel Kant\",\"D) Voltaire\",\"E) Montesquieu\"]', 'A) Jean-Jacques Rousseau', 6, NULL, NULL),
(30, NULL, 'La conquista española del Imperio Incaico en el siglo XVI se facilitó por la presencia de enfermedades europeas, como la viruela, que diezmaron a la población indígena. Esta introducción de enfermedades se conoce como:', 'single', '[\"A) Colonización\",\"B) Imperialismo\",\"C) Intercambio colombino\",\"D) Sincretismo cultural\",\"E) Genocidio\"]', 'C) Intercambio colombino', 6, NULL, NULL),
(31, NULL, 'Un triángulo rectángulo tiene una hipotenusa de 10 cm y un cateto de 6 cm. ¿Cuál es la longitud del otro cateto?', 'single', '[\"A) 8 cm\",\"B) 6 cm\",\"C) 4 cm\",\"D) 12 cm\",\"E) 16 cm\"]', 'A) 8 cm', 10, NULL, NULL),
(32, NULL, 'Una función lineal tiene una pendiente de 2 y pasa por el punto (1,3). ¿Cuál es la ecuación de la recta en forma de pendiente-intersección?', 'single', '[\"A) y = 2x + 1\",\"B) y = 2x - 1\",\"C) y = 2x + 3\",\"D) y = 2x - 3\",\"E) y = x + 2\"]', 'A) y = 2x + 1', 10, NULL, NULL),
(33, NULL, 'Un cilindro tiene una altura de 15 cm y un radio de 4 cm. ¿Cuál es el volumen del cilindro?', 'single', '[\"A) 800 π cm³\",\"B) 600 π cm³\",\"C) 400 π cm³\",\"D) 300 π cm³\",\"E) 200 π cm³\"]', 'C) 800 π cm³', 10, NULL, NULL),
(34, NULL, 'Un conjunto de datos tiene una media de 12 y una desviación estándar de 2. ¿Cuál es la probabilidad de que un valor aleatorio del conjunto sea mayor que 16?', 'single', '[\"A) 0,05\",\"B) 0,1\",\"C) 0,15\",\"D) 0,2\",\"E) 0,25\"]', 'B) 0,1', 10, NULL, NULL),
(35, NULL, 'Un sistema de ecuaciones lineales tiene las siguientes ecuaciones: 2x + 3y = 7 y x - 2y = -3. ¿Cuál es el valor de x?', 'single', '[\"A) 1\",\"B) 2\",\"C) 3\",\"D) 4\",\"E) 5\"]', 'A) 1', 10, NULL, NULL),
(36, NULL, 'Un cono tiene una altura de 20 cm y un radio de 5 cm. ¿Cuál es el volumen del cono?', 'single', '[\"A) 500 π cm³\",\"B) 400 π cm³\",\"C) 300 π cm³\",\"D) 200 π cm³\",\"E) 100 π cm³\"]', 'C) 500/3 π cm³', 10, NULL, NULL),
(37, NULL, 'Una función cuadrática tiene la forma f(x) = ax² + bx + c, donde a = 2, b = -3 y c = 1. ¿Cuál es el valor de x para el cual f(x) = 0?', 'single', '[\"A) 1\",\"B) 2\",\"C) 3\",\"D) 4\",\"E) 5\"]', 'B) 1 y 1/2', 10, NULL, NULL),
(38, NULL, 'Un rectángulo tiene una longitud de 8 cm y un ancho de 5 cm. ¿Cuál es el perímetro del rectángulo?', 'single', '[\"A) 18 cm\",\"B) 20 cm\",\"C) 22 cm\",\"D) 24 cm\",\"E) 26 cm\"]', 'B) 26 cm', 10, NULL, NULL),
(39, NULL, 'Un triángulo isósceles tiene dos lados iguales de 10 cm cada uno y un ángulo de 60° entre ellos. ¿Cuál es la longitud del lado restante?', 'single', '[\"A) 5 cm\",\"B) 10 cm\",\"C) 15 cm\",\"D) 20 cm\",\"E) 25 cm\"]', 'B) 10 cm', 10, NULL, NULL),
(40, NULL, 'Un conjunto de datos tiene una mediana de 15 y una moda de 12. ¿Cuál es la media del conjunto de datos si la desviación estándar es 3?', 'single', '[\"A) 12\",\"B) 13\",\"C) 14\",\"D) 15\",\"E) 16\"]', 'D) 15', 10, NULL, NULL),
(41, NULL, 'Una esfera tiene un radio de 6 cm. ¿Cuál es el volumen de la esfera?', 'single', '[\"A) 288 π cm³\",\"B) 288\\/3 π cm³\",\"C) 216 π cm³\",\"D) 200 π cm³\",\"E) 150 π cm³\"]', 'A) 288 π cm³', 10, NULL, NULL),
(42, NULL, 'Una secuencia numérica está definida por la relación de recurrencia: a_n = 2a_(n-1) + 3, donde a_1 = 5. ¿Cuál es el valor de a_5?', 'single', '[\"A) 47\",\"B) 59\",\"C) 71\",\"D) 83\",\"E) 95\"]', 'C) 71', 12, NULL, NULL),
(43, NULL, 'Un conjunto de 5 elementos está ordenado en una secuencia circular. Si el elemento A está al lado del elemento B, y el elemento C está al lado del elemento D, ¿cuál es la probabilidad de que el elemento E esté al lado del elemento A?', 'single', '[\"A) 1\\/5\",\"B) 1\\/4\",\"C) 1\\/3\",\"D) 2\\/5\",\"E) 1\\/2\"]', 'B) 1/4', 12, NULL, NULL),
(44, NULL, 'Una matriz de 4x4 contiene los números 1 al 16, dispuestos de tal manera que cada fila y cada columna suman 34. ¿Cuál es el valor de la celda en la intersección de la segunda fila y la tercera columna?', 'single', '[\"A) 7\",\"B) 8\",\"C) 9\",\"D) 10\",\"E) 11\"]', 'C) 9', 12, NULL, NULL),
(45, NULL, 'Un problema de lógica establece que: \'Si A es verdadero, entonces B es falso. Si B es verdadero, entonces C es falso. Si C es verdadero, entonces A es falso.\' ¿Cuál es la condición necesaria y suficiente para que A, B y C sean verdaderos?', 'single', '[\"A) A y B son falsos\",\"B) B y C son falsos\",\"C) A y C son falsos\",\"D) A, B y C son falsos\",\"E) No hay condición posible\"]', 'E) No hay condición posible', 12, NULL, NULL),
(46, NULL, 'Una serie numérica está definida por la suma de los términos de una secuencia geométrica: 2 + 6 + 18 + ... + 2*3^(n-1). ¿Cuál es el valor de la suma de los primeros 6 términos?', 'single', '[\"A) 728\",\"B) 730\",\"C) 732\",\"D) 734\",\"E) 736\"]', 'B) 730', 12, NULL, NULL),
(47, NULL, 'Un conjunto de 10 elementos está dividido en 2 subconjuntos de 5 elementos cada uno. ¿Cuál es el número de formas posibles de asignar los elementos a los subconjuntos?', 'single', '[\"A) 10!\",\"B) 10!\\/2!\",\"C) 10!\\/5!5!\",\"D) 10!\\/2!8!\",\"E) 2^10\"]', 'C) 10!/5!5!', 12, NULL, NULL),
(48, NULL, 'Un problema de secuencias establece que: \'La secuencia a_n = 3n + 2 tiene un término que es múltiplo de 7.\' ¿Cuál es el valor de n para ese término?', 'single', '[\"A) 3\",\"B) 5\",\"C) 7\",\"D) 9\",\"E) 11\"]', 'B) 5', 12, NULL, NULL),
(49, NULL, 'Una matriz de 3x3 contiene los números 1 al 9, dispuestos de tal manera que cada fila y cada columna suman 15. ¿Cuál es el valor de la celda en la intersección de la primera fila y la segunda columna?', 'single', '[\"A) 4\",\"B) 5\",\"C) 6\",\"D) 7\",\"E) 8\"]', 'B) 5', 12, NULL, NULL),
(50, NULL, 'Un problema de lógica establece que: \'Si A es verdadero, entonces B o C son verdaderos. Si B es verdadero, entonces A o D son verdaderos.\' ¿Cuál es la condición necesaria y suficiente para que A y B sean verdaderos?', 'single', '[\"A) A y C son verdaderos\",\"B) B y D son verdaderos\",\"C) A y D son verdaderos\",\"D) A, B y C son verdaderos\",\"E) No hay condición posible\"]', 'C) A y D son verdaderos', 12, NULL, NULL),
(51, NULL, 'Una serie numérica está definida por la resta de los términos de una secuencia aritmética: 10 - 7 + 4 - 1 + ... + (-3)(n-1). ¿Cuál es el valor de la suma de los primeros 5 términos?', 'single', '[\"A) -15\",\"B) -13\",\"C) -11\",\"D) -9\",\"E) -7\"]', 'C) -11', 12, NULL, NULL),
(52, NULL, 'Un conjunto de 8 elementos está ordenado en una secuencia circular. Si el elemento A está al lado del elemento B, y el elemento C está al lado del elemento D, ¿cuál es la probabilidad de que el elemento E esté al lado del elemento C?', 'single', '[\"A) 1\\/8\",\"B) 1\\/7\",\"C) 1\\/6\",\"D) 1\\/5\",\"E) 1\\/4\"]', 'C) 1/6', 12, NULL, NULL),
(53, NULL, 'Un objeto de 2 kg se mueve con una velocidad de 3 m/s. Si se aplica una fuerza de 6 N durante 2 s, ¿cuál es el cambio en la energía cinética del objeto?', 'single', '[\"A) 12 J\",\"B) 18 J\",\"C) 24 J\",\"D) 36 J\",\"E) 48 J\"]', 'B) 18 J', 13, NULL, NULL),
(54, NULL, 'Un gas ideal se expande de 2 L a 4 L a una presión constante de 2 atm. Si la temperatura inicial es de 250 K, ¿cuál es la temperatura final?', 'single', '[\"A) 125 K\",\"B) 250 K\",\"C) 375 K\",\"D) 500 K\",\"E) 750 K\"]', 'C) 375 K', 13, NULL, NULL),
(55, NULL, 'Un átomo de hidrógeno tiene un electrón en el nivel de energía n=1. Si se absorbe una energía de 10,2 eV, ¿cuál es el nuevo nivel de energía del electrón?', 'single', '[\"A) n=2\",\"B) n=3\",\"C) n=4\",\"D) n=5\",\"E) n=6\"]', 'B) n=3', 13, NULL, NULL),
(56, NULL, 'Un circuito eléctrico tiene una resistencia de 10 Ω y una corriente de 2 A. Si se agrega un resistor de 20 Ω en serie, ¿cuál es la nueva corriente en el circuito?', 'single', '[\"A) 1 A\",\"B) 1,5 A\",\"C) 2 A\",\"D) 2,5 A\",\"E) 3 A\"]', 'A) 1 A', 13, NULL, NULL),
(57, NULL, 'Un bloque de madera de 5 kg se desliza sobre una superficie horizontal con una velocidad de 2 m/s. Si la fricción entre el bloque y la superficie es de 10 N, ¿cuál es la aceleración del bloque?', 'single', '[\"A) 0 m\\/s^2\",\"B) 1 m\\/s^2\",\"C) 2 m\\/s^2\",\"D) 3 m\\/s^2\",\"E) 4 m\\/s^2\"]', 'B) 1 m/s^2', 13, NULL, NULL),
(58, NULL, 'Un sistema químico tiene una constante de equilibrio de 0,5. Si se agrega un reactivo, ¿cuál es el efecto en la concentración del producto?', 'single', '[\"A) Aumenta\",\"B) Disminuye\",\"C) No cambia\",\"D) Se duplica\",\"E) Se triplica\"]', 'A) Aumenta', 13, NULL, NULL),
(59, NULL, 'Un objeto de 10 kg se mueve en un círculo de 2 m de radio con una velocidad de 4 m/s. ¿Cuál es la fuerza centrífuga que actúa sobre el objeto?', 'single', '[\"A) 10 N\",\"B) 20 N\",\"C) 40 N\",\"D) 80 N\",\"E) 100 N\"]', 'C) 40 N', 13, NULL, NULL),
(60, NULL, 'Un estudio sobre la relación entre la temperatura y la tasa de crecimiento de bacterias en un laboratorio de microbiología encontró que la tasa de crecimiento se puede modelar mediante la función f(t) = 2t^2 + 5t - 3, donde t es la temperatura en grados Celsius. ¿Cuál es el valor de t para el cual la tasa de crecimiento es máxima?', 'single', '[\"A) -1,25\",\"B) 0,5\",\"C) 1,5\",\"D) 2,5\",\"E) 3,5\"]', 'B) 0,5', 10, NULL, NULL),
(61, NULL, 'Un investigador en ecología está estudiando la relación entre la cantidad de nutrientes en el suelo y el crecimiento de plantas. Los datos recopilados se pueden modelar mediante la función y = 3x^2 + 2x - 1, donde x es la cantidad de nutrientes en gramos por kilogramo de suelo y y es el crecimiento de la planta en centímetros. ¿Cuál es el valor de x para el cual el crecimiento de la planta es de 10 centímetros?', 'single', '[\"A) 1,2\",\"B) 1,5\",\"C) 1,8\",\"D) 2,1\",\"E) 2,5\"]', 'C) 1,8', 10, NULL, NULL),
(62, NULL, 'Un sistema de ecuaciones lineales que modela la relación entre la cantidad de agua y la cantidad de nutrientes en un ecosistema está dado por: 2x + 3y = 12 y x - 2y = -3. ¿Cuál es el valor de x?', 'single', '[\"A) 2\",\"B) 3\",\"C) 4\",\"D) 5\",\"E) 6\"]', 'B) 3', 10, NULL, NULL),
(63, NULL, 'Un estudio sobre la propagación de enfermedades infecciosas encontró que la tasa de infección se puede modelar mediante la función f(t) = 0,5t^2 + 2t + 1, donde t es el tiempo en días. ¿Cuál es el valor de t para el cual la tasa de infección es de 10 personas por día?', 'single', '[\"A) 3\",\"B) 4\",\"C) 5\",\"D) 6\",\"E) 7\"]', 'B) 4', 10, NULL, NULL),
(64, NULL, 'Un investigador en física está estudiando la relación entre la velocidad y la distancia recorrida por un objeto en movimiento. Los datos recopilados se pueden modelar mediante la función d = 2v^2 + 3v - 2, donde d es la distancia en metros y v es la velocidad en metros por segundo. ¿Cuál es el valor de v para el cual la distancia recorrida es de 20 metros?', 'single', '[\"A) 2\",\"B) 2,5\",\"C) 3\",\"D) 3,5\",\"E) 4\"]', 'C) 3', 10, NULL, NULL),
(65, NULL, 'Un sistema de ecuaciones lineales que modela la relación entre la cantidad de oxígeno y la cantidad de dióxido de carbono en un ecosistema está dado por: x + 2y = 10 y 3x - 2y = 5. ¿Cuál es el valor de y?', 'single', '[\"A) 1\",\"B) 1,5\",\"C) 2\",\"D) 2,5\",\"E) 3\"]', 'B) 1,5', 10, NULL, NULL),
(66, NULL, 'Un estudio sobre la relación entre la edad y la presión arterial en una población encontró que la presión arterial se puede modelar mediante la función f(e) = 0,5e^2 + 2e + 60, donde e es la edad en años. ¿Cuál es el valor de e para el cual la presión arterial es de 120 mmHg?', 'single', '[\"A) 20\",\"B) 25\",\"C) 30\",\"D) 35\",\"E) 40\"]', 'C) 30', 10, NULL, NULL),
(67, NULL, 'Una secuencia numérica comienza con los términos 1, 2, 4, 7, 11. ¿Cuál es el siguiente término en la secuencia?', 'single', '[\"A) 14\",\"B) 15\",\"C) 16\",\"D) 17\",\"E) 18\"]', 'C) 16', 12, NULL, NULL),
(68, NULL, 'Un investigador estudia el efecto de la temperatura en la tasa de crecimiento de una bacteria. Los resultados muestran que a 20°C, la bacteria crece a una tasa de 2 veces por hora, a 30°C, la tasa es de 3 veces por hora, y a 40°C, la tasa es de 5 veces por hora. ¿Cuál es la tasa de crecimiento a 50°C?', 'single', '[\"A) 6 veces por hora\",\"B) 7 veces por hora\",\"C) 8 veces por hora\",\"D) 9 veces por hora\",\"E) 10 veces por hora\"]', 'C) 8 veces por hora', 12, NULL, NULL),
(69, NULL, 'En un estudio sobre la contaminación del agua, se miden los niveles de pH en diferentes puntos de un río. Los resultados son: 6,5, 6,8, 7,1, 7,4. ¿Cuál es el nivel de pH en el siguiente punto de muestreo?', 'single', '[\"A) 7,6\",\"B) 7,7\",\"C) 7,8\",\"D) 7,9\",\"E) 8,0\"]', 'B) 7,7', 12, NULL, NULL),
(70, NULL, 'Una matriz de 3x3 se llena con números enteros de manera que cada fila y columna suman 15. ¿Cuál es el número que se encuentra en la intersección de la segunda fila y la segunda columna?', 'single', '[\"A) 3\",\"B) 4\",\"C) 5\",\"D) 6\",\"E) 7\"]', 'C) 5', 12, NULL, NULL),
(71, NULL, 'Un problema de lógica establece que hay tres interruptores que controlan tres luces en una habitación. Cada interruptor puede estar en una de dos posiciones: encendido o apagado. ¿Cuántas combinaciones diferentes de interruptores y luces son posibles?', 'single', '[\"A) 6\",\"B) 8\",\"C) 12\",\"D) 16\",\"E) 24\"]', 'D) 8', 12, NULL, NULL),
(72, NULL, 'Una serie numérica comienza con los términos 2, 5, 8, 11, 14. ¿Cuál es el siguiente término en la serie?', 'single', '[\"A) 15\",\"B) 16\",\"C) 17\",\"D) 18\",\"E) 19\"]', 'C) 17', 12, NULL, NULL),
(73, NULL, 'Un estudio sobre la salud pública muestra que la relación entre la cantidad de ejercicio físico y la presión arterial es inversamente proporcional. Si una persona que hace 30 minutos de ejercicio al día tiene una presión arterial de 120 mmHg, ¿cuál es la presión arterial de una persona que hace 60 minutos de ejercicio al día?', 'single', '[\"A) 90 mmHg\",\"B) 100 mmHg\",\"C) 110 mmHg\",\"D) 120 mmHg\",\"E) 130 mmHg\"]', 'B) 100 mmHg', 12, NULL, NULL),
(74, NULL, 'Un experimento sobre la fotosíntesis mide la cantidad de oxígeno producido por una planta en función de la intensidad de la luz. Los resultados son: 10, 20, 30, 40. ¿Cuál es la cantidad de oxígeno producida cuando la intensidad de la luz es 5?', 'single', '[\"A) 5\",\"B) 6\",\"C) 7\",\"D) 8\",\"E) 9\"]', 'B) 6', 12, NULL, NULL),
(75, NULL, 'Un problema de lógica establece que hay cinco personas sentadas en una mesa circular. Cada persona puede estar mirando hacia adelante o hacia atrás. ¿Cuántas combinaciones diferentes de personas y direcciones son posibles?', 'single', '[\"A) 10\",\"B) 16\",\"C) 20\",\"D) 25\",\"E) 32\"]', 'E) 32', 12, NULL, NULL),
(76, NULL, 'Una secuencia numérica comienza con los términos 3, 6, 9, 12, 15. ¿Cuál es el siguiente término en la secuencia?', 'single', '[\"A) 16\",\"B) 17\",\"C) 18\",\"D) 19\",\"E) 20\"]', 'C) 18', 12, NULL, NULL),
(77, NULL, 'Un estudio sobre la contaminación del aire mide los niveles de partículas suspendidas en el aire en diferentes puntos de una ciudad. Los resultados son: 10, 15, 20, 25. ¿Cuál es el nivel de partículas suspendidas en el siguiente punto de muestreo?', 'single', '[\"A) 28\",\"B) 29\",\"C) 30\",\"D) 31\",\"E) 32\"]', 'C) 30', 12, NULL, NULL),
(78, NULL, 'Un problema de lógica establece que hay cuatro cajas que contienen diferentes cantidades de monedas. Cada caja puede contener 1, 2, 3 o 4 monedas. ¿Cuántas combinaciones diferentes de cajas y monedas son posibles?', 'single', '[\"A) 10\",\"B) 16\",\"C) 20\",\"D) 24\",\"E) 32\"]', 'D) 24', 12, NULL, NULL),
(79, NULL, 'Una serie numérica comienza con los términos 1, 3, 5, 7, 9. ¿Cuál es el siguiente término en la serie?', 'single', '[\"A) 10\",\"B) 11\",\"C) 12\",\"D) 13\",\"E) 14\"]', 'B) 11', 12, NULL, NULL),
(80, NULL, '¿Cuál fue el principal factor que contribuyó a la expansión del Imperio Inca durante el siglo XV?', 'single', '[\"A) La conquista de los territorios vecinos a través de alianzas estratégicas\",\"B) La implementación de un sistema de caminos y comunicaciones eficiente\",\"C) La explotación de los recursos naturales de las regiones conquistadas\",\"D) La adopción de una política de tolerancia religiosa hacia los pueblos conquistados\",\"E) La creación de un ejército profesional y bien entrenado\"]', 'B) La implementación de un sistema de caminos y comunicaciones eficiente', 6, NULL, NULL),
(81, NULL, '¿Qué acontecimiento histórico ocurrió en el Perú en 1821 y marcó el fin del dominio español en el país?', 'single', '[\"A) La batalla de Ayacucho\",\"B) La proclamación de la independencia del Perú\",\"C) La creación de la primera constitución peruana\",\"D) La elección de José de San Martín como presidente del Perú\",\"E) La ocupación de Lima por las fuerzas independentistas\"]', 'B) La proclamación de la independencia del Perú', 6, NULL, NULL),
(82, NULL, '¿Quién fue el líder de la revolución francesa que sentó las bases para la Declaración de los Derechos del Hombre y del Ciudadano en 1789?', 'single', '[\"A) Maximilien Robespierre\",\"B) Louis XVI\",\"C) Napoleón Bonaparte\",\"D) Georges Danton\",\"E) Jean-Paul Marat\"]', 'A) Maximilien Robespierre', 6, NULL, NULL),
(83, NULL, '¿Cuál fue el nombre del tratado firmado en 1860 entre el Perú y España, que estableció las bases para la relación diplomática entre ambos países?', 'single', '[\"A) Tratado de Madrid\",\"B) Tratado de Lima\",\"C) Tratado de París\",\"D) Tratado de Washington\",\"E) Tratado de Londres\"]', 'A) Tratado de Madrid', 6, NULL, NULL),
(84, NULL, '¿Qué civilización prehispánica se desarrolló en la región noroeste del Perú y es conocida por sus logros en la metalurgia y la cerámica?', 'single', '[\"A) Los moches\",\"B) Los chimúes\",\"C) Los nazcas\",\"D) Los incas\",\"E) Los tallanes\"]', 'B) Los chimúes', 6, NULL, NULL),
(85, NULL, '¿Quién fue el presidente del Perú que implementó una serie de reformas económicas y sociales durante la década de 1960, conocidas como la \'Revolución Peruana\'?', 'single', '[\"A) Fernando Belaúnde Terry\",\"B) Juan Velasco Alvarado\",\"C) Francisco Morales Bermúdez\",\"D) Alan García Pérez\",\"E) Alberto Fujimori\"]', 'B) Juan Velasco Alvarado', 6, NULL, NULL),
(86, NULL, '¿Cuál fue el nombre del movimiento social y político que surgió en el Perú a fines del siglo XIX y abogó por la igualdad de derechos y la justicia social para los trabajadores y campesinos?', 'single', '[\"A) El movimiento indigenista\",\"B) El movimiento anarquista\",\"C) El movimiento aprista\",\"D) El movimiento comunista\",\"E) El movimiento sindicalista\"]', 'C) El movimiento aprista', 6, NULL, NULL),
(87, NULL, '¿Cuál fue el principal factor que contribuyó a la expansión del Imperio Inca en el siglo XV?', 'single', '[\"A) La conquista española\",\"B) La fusión de las tribus indígenas\",\"C) La construcción de la red vial incaica\",\"D) La adopción del sistema de trueque\",\"E) La expansión del comercio con Europa\"]', 'C) La construcción de la red vial incaica', 6, NULL, NULL),
(88, NULL, '¿Quién fue el líder que dirigió la revolución de 1854 en el Perú, que buscaba la abolición de la esclavitud y la igualdad de derechos para los afroperuanos?', 'single', '[\"A) Ramón Castilla\",\"B) José de la Riva-Agüero\",\"C) Juan Antonio Pezet\",\"D) Miguel Grau\",\"E) Andrés Avelino Cáceres\"]', 'A) Ramón Castilla', 6, NULL, NULL),
(89, NULL, '¿Cuál fue el tratado que puso fin a la Guerra del Pacífico entre Perú y Chile en 1883?', 'single', '[\"A) Tratado de Ancón\",\"B) Tratado de Lima\",\"C) Tratado de Santiago\",\"D) Tratado de Iquique\",\"E) Tratado de Tacna\"]', 'A) Tratado de Ancón', 6, NULL, NULL),
(90, NULL, '¿Quién fue el historiador y cronista español que escribió \'La Crónica del Perú\', una de las principales fuentes de información sobre la conquista española del Perú?', 'single', '[\"A) Pedro Cieza de León\",\"B) Gonzalo Fernández de Oviedo\",\"C) Francisco de Xerez\",\"D) Bartolomé de las Casas\",\"E) Hernando Pizarro\"]', 'A) Pedro Cieza de León', 6, NULL, NULL),
(91, NULL, '¿Cuál fue el movimiento social y político que surgió en el Perú en la década de 1920, que buscaba la reforma agraria y la justicia social para los campesinos y los trabajadores?', 'single', '[\"A) El movimiento aprista\",\"B) El movimiento comunista\",\"C) El movimiento anarquista\",\"D) El movimiento indigenista\",\"E) El movimiento sindicalista\"]', 'A) El movimiento aprista', 6, NULL, NULL),
(92, NULL, 'Una secuencia numérica está definida por la fórmula: a(n) = 2a(n-1) + 3, donde a(1) = 5. ¿Cuál es el valor de a(4)?', 'single', '[\"A) 43\",\"B) 53\",\"C) 61\",\"D) 71\",\"E) 83\"]', 'C) 61', 12, NULL, NULL),
(93, NULL, 'En un juego de lógica, se tienen 5 casillas: A, B, C, D y E. Cada casilla puede estar en uno de dos estados: abierto o cerrado. Las reglas son: (1) si A está abierto, entonces B está cerrado; (2) si C está abierto, entonces D está abierto; (3) si E está abierto, entonces A está cerrado. Si se sabe que B y D están abiertos, ¿cuál es el estado de la casilla C?', 'single', '[\"A) Abierto\",\"B) Cerrado\",\"C) No se puede determinar\",\"D) Depende del estado de A\",\"E) Depende del estado de E\"]', 'A) Abierto', 12, NULL, NULL),
(94, NULL, 'Un conjunto de 8 elementos está particionado en 3 subconjuntos disjuntos. Los subconjuntos tienen 2, 3 y 3 elementos, respectivamente. Si se eligen 2 elementos al azar del conjunto original, ¿cuál es la probabilidad de que ambos elementos pertenezcan al mismo subconjunto?', 'single', '[\"A) 1\\/14\",\"B) 1\\/7\",\"C) 2\\/7\",\"D) 3\\/7\",\"E) 1\\/2\"]', 'C) 2/7', 12, NULL, NULL),
(95, NULL, 'Un objeto de 5 kg se mueve con una velocidad inicial de 2 m/s y se acelera a 4 m/s^2 durante 3 segundos. ¿Cuál es la energía cinética final del objeto?', 'single', '[\"A) 80 J\",\"B) 100 J\",\"C) 120 J\",\"D) 140 J\",\"E) 160 J\"]', 'C) 120 J', 13, NULL, NULL),
(96, NULL, 'Un experimento de laboratorio requiere una solución de ácido clorhídrico (HCl) al 25% de concentración. Si se necesitan 500 ml de esta solución, ¿cuántos gramos de HCl puro deben ser agregados a 475 ml de agua destilada?', 'single', '[\"A) 125 g\",\"B) 130 g\",\"C) 135 g\",\"D) 140 g\",\"E) 145 g\"]', 'A) 125 g', 13, NULL, NULL),
(97, NULL, 'Un ecosistema está compuesto por 1000 individuos de una especie de plantas y 500 individuos de una especie de animales que se alimentan de esas plantas. Si la tasa de natalidad de las plantas es del 10% anual y la tasa de mortalidad es del 5% anual, ¿cuál es el crecimiento poblacional de las plantas después de 1 año?', 'single', '[\"A) 50 individuos\",\"B) 75 individuos\",\"C) 100 individuos\",\"D) 125 individuos\",\"E) 150 individuos\"]', 'B) 50 individuos', 13, NULL, NULL),
(98, NULL, 'Un conductor eléctrico de sección transversal A y longitud L tiene una resistencia R. Si se duplica la longitud del conductor, ¿cuál es la nueva resistencia del conductor?', 'single', '[\"A) R\\/2\",\"B) R\",\"C) 2R\",\"D) 3R\",\"E) 4R\"]', 'C) 2R', 13, NULL, NULL),
(99, NULL, 'La expansión del Imperio Incaico durante el siglo XV se debió en gran parte a la habilidad militar y política de quién', 'single', '[\"A) Túpac Yupanqui\",\"B) Huayna Cápac\",\"C) Atahualpa\",\"D) Pachacútec\",\"E) Viracocha Inca\"]', 'D) Pachacútec', 6, NULL, NULL),
(100, NULL, 'El Tratado de Ancón, firmado en 1883, marcó el final de la Guerra del Pacífico y estableció las condiciones bajo las cuales Chile obtendría el control de las provincias peruanas de', 'single', '[\"A) Tacna y Arica\",\"B) Lima y Callao\",\"C) Cusco y Arequipa\",\"D) Piura y Tumbes\",\"E) La Libertad y Lambayeque\"]', 'A) Tacna y Arica', 6, NULL, NULL),
(101, NULL, 'La Revolución Francesa de 1789 tuvo un impacto significativo en la historia universal, ya que sentó las bases para la expansión de los principios de', 'single', '[\"A) Absolutismo y feudalismo\",\"B) Liberalismo y democracia\",\"C) Socialismo y comunismo\",\"D) Nacionalismo y fascismo\",\"E) Imperialismo y colonialismo\"]', 'B) Liberalismo y democracia', 6, NULL, NULL),
(102, NULL, 'Un objeto de 2 kg se mueve con una velocidad de 3 m/s. ¿Cuál es su momento lineal?', 'single', '[\"A) 1 Ns\",\"B) 3 Ns\",\"C) 6 Ns\",\"D) 9 Ns\",\"E) 12 Ns\"]', 'C) 6 Ns', 13, NULL, NULL),
(103, NULL, 'Un gas ideal se expande isotérmicamente desde un volumen de 1 L a 2 L. ¿Cuál es el trabajo realizado por el gas?', 'single', '[\"A) -100 J\",\"B) -50 J\",\"C) 0 J\",\"D) 50 J\",\"E) 100 J\"]', 'B) -50 J', 13, NULL, NULL),
(104, NULL, 'Un átomo de hidrógeno emite un fotón de longitud de onda 656 nm. ¿Cuál es la energía del fotón emitido?', 'single', '[\"A) 1,89 eV\",\"B) 2,12 eV\",\"C) 3,02 eV\",\"D) 3,94 eV\",\"E) 4,08 eV\"]', 'A) 1,89 eV', 13, NULL, NULL),
(105, NULL, 'Un cristal de NaCl se disuelve en agua. ¿Cuál es el tipo de enlace químico que se rompe?', 'single', '[\"A) Enlace iónico\",\"B) Enlace covalente\",\"C) Enlace metálico\",\"D) Enlace hidrógeno\",\"E) Enlace de Van der Waals\"]', 'A) Enlace iónico', 13, NULL, NULL),
(106, NULL, 'Un organismo tiene un genotipo AABB. ¿Cuál es su fenotipo?', 'single', '[\"A) Dominante\",\"B) Recessivo\",\"C) Homocigoto dominante\",\"D) Homocigoto recessivo\",\"E) Heterocigoto\"]', 'C) Homocigoto dominante', 13, NULL, NULL),
(107, NULL, 'Un circuito eléctrico tiene una resistencia de 10 Ω y una corriente de 2 A. ¿Cuál es el voltaje aplicado?', 'single', '[\"A) 10 V\",\"B) 15 V\",\"C) 20 V\",\"D) 25 V\",\"E) 30 V\"]', 'C) 20 V', 13, NULL, NULL),
(108, NULL, 'Un sistema térmico tiene una temperatura de 25°C y una entalpía de 100 J. ¿Cuál es su energía interna?', 'single', '[\"A) 50 J\",\"B) 75 J\",\"C) 100 J\",\"D) 125 J\",\"E) 150 J\"]', 'C) 100 J', 13, NULL, NULL),
(109, NULL, 'Un objeto se mueve en un plano inclinado con un ángulo de 30°. ¿Cuál es la componente de la fuerza de gravedad que actúa sobre el objeto en la dirección del plano?', 'single', '[\"A) 0 N\",\"B) 2,5 N\",\"C) 5 N\",\"D) 7,5 N\",\"E) 10 N\"]', 'C) 5 N', 13, NULL, NULL),
(110, NULL, 'Un gas ideal se comprime adiabáticamente desde un volumen de 2 L a 1 L. ¿Cuál es el cambio de temperatura?', 'single', '[\"A) -100 K\",\"B) -50 K\",\"C) 0 K\",\"D) 50 K\",\"E) 100 K\"]', 'D) 50 K', 13, NULL, NULL),
(111, NULL, 'Un átomo de oxígeno tiene 8 electrones. ¿Cuál es su número de oxidación?', 'single', '[\"A) -2\",\"B) -1\",\"C) 0\",\"D) 1\",\"E) 2\"]', 'A) -2', 13, NULL, NULL),
(112, NULL, 'Un sistema biológico tiene una concentración de iones de sodio de 10 mM. ¿Cuál es la concentración de iones de cloruro?', 'single', '[\"A) 5 mM\",\"B) 10 mM\",\"C) 15 mM\",\"D) 20 mM\",\"E) 25 mM\"]', 'B) 10 mM', 13, NULL, NULL),
(113, NULL, 'Un objeto se mueve en un círculo con una velocidad de 5 m/s y un radio de 2 m. ¿Cuál es su aceleración centrípeta?', 'single', '[\"A) 5 m\\/s²\",\"B) 10 m\\/s²\",\"C) 12,5 m\\/s²\",\"D) 15 m\\/s²\",\"E) 20 m\\/s²\"]', 'C) 12,5 m/s²', 13, NULL, NULL),
(114, NULL, 'Un cristal de cuarzo tiene una estructura cristalina hexagonal. ¿Cuál es su simetría?', 'single', '[\"A) Monoclínica\",\"B) Ortorrómbica\",\"C) Tetragonal\",\"D) Trigonal\",\"E) Hexagonal\"]', 'E) Hexagonal', 13, NULL, NULL),
(115, NULL, 'Un sistema químico tiene una constante de equilibrio de 10. ¿Cuál es la relación entre las concentraciones de los reactivos y los productos?', 'single', '[\"A) 1:10\",\"B) 10:1\",\"C) 1:1\",\"D) 10:10\",\"E) 1:100\"]', 'B) 10:1', 13, NULL, NULL),
(116, NULL, 'Un objeto se mueve con una velocidad de 10 m/s y una aceleración de 2 m/s². ¿Cuál es su velocidad final después de 5 s?', 'single', '[\"A) 10 m\\/s\",\"B) 15 m\\/s\",\"C) 20 m\\/s\",\"D) 25 m\\/s\",\"E) 30 m\\/s\"]', 'C) 20 m/s', 13, NULL, NULL),
(117, NULL, 'Un sistema biológico tiene una concentración de glucosa de 10 mM. ¿Cuál es la concentración de ATP?', 'single', '[\"A) 1 mM\",\"B) 5 mM\",\"C) 10 mM\",\"D) 15 mM\",\"E) 20 mM\"]', 'C) 10 mM', 13, NULL, NULL),
(118, NULL, 'Un objeto se mueve en un campo magnético con una intensidad de 1 T y una velocidad de 5 m/s. ¿Cuál es la fuerza que actúa sobre el objeto?', 'single', '[\"A) 0 N\",\"B) 1 N\",\"C) 2,5 N\",\"D) 5 N\",\"E) 10 N\"]', 'D) 5 N', 13, NULL, NULL),
(119, NULL, 'Un sistema químico tiene una energía de activación de 100 kJ/mol. ¿Cuál es la constante de velocidad de la reacción?', 'single', '[\"A) 10⁻³ s⁻¹\",\"B) 10⁻² s⁻¹\",\"C) 10⁻¹ s⁻¹\",\"D) 1 s⁻¹\",\"E) 10 s⁻¹\"]', 'C) 10⁻¹ s⁻¹', 13, NULL, NULL),
(120, NULL, 'Un objeto se mueve con una velocidad de 20 m/s y una aceleración de 4 m/s². ¿Cuál es su velocidad final después de 10 s?', 'single', '[\"A) 20 m\\/s\",\"B) 30 m\\/s\",\"C) 40 m\\/s\",\"D) 50 m\\/s\",\"E) 60 m\\/s\"]', 'D) 50 m/s', 13, NULL, NULL),
(121, NULL, 'Un sistema biológico tiene una concentración de iones de calcio de 1 mM. ¿Cuál es la concentración de iones de fosfato?', 'single', '[\"A) 0,5 mM\",\"B) 1 mM\",\"C) 1,5 mM\",\"D) 2 mM\",\"E) 2,5 mM\"]', 'B) 1 mM', 13, NULL, NULL),
(122, NULL, 'Una secuencia numérica comienza con los términos 2, 5, 8, 11, 14. ¿Cuál es el término número 10 de esta secuencia?', 'single', '[\"A) 29\",\"B) 30\",\"C) 31\",\"D) 32\",\"E) 33\"]', 'A) 29', 12, NULL, NULL),
(123, NULL, 'Un conjunto de objetos está dispuesto en una matriz de 3x3. Si se rotan 90 grados hacia la derecha, ¿cuál será la posición del objeto que inicialmente estaba en la esquina superior izquierda?', 'single', '[\"A) Esquina superior derecha\",\"B) Esquina inferior izquierda\",\"C) Esquina inferior derecha\",\"D) Centro de la matriz\",\"E) No cambia de posición\"]', 'B) Esquina inferior izquierda', 12, NULL, NULL),
(124, NULL, 'Un lógico utiliza las siguientes premisas: Todos los A son B, algunos B son C. ¿Cuál es la conclusión lógica que se puede extraer de estas premisas?', 'single', '[\"A) Todos los A son C\",\"B) Algunos A son C\",\"C) Ningún A es C\",\"D) Todos los B son A\",\"E) Algunos B son A\"]', 'B) Algunos A son C', 12, NULL, NULL),
(125, NULL, 'Una serie de números es 1, 2, 4, 7, 11. ¿Cuál es el siguiente número en esta serie?', 'single', '[\"A) 14\",\"B) 15\",\"C) 16\",\"D) 17\",\"E) 18\"]', 'C) 16', 12, NULL, NULL),
(126, NULL, 'Un problema de lógica establece que cinco amigos (A, B, C, D, E) se sientan en una fila. A se sienta al lado de B, C se sienta al lado de D, y E se sienta en un extremo. ¿Cuál es el orden de los amigos?', 'single', '[\"A) A-B-C-D-E\",\"B) E-A-B-C-D\",\"C) A-B-D-C-E\",\"D) E-C-D-B-A\",\"E) A-B-E-C-D\"]', 'B) E-A-B-C-D', 12, NULL, NULL),
(127, NULL, 'Un conjunto de números es {1, 2, 3, 4, 5}. Si se eliminan los números pares, ¿cuál es el promedio de los números restantes?', 'single', '[\"A) 2\",\"B) 2.5\",\"C) 3\",\"D) 3.5\",\"E) 4\"]', 'B) 2.5', 12, NULL, NULL),
(128, NULL, 'Una secuencia de colores es rojo, azul, verde, amarillo, naranja. Si se repite la secuencia cada 5 colores, ¿cuál es el color número 11?', 'single', '[\"A) Rojo\",\"B) Azul\",\"C) Verde\",\"D) Amarillo\",\"E) Naranja\"]', 'B) Azul', 12, NULL, NULL),
(129, NULL, 'Un problema de matrices establece que una matriz de 4x4 tiene los números 1-16 distribuidos de manera que cada fila y columna suma 34. ¿Cuál es el número en la posición (2, 3)?', 'single', '[\"A) 10\",\"B) 11\",\"C) 12\",\"D) 13\",\"E) 14\"]', 'C) 12', 12, NULL, NULL),
(130, NULL, 'Una serie de números es 2, 6, 12, 20, 30. ¿Cuál es el siguiente número en esta serie?', 'single', '[\"A) 38\",\"B) 40\",\"C) 42\",\"D) 44\",\"E) 46\"]', 'C) 42', 12, NULL, NULL),
(131, NULL, 'Un conjunto de objetos está dispuesto en una secuencia de acuerdo a su tamaño. Si el objeto más grande es el número 10 y el objeto más pequeño es el número 1, ¿cuál es el objeto número 7?', 'single', '[\"A) El objeto más grande\",\"B) El objeto más pequeño\",\"C) El objeto de tamaño medio\",\"D) El séptimo objeto más grande\",\"E) El séptimo objeto más pequeño\"]', 'D) El séptimo objeto más grande', 12, NULL, NULL),
(132, NULL, 'Un problema de lógica establece que tres amigos (A, B, C) tienen tres sombreros (rojo, azul, verde). A no tiene el sombrero rojo, B no tiene el sombrero azul, y C no tiene el sombrero verde. ¿Cuál es el color del sombrero de A?', 'single', '[\"A) Rojo\",\"B) Azul\",\"C) Verde\",\"D) No se puede determinar\",\"E) A no tiene sombrero\"]', 'C) Verde', 12, NULL, NULL),
(133, NULL, 'Una secuencia numérica comienza con los términos 1, 4, 9, 16, 25. ¿Cuál es el término número 10 de esta secuencia?', 'single', '[\"A) 100\",\"B) 121\",\"C) 144\",\"D) 169\",\"E) 196\"]', 'B) 121', 12, NULL, NULL),
(134, NULL, 'Un rectángulo tiene una longitud de 15 cm y un ancho de 8 cm. Si se reduce su longitud en un 20% y su ancho en un 15%, ¿cuál es el área del rectángulo resultante?', 'single', '[\"A) 72 cm^2\",\"B) 84 cm^2\",\"C) 90 cm^2\",\"D) 96 cm^2\",\"E) 108 cm^2\"]', 'C) 90 cm^2', 10, NULL, NULL),
(135, NULL, 'Un automóvil viaja de la ciudad A a la ciudad B a una velocidad promedio de 60 km/h y regresa a una velocidad promedio de 40 km/h. ¿Cuál es la velocidad promedio del viaje de ida y vuelta?', 'single', '[\"A) 48 km\\/h\",\"B) 50 km\\/h\",\"C) 52 km\\/h\",\"D) 55 km\\/h\",\"E) 58 km\\/h\"]', 'A) 48 km/h', 10, NULL, NULL),
(136, NULL, 'Un estudiante obtiene una calificación de 80 en un examen de matemática y una calificación de 70 en un examen de ciencias. Si la calificación promedio de la clase en matemática es 75 y la calificación promedio en ciencias es 65, ¿cuántos estudiantes hay en la clase?', 'single', '[\"A) 10\",\"B) 15\",\"C) 20\",\"D) 25\",\"E) 30\"]', 'C) 20', 10, NULL, NULL),
(137, NULL, 'Un triángulo rectángulo tiene un cateto de 3 cm y un cateto de 4 cm. ¿Cuál es la longitud de la hipotenusa?', 'single', '[\"A) 3,5 cm\",\"B) 4,5 cm\",\"C) 5 cm\",\"D) 5,5 cm\",\"E) 6 cm\"]', 'C) 5 cm', 10, NULL, NULL),
(138, NULL, 'Un cilindro tiene un radio de 4 cm y una altura de 10 cm. ¿Cuál es el volumen del cilindro?', 'single', '[\"A) 160 cm^3\",\"B) 200 cm^3\",\"C) 250 cm^3\",\"D) 320 cm^3\",\"E) 400 cm^3\"]', 'D) 320 cm^3', 10, NULL, NULL),
(139, NULL, 'Un conjunto de datos tiene una media de 25 y una desviación estándar de 5. ¿Cuál es el límite superior del intervalo que contiene el 68% de los datos?', 'single', '[\"A) 25\",\"B) 28\",\"C) 30\",\"D) 32\",\"E) 35\"]', 'C) 30', 10, NULL, NULL),
(140, NULL, 'Un gráfico de una función lineal tiene una pendiente de 2 y pasa por el punto (1,3). ¿Cuál es la ecuación de la recta?', 'single', '[\"A) y = 2x + 1\",\"B) y = 2x + 3\",\"C) y = 2x - 1\",\"D) y = 2x - 3\",\"E) y = x + 2\"]', 'B) y = 2x + 1', 10, NULL, NULL),
(141, NULL, 'Un problema de probabilidad involucra lanzar dos dados justo. ¿Cuál es la probabilidad de obtener un total de 7?', 'single', '[\"A) 1\\/6\",\"B) 1\\/9\",\"C) 1\\/12\",\"D) 1\\/18\",\"E) 1\\/36\"]', 'B) 1/6', 10, NULL, NULL),
(142, NULL, 'Si un automóvil viaja de Lima a Trujillo a una velocidad promedio de 80 km/h y regresa a una velocidad promedio de 60 km/h, ¿cuál es la velocidad promedio del viaje de ida y vuelta?', 'single', '[\"A) 68 km\\/h\",\"B) 70 km\\/h\",\"C) 72 km\\/h\",\"D) 75 km\\/h\",\"E) 80 km\\/h\"]', 'B) 70 km/h', 10, NULL, NULL),
(143, NULL, 'Un cilindro tiene un radio de 4 cm y una altura de 10 cm. ¿Cuál es el volumen del cilindro en centímetros cúbicos?', 'single', '[\"A) 160π cm³\",\"B) 200π cm³\",\"C) 240π cm³\",\"D) 320π cm³\",\"E) 400π cm³\"]', 'D) 320π cm³', 10, NULL, NULL),
(144, NULL, 'Una empresa tiene un costo fijo de S/ 5000 y un costo variable de S/ 20 por unidad producida. Si la empresa produce 200 unidades, ¿cuál es el costo total de producción?', 'single', '[\"A) S\\/ 9000\",\"B) S\\/ 10 000\",\"C) S\\/ 11 000\",\"D) S\\/ 12 000\",\"E) S\\/ 13 000\"]', 'C) S/ 11 000', 10, NULL, NULL),
(145, NULL, 'Un triángulo rectángulo tiene un cateto de 3 cm y una hipotenusa de 5 cm. ¿Cuál es la longitud del otro cateto?', 'single', '[\"A) 2 cm\",\"B) 3 cm\",\"C) 4 cm\",\"D) 5 cm\",\"E) 6 cm\"]', 'C) 4 cm', 10, NULL, NULL),
(146, NULL, 'Un conjunto de datos tiene una media de 12 y una desviación estándar de 2. ¿Cuál es el límite superior del intervalo que contiene el 68% de los datos?', 'single', '[\"A) 14\",\"B) 15\",\"C) 16\",\"D) 17\",\"E) 18\"]', 'A) 14', 10, NULL, NULL),
(147, NULL, 'Un sistema de ecuaciones lineales es el siguiente: 2x + 3y = 7, x - 2y = -3. ¿Cuál es el valor de x?', 'single', '[\"A) 1\",\"B) 2\",\"C) 3\",\"D) 4\",\"E) 5\"]', 'A) 1', 10, NULL, NULL),
(148, NULL, 'Un grupo de amigos quiere dividir una cuenta de S/ 360 de manera que cada uno pague la misma cantidad. Si hay 8 amigos, ¿cuánto pagará cada uno?', 'single', '[\"A) S\\/ 40\",\"B) S\\/ 45\",\"C) S\\/ 50\",\"D) S\\/ 55\",\"E) S\\/ 60\"]', 'B) S/ 45', 10, NULL, NULL),
(149, NULL, '¿Cuál fue el nombre del líder inca que resistió la conquista española en el siglo XVI?', 'single', '[\"A) Atahualpa\",\"B) Túpac Amaru\",\"C) Huáscar\",\"D) Manco Inca\",\"E) Pachacuti\"]', 'B) Túpac Amaru', 6, NULL, NULL),
(150, NULL, 'La Revolución Francesa, que comenzó en 1789, estuvo influenciada por las ideas de los filósofos ilustrados, como', 'single', '[\"A) John Locke\",\"B) Immanuel Kant\",\"C) Jean-Jacques Rousseau\",\"D) Voltaire y Montesquieu\",\"E) Todas las anteriores\"]', 'E) Todas las anteriores', 6, NULL, NULL),
(151, NULL, 'El Imperio Inca se expandió notablemente durante el reinado de', 'single', '[\"A) Sapa Inca Pachacuti\",\"B) Sapa Inca Túpac Yupanqui\",\"C) Sapa Inca Huayna Cápac\",\"D) Sapa Inca Atahualpa\",\"E) Sapa Inca Manco Cápac\"]', 'A) Sapa Inca Pachacuti', 6, NULL, NULL),
(152, NULL, 'La Guerra del Pacífico, que enfrentó a Perú y Chile entre 1879 y 1884, se debió en gran medida a', 'single', '[\"A) Disputas territoriales en la frontera amazónica\",\"B) Competencia por el control de los recursos naturales en la región\",\"C) La cuestión de la soberanía sobre el desierto de Atacama\",\"D) La influencia de potencias extranjeras en la región\",\"E) La expansión del ferrocarril en América del Sur\"]', 'C) La cuestión de la soberanía sobre el desierto de Atacama', 6, NULL, NULL),
(153, NULL, 'El Virreinato del Perú, establecido en 1542, fue una entidad administrativa española que abarcaba gran parte de', 'single', '[\"A) Sudamérica, incluyendo las actuales Argentina, Chile, Bolivia, Ecuador y Perú\",\"B) Centroamérica, incluyendo las actuales Costa Rica, Nicaragua, Honduras, Guatemala y Panamá\",\"C) Norteamérica, incluyendo las actuales México y Estados Unidos\",\"D) El Caribe, incluyendo las actuales Cuba, Haití y República Dominicana\",\"E) Sudamérica, excluyendo Brasil\"]', 'A) Sudamérica, incluyendo las actuales Argentina, Chile, Bolivia, Ecuador y Perú', 6, NULL, NULL);

-- --------------------------------------------------------

--
-- Table structure for table `preguntas_ia_meta`
--

CREATE TABLE `preguntas_ia_meta` (
  `id` int(11) NOT NULL,
  `pregunta_id` int(11) NOT NULL,
  `universidad_id` int(11) DEFAULT NULL,
  `carrera_id` int(11) DEFAULT NULL,
  `carrera_nombre` varchar(200) DEFAULT NULL,
  `area_nombre` varchar(100) DEFAULT NULL,
  `dificultad` tinyint(4) DEFAULT 3,
  `generado_en` timestamp NOT NULL DEFAULT current_timestamp(),
  `usos` int(11) DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `preguntas_ia_meta`
--

INSERT INTO `preguntas_ia_meta` (`id`, `pregunta_id`, `universidad_id`, `carrera_id`, `carrera_nombre`, `area_nombre`, `dificultad`, `generado_en`, `usos`) VALUES
(1, 4, 44, 2, 'Odontología', 'Matemática', 3, '2026-05-17 04:44:51', 0),
(2, 5, 44, 2, 'Odontología', 'Matemática', 3, '2026-05-17 04:44:51', 0),
(3, 6, 44, 2, 'Odontología', 'Matemática', 3, '2026-05-17 04:44:51', 0),
(4, 7, 44, 2, 'Odontología', 'Matemática', 3, '2026-05-17 04:44:51', 0),
(5, 8, 44, 2, 'Odontología', 'Matemática', 3, '2026-05-17 04:44:51', 0),
(6, 9, 44, 2, 'Odontología', 'Matemática', 3, '2026-05-17 04:44:51', 0),
(7, 10, 44, 2, 'Odontología', 'Matemática', 3, '2026-05-17 04:44:51', 0),
(8, 11, 44, 2, 'Odontología', 'Matemática', 3, '2026-05-17 04:44:51', 0),
(9, 12, 44, 2, 'Odontología', 'Matemática', 3, '2026-05-17 04:44:51', 0),
(10, 13, 44, 2, 'Odontología', 'Matemática', 3, '2026-05-17 04:44:51', 0),
(11, 14, 1, 33, 'Ingeniería Ambiental', 'Matemática', 5, '2026-05-17 04:46:34', 0),
(12, 15, 1, 33, 'Ingeniería Ambiental', 'Matemática', 5, '2026-05-17 04:46:34', 0),
(13, 16, 1, 33, 'Ingeniería Ambiental', 'Matemática', 5, '2026-05-17 04:46:34', 0),
(14, 17, 1, 33, 'Ingeniería Ambiental', 'Matemática', 5, '2026-05-17 04:46:34', 0),
(15, 18, 1, 33, 'Ingeniería Ambiental', 'Razonamiento', 5, '2026-05-17 04:46:43', 0),
(16, 19, 1, 33, 'Ingeniería Ambiental', 'Razonamiento', 5, '2026-05-17 04:46:43', 0),
(17, 20, 1, 33, 'Ingeniería Ambiental', 'Razonamiento', 5, '2026-05-17 04:46:43', 0),
(18, 21, 1, 33, 'Ingeniería Ambiental', 'Razonamiento', 5, '2026-05-17 04:46:43', 0),
(19, 22, 1, 33, 'Ingeniería Ambiental', 'Ciencias', 5, '2026-05-17 04:46:49', 0),
(20, 23, 1, 33, 'Ingeniería Ambiental', 'Ciencias', 5, '2026-05-17 04:46:49', 0),
(21, 24, 1, 33, 'Ingeniería Ambiental', 'Ciencias', 5, '2026-05-17 04:46:49', 0),
(22, 25, 1, 33, 'Ingeniería Ambiental', 'Ciencias', 5, '2026-05-17 04:46:49', 0),
(23, 26, 1, 33, 'Ingeniería Ambiental', 'Ciencias', 5, '2026-05-17 04:46:49', 0),
(24, 27, 1, 33, 'Ingeniería Ambiental', 'Historia', 5, '2026-05-17 04:46:55', 0),
(25, 28, 1, 33, 'Ingeniería Ambiental', 'Historia', 5, '2026-05-17 04:46:55', 0),
(26, 29, 1, 33, 'Ingeniería Ambiental', 'Historia', 5, '2026-05-17 04:46:55', 0),
(27, 30, 1, 33, 'Ingeniería Ambiental', 'Historia', 5, '2026-05-17 04:46:55', 0),
(28, 31, 2, 41, 'Ciencias de la Computación', 'Matemática', 5, '2026-05-17 04:51:43', 0),
(29, 32, 2, 41, 'Ciencias de la Computación', 'Matemática', 5, '2026-05-17 04:51:43', 0),
(30, 33, 2, 41, 'Ciencias de la Computación', 'Matemática', 5, '2026-05-17 04:51:43', 0),
(31, 34, 2, 41, 'Ciencias de la Computación', 'Matemática', 5, '2026-05-17 04:51:43', 0),
(32, 35, 2, 41, 'Ciencias de la Computación', 'Matemática', 5, '2026-05-17 04:51:43', 0),
(33, 36, 2, 41, 'Ciencias de la Computación', 'Matemática', 5, '2026-05-17 04:51:43', 0),
(34, 37, 2, 41, 'Ciencias de la Computación', 'Matemática', 5, '2026-05-17 04:51:43', 0),
(35, 38, 2, 41, 'Ciencias de la Computación', 'Matemática', 5, '2026-05-17 04:51:43', 0),
(36, 39, 2, 41, 'Ciencias de la Computación', 'Matemática', 5, '2026-05-17 04:51:43', 0),
(37, 40, 2, 41, 'Ciencias de la Computación', 'Matemática', 5, '2026-05-17 04:51:43', 0),
(38, 41, 2, 41, 'Ciencias de la Computación', 'Matemática', 5, '2026-05-17 04:51:43', 0),
(39, 42, 2, 41, 'Ciencias de la Computación', 'Razonamiento', 5, '2026-05-17 04:51:54', 0),
(40, 43, 2, 41, 'Ciencias de la Computación', 'Razonamiento', 5, '2026-05-17 04:51:54', 0),
(41, 44, 2, 41, 'Ciencias de la Computación', 'Razonamiento', 5, '2026-05-17 04:51:54', 0),
(42, 45, 2, 41, 'Ciencias de la Computación', 'Razonamiento', 5, '2026-05-17 04:51:54', 0),
(43, 46, 2, 41, 'Ciencias de la Computación', 'Razonamiento', 5, '2026-05-17 04:51:54', 0),
(44, 47, 2, 41, 'Ciencias de la Computación', 'Razonamiento', 5, '2026-05-17 04:51:54', 0),
(45, 48, 2, 41, 'Ciencias de la Computación', 'Razonamiento', 5, '2026-05-17 04:51:54', 0),
(46, 49, 2, 41, 'Ciencias de la Computación', 'Razonamiento', 5, '2026-05-17 04:51:54', 0),
(47, 50, 2, 41, 'Ciencias de la Computación', 'Razonamiento', 5, '2026-05-17 04:51:54', 0),
(48, 51, 2, 41, 'Ciencias de la Computación', 'Razonamiento', 5, '2026-05-17 04:51:54', 0),
(49, 52, 2, 41, 'Ciencias de la Computación', 'Razonamiento', 5, '2026-05-17 04:51:54', 0),
(50, 53, 2, 41, 'Ciencias de la Computación', 'Ciencias', 5, '2026-05-17 04:52:00', 0),
(51, 54, 2, 41, 'Ciencias de la Computación', 'Ciencias', 5, '2026-05-17 04:52:00', 0),
(52, 55, 2, 41, 'Ciencias de la Computación', 'Ciencias', 5, '2026-05-17 04:52:00', 0),
(53, 56, 2, 41, 'Ciencias de la Computación', 'Ciencias', 5, '2026-05-17 04:52:00', 0),
(54, 57, 2, 41, 'Ciencias de la Computación', 'Ciencias', 5, '2026-05-17 04:52:00', 0),
(55, 58, 2, 41, 'Ciencias de la Computación', 'Ciencias', 5, '2026-05-17 04:52:00', 0),
(56, 59, 2, 41, 'Ciencias de la Computación', 'Ciencias', 5, '2026-05-17 04:52:00', 0),
(57, 60, 105, 49, 'Física', 'Matemática', 5, '2026-05-21 17:43:17', 0),
(58, 61, 105, 49, 'Física', 'Matemática', 5, '2026-05-21 17:43:17', 0),
(59, 62, 105, 49, 'Física', 'Matemática', 5, '2026-05-21 17:43:17', 0),
(60, 63, 105, 49, 'Física', 'Matemática', 5, '2026-05-21 17:43:17', 0),
(61, 64, 105, 49, 'Física', 'Matemática', 5, '2026-05-21 17:43:17', 0),
(62, 65, 105, 49, 'Física', 'Matemática', 5, '2026-05-21 17:43:17', 0),
(63, 66, 105, 49, 'Física', 'Matemática', 5, '2026-05-21 17:43:17', 0),
(64, 67, 105, 49, 'Física', 'Razonamiento', 5, '2026-05-21 17:43:24', 0),
(65, 68, 105, 49, 'Física', 'Razonamiento', 5, '2026-05-21 17:43:24', 0),
(66, 69, 105, 49, 'Física', 'Razonamiento', 5, '2026-05-21 17:43:24', 0),
(67, 70, 105, 49, 'Física', 'Razonamiento', 5, '2026-05-21 17:43:24', 0),
(68, 71, 105, 49, 'Física', 'Razonamiento', 5, '2026-05-21 17:43:24', 0),
(69, 72, 105, 49, 'Física', 'Razonamiento', 5, '2026-05-21 17:43:24', 0),
(70, 73, 105, 49, 'Física', 'Razonamiento', 5, '2026-05-21 17:43:24', 0),
(71, 74, 105, 49, 'Física', 'Razonamiento', 5, '2026-05-21 17:43:24', 0),
(72, 75, 105, 49, 'Física', 'Razonamiento', 5, '2026-05-21 17:43:24', 0),
(73, 76, 105, 49, 'Física', 'Razonamiento', 5, '2026-05-21 17:43:24', 0),
(74, 77, 105, 49, 'Física', 'Razonamiento', 5, '2026-05-21 17:43:24', 0),
(75, 78, 105, 49, 'Física', 'Razonamiento', 5, '2026-05-21 17:43:24', 0),
(76, 79, 105, 49, 'Física', 'Razonamiento', 5, '2026-05-21 17:43:24', 0),
(77, 80, 105, 49, 'Física', 'Historia', 5, '2026-05-21 17:43:28', 0),
(78, 81, 105, 49, 'Física', 'Historia', 5, '2026-05-21 17:43:28', 0),
(79, 82, 105, 49, 'Física', 'Historia', 5, '2026-05-21 17:43:28', 0),
(80, 83, 105, 49, 'Física', 'Historia', 5, '2026-05-21 17:43:28', 0),
(81, 84, 105, 49, 'Física', 'Historia', 5, '2026-05-21 17:43:28', 0),
(82, 85, 105, 49, 'Física', 'Historia', 5, '2026-05-21 17:43:28', 0),
(83, 86, 105, 49, 'Física', 'Historia', 5, '2026-05-21 17:43:28', 0),
(84, 87, 82, 47, 'Biología', 'Historia', 5, '2026-05-21 17:46:59', 0),
(85, 88, 82, 47, 'Biología', 'Historia', 5, '2026-05-21 17:46:59', 0),
(86, 89, 82, 47, 'Biología', 'Historia', 5, '2026-05-21 17:46:59', 0),
(87, 90, 82, 47, 'Biología', 'Historia', 5, '2026-05-21 17:46:59', 0),
(88, 91, 82, 47, 'Biología', 'Historia', 5, '2026-05-21 17:46:59', 0),
(89, 92, 58, 51, 'Estadística', 'Razonamiento', 5, '2026-05-21 17:51:16', 0),
(90, 93, 58, 51, 'Estadística', 'Razonamiento', 5, '2026-05-21 17:51:16', 0),
(91, 94, 58, 51, 'Estadística', 'Razonamiento', 5, '2026-05-21 17:51:16', 0),
(92, 95, 58, 51, 'Estadística', 'Ciencias', 5, '2026-05-21 17:51:19', 0),
(93, 96, 58, 51, 'Estadística', 'Ciencias', 5, '2026-05-21 17:51:19', 0),
(94, 97, 58, 51, 'Estadística', 'Ciencias', 5, '2026-05-21 17:51:19', 0),
(95, 98, 58, 51, 'Estadística', 'Ciencias', 5, '2026-05-21 17:51:19', 0),
(96, 99, 58, 51, 'Estadística', 'Historia', 5, '2026-05-21 17:51:22', 0),
(97, 100, 58, 51, 'Estadística', 'Historia', 5, '2026-05-21 17:51:22', 0),
(98, 101, 58, 51, 'Estadística', 'Historia', 5, '2026-05-21 17:51:22', 0),
(99, 102, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(100, 103, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(101, 104, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(102, 105, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(103, 106, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(104, 107, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(105, 108, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(106, 109, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(107, 110, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(108, 111, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(109, 112, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(110, 113, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(111, 114, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(112, 115, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(113, 116, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(114, 117, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(115, 118, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(116, 119, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(117, 120, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(118, 121, 79, 49, 'Física', 'Ciencias', 5, '2026-05-21 17:55:06', 0),
(119, 122, 30, 17, 'Historia', 'Razonamiento', 4, '2026-05-21 18:23:09', 0),
(120, 123, 30, 17, 'Historia', 'Razonamiento', 4, '2026-05-21 18:23:09', 0),
(121, 124, 30, 17, 'Historia', 'Razonamiento', 4, '2026-05-21 18:23:09', 0),
(122, 125, 30, 17, 'Historia', 'Razonamiento', 4, '2026-05-21 18:23:09', 0),
(123, 126, 30, 17, 'Historia', 'Razonamiento', 4, '2026-05-21 18:23:09', 0),
(124, 127, 30, 17, 'Historia', 'Razonamiento', 4, '2026-05-21 18:23:09', 0),
(125, 128, 30, 17, 'Historia', 'Razonamiento', 4, '2026-05-21 18:23:09', 0),
(126, 129, 30, 17, 'Historia', 'Razonamiento', 4, '2026-05-21 18:23:09', 0),
(127, 130, 30, 17, 'Historia', 'Razonamiento', 4, '2026-05-21 18:23:09', 0),
(128, 131, 30, 17, 'Historia', 'Razonamiento', 4, '2026-05-21 18:23:09', 0),
(129, 132, 30, 17, 'Historia', 'Razonamiento', 4, '2026-05-21 18:23:09', 0),
(130, 133, 30, 17, 'Historia', 'Razonamiento', 4, '2026-05-21 18:23:09', 0),
(131, 134, 44, 23, 'Marketing', 'Matemática', 5, '2026-05-21 18:32:04', 0),
(132, 135, 44, 23, 'Marketing', 'Matemática', 5, '2026-05-21 18:32:04', 0),
(133, 136, 44, 23, 'Marketing', 'Matemática', 5, '2026-05-21 18:32:04', 0),
(134, 137, 44, 23, 'Marketing', 'Matemática', 5, '2026-05-21 18:32:04', 0),
(135, 138, 44, 23, 'Marketing', 'Matemática', 5, '2026-05-21 18:32:04', 0),
(136, 139, 44, 23, 'Marketing', 'Matemática', 5, '2026-05-21 18:32:04', 0),
(137, 140, 44, 23, 'Marketing', 'Matemática', 5, '2026-05-21 18:32:04', 0),
(138, 141, 44, 23, 'Marketing', 'Matemática', 5, '2026-05-21 18:32:04', 0),
(139, 142, 92, 28, 'Ingeniería Industrial', 'Matemática', 5, '2026-05-21 19:24:58', 0),
(140, 143, 92, 28, 'Ingeniería Industrial', 'Matemática', 5, '2026-05-21 19:24:58', 0),
(141, 144, 92, 28, 'Ingeniería Industrial', 'Matemática', 5, '2026-05-21 19:24:58', 0),
(142, 145, 92, 28, 'Ingeniería Industrial', 'Matemática', 5, '2026-05-21 19:24:58', 0),
(143, 146, 92, 28, 'Ingeniería Industrial', 'Matemática', 5, '2026-05-21 19:24:58', 0),
(144, 147, 92, 28, 'Ingeniería Industrial', 'Matemática', 5, '2026-05-21 19:24:58', 0),
(145, 148, 92, 28, 'Ingeniería Industrial', 'Matemática', 5, '2026-05-21 19:24:58', 0),
(146, 149, 92, 28, 'Ingeniería Industrial', 'Historia', 5, '2026-05-21 19:25:06', 0),
(147, 150, 92, 28, 'Ingeniería Industrial', 'Historia', 5, '2026-05-21 19:25:06', 0),
(148, 151, 92, 28, 'Ingeniería Industrial', 'Historia', 5, '2026-05-21 19:25:06', 0),
(149, 152, 92, 28, 'Ingeniería Industrial', 'Historia', 5, '2026-05-21 19:25:06', 0),
(150, 153, 92, 28, 'Ingeniería Industrial', 'Historia', 5, '2026-05-21 19:25:06', 0);

-- --------------------------------------------------------

--
-- Table structure for table `proctoring_eventos`
--

CREATE TABLE `proctoring_eventos` (
  `id` int(11) NOT NULL,
  `alumno_id` int(11) NOT NULL,
  `colegio_id` int(11) DEFAULT NULL COMMENT 'Tenant',
  `intento_id` int(11) DEFAULT NULL,
  `tipo_evento` enum('warning_no_face','warning_multiple_faces','identity_mismatch','exam_terminated','snapshot_ok') NOT NULL,
  `similitud` decimal(5,4) DEFAULT NULL COMMENT 'Score de similitud facial (0.0 - 1.0)',
  `snapshot` mediumtext DEFAULT NULL COMMENT 'Imagen base64 del momento del evento',
  `ip_address` varchar(45) DEFAULT NULL,
  `creado_en` datetime DEFAULT current_timestamp(),
  `examen_id` int(11) DEFAULT NULL,
  `simulacro_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `proctoring_eventos`
--

INSERT INTO `proctoring_eventos` (`id`, `alumno_id`, `colegio_id`, `intento_id`, `tipo_evento`, `similitud`, `snapshot`, `ip_address`, `creado_en`, `examen_id`, `simulacro_id`) VALUES
(1, 1, 81, 6, 'exam_terminated', NULL, 'data:image/jpeg;base64,[encoded data, 24040 characters]', '::1', '2026-04-24 22:03:32', NULL, NULL),
(2, 3, 81, 9, 'exam_terminated', NULL, 'data:image/jpeg;base64,[encoded data, 23744 characters]', '::1', '2026-04-25 00:18:35', NULL, NULL);
INSERT INTO `proctoring_eventos` (`id`, `alumno_id`, `colegio_id`, `intento_id`, `tipo_evento`, `similitud`, `snapshot`, `ip_address`, `creado_en`, `examen_id`, `simulacro_id`) VALUES
(3, 3, 81, 10, 'exam_terminated', NULL, 'data:image/jpeg;base64,[encoded data, 24288 characters]', '::1', '2026-04-25 00:18:44', NULL, NULL),
(4, 3, 81, 11, 'exam_terminated', NULL, 'data:image/jpeg;base64,[encoded data, 25188 characters]', '::1', '2026-04-25 00:35:49', NULL, NULL);
INSERT INTO `proctoring_eventos` (`id`, `alumno_id`, `colegio_id`, `intento_id`, `tipo_evento`, `similitud`, `snapshot`, `ip_address`, `creado_en`, `examen_id`, `simulacro_id`) VALUES
(5, 3, 81, 12, 'exam_terminated', NULL, 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAARCAHgAoADASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAf/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AJ+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2Q==', '::1', '2026-04-25 00:49:57', NULL, NULL),
(6, 3, 81, 13, 'exam_terminated', NULL, 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAARCAHgAoADASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAf/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AJ+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2Q==', '::1', '2026-04-25 12:01:30', NULL, NULL),
(7, 3, 81, 14, 'exam_terminated', NULL, 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAARCAHgAoADASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAf/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AJ+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2Q==', '::1', '2026-04-25 12:25:20', NULL, NULL),
(8, 3, 81, 15, 'exam_terminated', NULL, 'data:image/jpeg;base64,[encoded data, 15280 characters]', '::1', '2026-04-25 12:53:33', NULL, NULL),
(9, 3, 81, 16, 'exam_terminated', NULL, 'data:image/jpeg;base64,[encoded data, 18716 characters]', '::1', '2026-04-25 12:54:14', NULL, NULL),
(10, 3, 81, 17, 'exam_terminated', NULL, 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAARCAHgAoADASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAf/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AJ+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2Q==', '::1', '2026-04-25 12:59:03', NULL, NULL);
