Estructura de las Tablas de la Base de Datos: cursosla_cursos
Tabla: acceso_alumnos_contenido
- id: int NOT NULL AUTO_INCREMENT
- alumno_id: int NOT NULL
- curso_id: int NOT NULL
- tema_id: int DEFAULT NULL
- subtema_id: int DEFAULT NULL
- tipo_bloqueo: enum('curso','tema','subtema') NOT NULL
- estado: enum('activo','inactivo') DEFAULT 'activo'
- fecha_bloqueo: datetime DEFAULT NULL
- bloqueado_por: varchar(100) DEFAULT NULL
- motivo_bloqueo: text
- fecha_creacion: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- modo: enum('bloqueado','desbloqueado') DEFAULT NULL
Tabla: accesos_aula_virtual
- id: int NOT NULL AUTO_INCREMENT
- alumno_id: int NOT NULL
- curso_id: int NOT NULL
- inscripcion_id: int NOT NULL
- fecha_acceso: datetime NOT NULL
- fecha_salida: datetime DEFAULT NULL COMMENT 'Fecha y hora en que el alumno sale o cierra la página.'
- duracion_segundos: int DEFAULT NULL COMMENT 'Duración total de la sesión en segundos.'
- ip_acceso: varchar(50) DEFAULT NULL
- agente_usuario: varchar(255) DEFAULT NULL
- modo: enum('acceso_exitoso','acceso_denegado','sesion_activa','sesion_cerrada') DEFAULT 'acceso_exitoso'
- estado: enum('activo','inactivo') NOT NULL DEFAULT 'activo'
Tabla: alumnos
- id: int NOT NULL AUTO_INCREMENT
- rut: varchar(20) NOT NULL
- nombre: varchar(100) NOT NULL
- apellido_paterno: varchar(100) NOT NULL
- apellido_materno: varchar(100) DEFAULT NULL
- fecha_nacimiento: date DEFAULT NULL
- direccion: text
- telefono: varchar(20) DEFAULT NULL
- correo: varchar(100) DEFAULT NULL
- sexo: enum('M','F','O') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT 'O'
- observaciones: text
- estado: enum('activo','inactivo') DEFAULT 'activo'
- fecha_registro: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- comuna: varchar(100) DEFAULT NULL
- ciudad: varchar(100) DEFAULT NULL
- region: varchar(100) DEFAULT NULL
- foto_perfil: varchar(255) DEFAULT NULL
- modo: enum('nuevo','regular','irregular','egresado','desertor') DEFAULT 'nuevo'
- trato_preferido: varchar(50) DEFAULT NULL COMMENT 'Preferencia de trato del alumno (ej: "nombre", "Sr.") almacenada por AVI'
Tabla: analisis_bloom_log
- id: int NOT NULL AUTO_INCREMENT
- subtema_id: int NOT NULL DEFAULT '0'
- nombre_archivo: varchar(255) NOT NULL
- fecha_analisis: datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
- veredicto_ia: longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci
- resultado_json_completo: json NOT NULL
- texto_markdown: longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL
Tabla: asistencias_alumno
- id: int NOT NULL AUTO_INCREMENT
- inscripcion_id: int NOT NULL
- fecha_clase: date NOT NULL
- asistio: tinyint(1) DEFAULT '0'
- justificacion: text
- observaciones: text
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('presente','ausente','justificado','retardo') DEFAULT 'presente'
Tabla: avi_conversaciones
- id: int NOT NULL AUTO_INCREMENT
- alumno_id: int NOT NULL COMMENT 'ID del alumno que participa en la conversación'
- curso_id: int NOT NULL COMMENT 'ID del curso en el que se produjo la conversación'
- rol_emisor: enum('alumno','ia') NOT NULL COMMENT 'Indica si el mensaje fue del alumno o de la IA'
- contenido_mensaje: text NOT NULL COMMENT 'El texto del mensaje enviado o recibido'
- ip_origen: varchar(45) DEFAULT NULL COMMENT 'Dirección IP del alumno al momento de la consulta'
- timestamp: timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Fecha y hora exactas del mensaje'
Tabla: avi_knowledge_base
- id: int NOT NULL AUTO_INCREMENT
- pregunta_clave: varchar(255) NOT NULL COMMENT 'Palabras clave o pregunta de ejemplo para buscar'
- respuesta: text NOT NULL COMMENT 'La respuesta oficial y detallada que servirá de contexto a la IA'
- categoria: varchar(100) DEFAULT 'General' COMMENT 'Categoría de la pregunta (SENCE, Plataforma, Cursos, etc.)'
- fecha_creacion: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- fecha_actualizacion: timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Tabla: bolsa_categorias
- id: int NOT NULL AUTO_INCREMENT
- nombre: varchar(100) NOT NULL
- descripcion: text
- icono: varchar(50) DEFAULT NULL
Tabla: bolsa_documentos
- id: int NOT NULL AUTO_INCREMENT
- id_usuario: int NOT NULL
- tipo: enum('cv','certificado','titulo','carta','otro') NOT NULL
- nombre: varchar(150) NOT NULL
- ruta_archivo: varchar(255) NOT NULL
- fecha_subida: datetime NOT NULL
- tamaño: int NOT NULL
- formato: varchar(10) NOT NULL
- descripcion: text
Tabla: bolsa_empresas
- id: int NOT NULL AUTO_INCREMENT
- id_usuario: int NOT NULL
- razon_social: varchar(150) NOT NULL
- rut_empresa: varchar(15) NOT NULL
- giro: varchar(150) DEFAULT NULL
- direccion: varchar(255) DEFAULT NULL
- comuna: varchar(50) DEFAULT NULL
- ciudad: varchar(50) DEFAULT NULL
- region: varchar(50) DEFAULT NULL
- telefono: varchar(20) DEFAULT NULL
- sitio_web: varchar(255) DEFAULT NULL
- logo: varchar(255) DEFAULT NULL
- descripcion: text
- verificada: tinyint(1) NOT NULL DEFAULT '0'
Tabla: bolsa_envio_correo
- id: int NOT NULL AUTO_INCREMENT
- id_usuario: int NOT NULL
- fecha_envio: datetime NOT NULL
- tipo_correo: varchar(50) NOT NULL
- asunto: varchar(255) NOT NULL
- contenido: text NOT NULL
- email_destino: varchar(255) NOT NULL
- estado: varchar(20) NOT NULL
Tabla: bolsa_experiencia_laboral
- id: int NOT NULL AUTO_INCREMENT
- id_usuario: int NOT NULL
- empresa: varchar(150) NOT NULL
- cargo: varchar(100) NOT NULL
- funciones: text
- fecha_inicio: date NOT NULL
- fecha_fin: date DEFAULT NULL
- trabajo_actual: tinyint(1) NOT NULL DEFAULT '0'
- referencia_nombre: varchar(100) DEFAULT NULL
- referencia_contacto: varchar(100) DEFAULT NULL
Tabla: bolsa_formacion_academica
- id: int NOT NULL AUTO_INCREMENT
- id_usuario: int NOT NULL
- institucion: varchar(150) NOT NULL
- titulo_obtenido: varchar(150) NOT NULL
- nivel: enum('técnico','profesional','postgrado','doctorado') NOT NULL
- fecha_inicio: date NOT NULL
- fecha_fin: date DEFAULT NULL
- en_curso: tinyint(1) NOT NULL DEFAULT '0'
- descripcion: text
Tabla: bolsa_ofertas_categorias
- id: int NOT NULL AUTO_INCREMENT
- id_oferta: int NOT NULL
- id_categoria: int NOT NULL
Tabla: bolsa_ofertas_trabajo
- id: int NOT NULL AUTO_INCREMENT
- id_empresa: int NOT NULL
- titulo: varchar(150) NOT NULL
- descripcion: text NOT NULL
- requisitos: text
- responsabilidades: text
- salario_min: int DEFAULT NULL
- salario_max: int DEFAULT NULL
- mostrar_salario: tinyint(1) NOT NULL DEFAULT '0'
- tipo_contrato: enum('indefinido','plazo fijo','honorarios','part-time') NOT NULL
- modalidad: enum('presencial','remoto','híbrido') NOT NULL
- comuna: varchar(50) DEFAULT NULL
- ciudad: varchar(50) NOT NULL
- region: varchar(50) NOT NULL
- fecha_publicacion: datetime NOT NULL
- fecha_expiracion: date NOT NULL
- estado: enum('activa','cerrada','finalizada') NOT NULL DEFAULT 'activa'
- vacantes: int NOT NULL DEFAULT '1'
- destacada: tinyint(1) NOT NULL DEFAULT '0'
Tabla: bolsa_perfiles_profesionales
- id: int NOT NULL AUTO_INCREMENT
- id_usuario: int NOT NULL
- rut: varchar(15) DEFAULT NULL
- fecha_nacimiento: date DEFAULT NULL
- direccion: varchar(255) DEFAULT NULL
- comuna: varchar(50) DEFAULT NULL
- ciudad: varchar(50) DEFAULT NULL
- region: varchar(50) DEFAULT NULL
- profesion: varchar(100) DEFAULT NULL
- titulo: varchar(150) DEFAULT NULL
- resumen: text
- aspiracion_salarial: int DEFAULT NULL
- disponibilidad: enum('inmediata','plazo','a definir') DEFAULT NULL
- foto_perfil: varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT 'img/hombre_sin_foto.jpg'
- linkedin: varchar(255) DEFAULT NULL
- sitio_web: varchar(255) DEFAULT NULL
Tabla: bolsa_postulaciones
- id: int NOT NULL AUTO_INCREMENT
- id_oferta: int NOT NULL
- id_usuario: int NOT NULL
- fecha_postulacion: datetime NOT NULL
- estado: enum('pendiente','revisada','preseleccionada','entrevista','rechazada','contratada') NOT NULL DEFAULT 'pendiente'
- carta_presentacion: text
- cv_seleccionado: int DEFAULT NULL
- comentarios_empresa: text
- fecha_actualizacion: datetime DEFAULT NULL
Tabla: bolsa_usuarios
- id: int NOT NULL AUTO_INCREMENT
- email: varchar(100) NOT NULL
- rut: varchar(15) DEFAULT NULL
- password: varchar(255) NOT NULL
- nombre_completo: varchar(150) NOT NULL
- telefono: varchar(20) NOT NULL
- fecha_registro: datetime NOT NULL
- ultimo_acceso: datetime DEFAULT NULL
- estado: enum('activo','inactivo','pendiente') NOT NULL DEFAULT 'pendiente'
- tipo_usuario: enum('profesional','empresa','admin') NOT NULL DEFAULT 'profesional'
- token_recuperacion: varchar(100) DEFAULT NULL
- token_expira: datetime DEFAULT NULL
Tabla: bolsa_usuarios_temp
- id: int NOT NULL AUTO_INCREMENT
- nombre_completo: varchar(150) NOT NULL
- email: varchar(100) NOT NULL
- telefono: varchar(20) NOT NULL
- password: varchar(255) NOT NULL
- rut: varchar(15) NOT NULL
- fecha_registro: datetime NOT NULL
- codigo_verificacion: varchar(10) NOT NULL
- expira: datetime NOT NULL
- foto_perfil_b64: longtext
Tabla: chat_aula_mensajes
- id: int NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- alumno_id: int NOT NULL
- nombre_alumno_emisor: varchar(200) NOT NULL
- mensaje_chat: text NOT NULL
- timestamp_mensaje: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- estado: enum('activo','inactivo') DEFAULT 'activo'
Tabla: contacto_conversaciones
- id: int NOT NULL AUTO_INCREMENT
- contacto_id: int NOT NULL
- fecha_mensaje: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- mensaje_contenido: text NOT NULL
- tipo_emisor: enum('admin','sistema') DEFAULT 'admin'
- nombre_emisor: varchar(100) DEFAULT NULL
- estado: enum('activo','inactivo') DEFAULT 'activo'
Tabla: contactos_web
- id: int NOT NULL AUTO_INCREMENT
- nombre: varchar(150) NOT NULL
- email: varchar(150) NOT NULL
- telefono: varchar(25) DEFAULT NULL
- asunto: varchar(255) NOT NULL
- mensaje: text NOT NULL
- fecha_contacto: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- ip_origen: varchar(45) DEFAULT NULL
- modo: enum('pendiente','leido','respondido','cerrado') DEFAULT 'pendiente'
- estado: enum('activo','inactivo') DEFAULT 'activo'
- fecha_actualizacion_modo: timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
- admin_respuesta: text
- respondido_por: varchar(100) DEFAULT NULL
Tabla: correos_cobranza
- id: int NOT NULL AUTO_INCREMENT
- fecha_envio: datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
- alumno_id: int NOT NULL
- curso_id: int NOT NULL
- mensaje_enviado: text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL
- estado: varchar(20) NOT NULL DEFAULT 'activo'
Tabla: correos_pagos
- id: int NOT NULL AUTO_INCREMENT
- profesor_id: int NOT NULL
- curso_id: int NOT NULL
- fecha_envio: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- enviado_por: varchar(100) DEFAULT NULL
Tabla: costos_curso
- id: int NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- personal_instruccion: decimal(10,2) DEFAULT '0.00'
- material_consumo: decimal(10,2) DEFAULT '0.00'
- medios_material: decimal(10,2) DEFAULT '0.00'
- utilizacion_local: decimal(10,2) DEFAULT '0.00'
- utilizacion_equipos: decimal(10,2) DEFAULT '0.00'
- movilizacion_viaticos: decimal(10,2) DEFAULT '0.00'
- gastos_generales: decimal(10,2) DEFAULT '0.00'
- utilidad: decimal(10,2) DEFAULT '0.00'
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('estimado','confirmado','ajustado','finalizado') DEFAULT 'estimado'
- por_gg: decimal(10,1) NOT NULL DEFAULT '0.0'
- por_uti: decimal(10,1) NOT NULL DEFAULT '0.0'
Tabla: cuotas
- id: int NOT NULL AUTO_INCREMENT
- inscripcion_id: int NOT NULL
- numero_cuota: int NOT NULL COMMENT 'Ej: 0 para el pie, 1 para la primera cuota, etc.'
- monto_cuota: decimal(10,2) NOT NULL
- fecha_vencimiento: date NOT NULL
- estado: enum('pendiente','pagada','atrasada','anulada') NOT NULL DEFAULT 'pendiente'
- pago_id: int DEFAULT NULL COMMENT 'Vincula al pago específico que cubrió esta cuota'
Tabla: cursos_profesores
- id: int NOT NULL AUTO_INCREMENT
- profesor_id: int NOT NULL
- curso_id: int NOT NULL
- fecha_asignacion: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- observaciones: text
- remuneracion: decimal(10,2) DEFAULT NULL
- tipo_remuneracion: enum('hora','clase','total','otro') DEFAULT 'hora'
- forma_pago: enum('transferencia','cheque','efectivo','otro') DEFAULT 'transferencia'
- fecha_inicio: date DEFAULT NULL
- fecha_fin: date DEFAULT NULL
- horas_asignadas: int DEFAULT NULL
- calendario_clases: text
- numero_boleta: varchar(50) DEFAULT NULL
- fecha_boleta: date DEFAULT NULL
- monto_boleta: decimal(10,2) DEFAULT NULL
- rut_boleta: varchar(20) DEFAULT NULL
- cuenta_banco: varchar(100) DEFAULT NULL
- tipo_cuenta: varchar(50) DEFAULT NULL
- banco: varchar(100) DEFAULT NULL
- condiciones_pactadas: text
- documentos_requeridos: text
- documentos_entregados: text
- modo: enum('asignado','finalizado','cancelado') DEFAULT NULL
- estado: enum('activo','inactivo') DEFAULT 'activo'
Tabla: cursos_sence
- id: int NOT NULL AUTO_INCREMENT
- rut: varchar(20) DEFAULT NULL
- registro_nacional: varchar(50) DEFAULT NULL
- modalidad_instruccion: varchar(255) DEFAULT NULL
- tipo_instruccion: varchar(255) DEFAULT NULL
- tipo_actividad: varchar(50) DEFAULT 'Curso'
- nombre_actividad: varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL
- fundamentacion_tecnica: text
- poblacion_objetivo: text
- num_participantes: int DEFAULT '0'
- requisitos_ingreso: text
- objetivos_generales: text
- metodo_ensenanza: text
- evaluacion: text
- porcentaje_asistencia: int DEFAULT '0'
- infraestructura: text
- equipamiento: text
- total_horas_teoricas: int DEFAULT '0'
- total_horas_practicas: int DEFAULT '0'
- total_horas_elearning: int DEFAULT '0'
- tipo_elearning_detalle: enum('Asincrónico','Sincrónico','Mixto','Presencial') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'Detalle específico de la modalidad e-learning principal del curso'
- total_general_horas: int DEFAULT '0'
- valor_total: int DEFAULT '0'
- valor_participante: int DEFAULT '0'
- valor_franquicia: int DEFAULT '0'
- nombre_representante: varchar(255) DEFAULT NULL
- fecha_creacion: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- estado: enum('activo','inactivo') DEFAULT 'activo'
- imagen_curso: varchar(255) DEFAULT NULL
- boton_pago: text
- codigo_oferta_sence: varchar(100) DEFAULT NULL COMMENT 'Código de la Oferta SENCE (entregado por SENCE)'
- codigo_grupo_sence: varchar(100) DEFAULT NULL COMMENT 'Código del Grupo SENCE (si aplica, entregado por SENCE)'
- id_sistema_sence: int DEFAULT '1350' COMMENT 'ID del Sistema SENCE (valor fijo 1350 según instructivo)'
- token_sence: varchar(255) DEFAULT NULL COMMENT 'Token de autenticación SENCE (entregado por SENCE)'
- rut_otec_sence: varchar(20) DEFAULT NULL COMMENT 'RUT de la OTEC para SENCE (entregado por SENCE)'
- modo: enum('planificado','abierto','en_desarrollo','cerrado','completado') DEFAULT 'planificado'
- beneficios_clave: text COMMENT 'Párrafo o lista de beneficios clave que el alumno obtendrá. Se usa en la página de presentación del curso.'
- resumen: text
- objetivo: text
- codigo_curso_sence: text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci
- criterio_evaluacion: text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci
- manual: longtext
- area: varchar(100) DEFAULT NULL
- recomendacion: longtext
Tabla: descuentos
- id: int NOT NULL AUTO_INCREMENT
- codigo: varchar(50) NOT NULL COMMENT 'El código que el usuario ingresa'
- descripcion: text
- tipo: enum('porcentaje','monto_fijo') NOT NULL
- valor: decimal(10,2) NOT NULL
- fecha_expiracion: date DEFAULT NULL
- usos_maximos: int DEFAULT NULL COMMENT 'NULL para ilimitado'
- usos_actuales: int NOT NULL DEFAULT '0'
- estado: enum('activo','inactivo','expirado') NOT NULL DEFAULT 'activo'
Tabla: descuentos_alumno
- id: int NOT NULL AUTO_INCREMENT
- inscripcion_id: int NOT NULL
- monto_descuento: decimal(10,2) DEFAULT NULL
- porcentaje_descuento: decimal(5,2) DEFAULT NULL
- motivo: varchar(255) DEFAULT NULL
- autorizado_por: int DEFAULT NULL COMMENT 'ID del administrador que aprueba'
- fecha_aplicacion: datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
- estado: varchar(20) NOT NULL DEFAULT 'activo'
Tabla: documentos_alumno
- id: int NOT NULL AUTO_INCREMENT
- alumno_id: int NOT NULL
- subtema_id: int NOT NULL
- nombre_archivo: varchar(255) NOT NULL
- ruta_archivo: varchar(255) NOT NULL
- tipo_archivo: varchar(50) DEFAULT NULL
- comentarios: text
- fecha_subida: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- revisado: tinyint(1) DEFAULT '0'
- comentarios_profesor: text
- fecha_revision: datetime DEFAULT NULL
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('pendiente_revision','revisado','aprobado','rechazado') DEFAULT 'pendiente_revision'
Tabla: documentos_subtema
- id: int NOT NULL AUTO_INCREMENT
- subtema_id: int NOT NULL
- nombre_archivo: varchar(255) NOT NULL
- ruta_archivo: varchar(255) NOT NULL
- tipo_archivo: varchar(50) DEFAULT NULL
- descripcion: text
- subido_por: int DEFAULT NULL
- es_profesor: tinyint(1) DEFAULT '1'
- fecha_subida: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('borrador','publicado','actualizado','archivado') DEFAULT 'borrador'
Tabla: documentos_tema
- id: int NOT NULL AUTO_INCREMENT
- tema_id: int NOT NULL
- nombre_archivo: varchar(255) NOT NULL
- ruta_archivo: varchar(255) NOT NULL
- tipo_archivo: varchar(50) DEFAULT NULL
- descripcion: text
- subido_por: int NOT NULL
- es_administrador: tinyint(1) DEFAULT '1'
- fecha_subida: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('borrador','publicado','actualizado','archivado') DEFAULT 'borrador'
Tabla: equipamiento_curso
- id: int NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- descripcion: varchar(255) DEFAULT NULL
- cantidad: int DEFAULT '0'
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('planificado','abierto','en_desarrollo','cerrado','completado') DEFAULT 'planificado'
Tabla: evaluacion_propiedad
- id: int NOT NULL AUTO_INCREMENT
- fecha: datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
- direccion: varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- sector: varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- comuna: varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- ciudad: varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- pais: varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- caracteristicas: text COLLATE utf8mb4_unicode_ci
- antiguedad: int DEFAULT NULL
- evaluacion: longtext COLLATE utf8mb4_unicode_ci
Tabla: evaluaciones_manuales
- id: int NOT NULL AUTO_INCREMENT
- id_curso: int DEFAULT NULL
- fecha_evaluacion: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- fecha_actualizacion: timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
- proveedor_ia: varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
- puntuacion_global: decimal(5,2) DEFAULT '0.00'
- nivel_adecuacion: enum('Básico','Intermedio','Avanzado','Excelente') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
- puntuacion_estructura: decimal(5,2) NOT NULL DEFAULT '0.00'
- puntuacion_contenido_tecnico: decimal(5,2) NOT NULL DEFAULT '0.00'
- puntuacion_metodologia: decimal(5,2) NOT NULL DEFAULT '0.00'
- puntuacion_claridad: decimal(5,2) NOT NULL DEFAULT '0.00'
- puntuacion_aplicabilidad: decimal(5,2) NOT NULL DEFAULT '0.00'
- puntuacion_taxonomia_bloom: decimal(5,2) NOT NULL DEFAULT '0.00'
- bloom_recordar: decimal(5,2) NOT NULL DEFAULT '0.00'
- bloom_comprender: decimal(5,2) NOT NULL DEFAULT '0.00'
- bloom_aplicar: decimal(5,2) NOT NULL DEFAULT '0.00'
- bloom_analizar: decimal(5,2) NOT NULL DEFAULT '0.00'
- bloom_evaluar: decimal(5,2) NOT NULL DEFAULT '0.00'
- bloom_crear: decimal(5,2) NOT NULL DEFAULT '0.00'
- analisis_estructura: text COLLATE utf8mb4_unicode_ci
- analisis_contenido_tecnico: text COLLATE utf8mb4_unicode_ci
- analisis_metodologia: text COLLATE utf8mb4_unicode_ci
- analisis_claridad: text COLLATE utf8mb4_unicode_ci
- analisis_aplicabilidad: text COLLATE utf8mb4_unicode_ci
- analisis_taxonomia_bloom: text COLLATE utf8mb4_unicode_ci
- resumen_ejecutivo: text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
- fortalezas_principales: text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
- recomendaciones_mejora: text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
- configuracion_prompt: text COLLATE utf8mb4_unicode_ci
- estado: varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
- modelo_ia_utilizado: varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
- version_evaluador: varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '1.0'
- tokens_utilizados: int DEFAULT '0'
- costo_evaluacion: decimal(10,1) DEFAULT '0.0'
Tabla: examen_curso
- id: int NOT NULL
- id_curso: int NOT NULL DEFAULT '0'
- id_profesor: int NOT NULL DEFAULT '0'
- id_tema: int NOT NULL DEFAULT '0'
- tema: varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
- area: varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
- pregunta: text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
- respuesta: varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
- desarrollo: text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
- documento: varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
- imagen: varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
- a: text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
- b: text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
- c: text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
- d: text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
- e: text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
- identificador: varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
- modo: varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
- id_empresa: int NOT NULL DEFAULT '0'
- clasificacion: varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
- marca: varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
Tabla: examenes
- id: int NOT NULL AUTO_INCREMENT
- usuario_id: int NOT NULL
- fecha_ing: datetime NOT NULL
- fec_examen: date NOT NULL
- tipo_examen: varchar(100) NOT NULL
- medico: varchar(255) DEFAULT NULL
- comentario: text
- url: varchar(255) NOT NULL
- informe_ia: text
- informe_medico: text
- recomendaciones: text
- traduccion_receta: text
Tabla: faq_consultas_usuario
- id: int NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- usuario_id: int NOT NULL
- tipo_usuario: enum('alumno','profesor') NOT NULL
- texto_consulta: text NOT NULL
- estado_consulta: enum('pendiente','respondida','descartada') NOT NULL DEFAULT 'pendiente'
- faq_pregunta_id: int DEFAULT NULL
- fecha_consulta: timestamp NULL DEFAULT CURRENT_TIMESTAMP
Tabla: faq_imagenes
- id: int NOT NULL AUTO_INCREMENT
- faq_id: int NOT NULL
- tipo_asociacion: enum('pregunta','respuesta') NOT NULL
- ruta_imagen: varchar(255) NOT NULL
- descripcion_img: varchar(255) DEFAULT NULL
- orden: int DEFAULT '0'
Tabla: faq_preguntas
- id: int NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- pregunta: text NOT NULL
- respuesta: text NOT NULL
- categoria: varchar(100) DEFAULT NULL
- palabras_clave: varchar(255) DEFAULT NULL
- orden: int DEFAULT '0'
- estado: enum('activo','inactivo') NOT NULL DEFAULT 'activo'
- fecha_creacion: timestamp NULL DEFAULT CURRENT_TIMESTAMP
Tabla: ia_generaciones_cursos
- id: int NOT NULL AUTO_INCREMENT
- fecha_creacion: datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
- inputs_formulario: json DEFAULT NULL COMMENT 'Objeto JSON con todos los valores del formulario original.'
- prompt_enviado: longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'El prompt completo que se envió a la API de Gemini.'
- json_respuesta_ia: json DEFAULT NULL COMMENT 'El objeto JSON completo y limpio que devolvió la IA.'
- html_informe_generado: longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'El código HTML del informe visual que se generó.'
Tabla: ia_preguntas_generadas
- id: int NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- subtema: varchar(255) NOT NULL
- pregunta_texto: text NOT NULL
- alternativas: json NOT NULL
- respuesta_correcta: varchar(255) NOT NULL
- fecha_creacion: timestamp NULL DEFAULT CURRENT_TIMESTAMP
Tabla: incidentes_conexion
- id_evento: int unsigned NOT NULL AUTO_INCREMENT
- tipo_evento: enum('offline_cliente','servidor_caido','bd_caida','restaurado') COLLATE utf8mb4_unicode_ci NOT NULL
- detalle: varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- url_pagina: varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- ip_cliente: varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- user_agent: varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- fecha_inicio: datetime NOT NULL
- fecha_fin: datetime DEFAULT NULL
- duracion_ms: int DEFAULT NULL
- latencia_web_ms: int DEFAULT NULL
- latencia_db_ms: int DEFAULT NULL
- reintentos: smallint DEFAULT NULL
- respuesta_http: smallint DEFAULT NULL
- motivo_fallo: varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- endpoint_consultado: varchar(120) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- id_instancia: varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- correlation_id: char(36) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- lat_jitter_ms: int DEFAULT NULL
- lat_p50_ms: int DEFAULT NULL
- lat_p95_ms: int DEFAULT NULL
- lat_p99_ms: int DEFAULT NULL
- tipo_red_cliente: varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- bajada_mbps: decimal(5,2) DEFAULT NULL
- rtt_cliente_ms: int DEFAULT NULL
- cdn_pop: varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- proveedor_cdn: varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- error_mysql_codigo: int DEFAULT NULL
- error_mysql_mensaje: varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- pool_conexiones: varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- endpoint_origen: varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL
Tabla: infraestructura_curso
- id: int NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- descripcion: varchar(255) DEFAULT NULL
- cantidad: int DEFAULT '0'
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('planificado','abierto','en_desarrollo','cerrado','completado') DEFAULT 'planificado'
Tabla: inscripciones_curso
- id: int NOT NULL AUTO_INCREMENT
- alumno_id: int NOT NULL
- curso_id: int NOT NULL
- fecha_inscripcion: date NOT NULL
- usuario_inscriptor: varchar(100) DEFAULT NULL
- codigo_matricula: varchar(50) DEFAULT NULL
- fecha_inicio_clases: date DEFAULT NULL
- fecha_termino: date DEFAULT NULL
- fecha_retiro: date DEFAULT NULL
- motivo_retiro: text
- nota_final: decimal(5,2) DEFAULT NULL
- porcentaje_asistencia: decimal(5,2) DEFAULT '0.00'
- observaciones_academicas: text
- valor_curso: decimal(10,2) DEFAULT '0.00'
- descuento_aplicado: decimal(10,2) DEFAULT '0.00'
- valor_final: decimal(10,2) DEFAULT '0.00'
- estado_pago: enum('pendiente','parcial','pagado') DEFAULT 'pendiente'
- modalidad_pago: enum('contado','cuotas','convenio','beca') DEFAULT 'contado'
- certificado_emitido: tinyint(1) DEFAULT '0'
- fecha_emision_certificado: date DEFAULT NULL
- numero_folio: varchar(50) DEFAULT NULL
- certificado_entregado: tinyint(1) DEFAULT '0'
- fecha_entrega_certificado: date DEFAULT NULL
- materiales_entregados: text
- necesidades_especiales: text
- comentarios_internos: text
- acceso_bloqueado: tinyint(1) DEFAULT '0'
- fecha_bloqueo: datetime DEFAULT NULL
- motivo_bloqueo: text
- modo: enum('inscrito','en_curso','aprobado','reprobado','retirado','suspendido') DEFAULT NULL
- estado: enum('activo','inactivo') DEFAULT 'activo'
- descuento_aplicado_id: int DEFAULT NULL COMMENT 'FK a la tabla descuentos'
Tabla: items_costo_curso
- id: int NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- categoria: varchar(100) DEFAULT NULL
- descripcion: varchar(255) DEFAULT NULL
- cantidad: int DEFAULT '1'
- costo_unitario: decimal(10,2) DEFAULT '0.00'
- costo_total: decimal(10,2) DEFAULT '0.00'
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('planificado','abierto','en_desarrollo','cerrado','completado') DEFAULT 'planificado'
Tabla: log_correcciones
- id: int NOT NULL AUTO_INCREMENT
- fecha: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- usuario: varchar(100) DEFAULT NULL
- tabla: varchar(50) NOT NULL
- registro_id: int NOT NULL
- accion: varchar(100) NOT NULL
- valor_anterior: text
- valor_nuevo: text
- resultado: enum('exitoso','fallido') DEFAULT 'exitoso'
- error: text
- modo: enum('exitoso','fallido','revertido','pendiente') DEFAULT 'exitoso'
Tabla: log_interacciones_ia
- id: int NOT NULL AUTO_INCREMENT
- id_usuario: int NOT NULL DEFAULT '0'
- fecha_solicitud: timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
- request_payload: longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
- response_raw: longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci
- response_text: longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci
- http_status_code: int DEFAULT NULL
- api_call_duration_ms: int DEFAULT NULL
- ip: varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL
- pais: varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
- brouser: text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL
- app: varchar(100) COLLATE utf8mb4_general_ci NOT NULL
- cod_pais: varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL
- ciu_pais: varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL
Tabla: log_notificaciones_perfil
- id: int NOT NULL AUTO_INCREMENT
- alumno_id: int NOT NULL COMMENT 'ID del alumno notificado'
- fecha_envio: timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Fecha y hora del envío'
- tipo_notificacion: varchar(50) NOT NULL COMMENT 'Ej: perfil_incompleto, perfil_completo'
- campos_faltantes_json: text COMMENT 'Lista de campos faltantes en formato JSON'
Tabla: log_sence_envios
- id: int NOT NULL AUTO_INCREMENT
- fecha_envio: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- id_proceso_sence: varchar(255) DEFAULT NULL
- curso_id: int NOT NULL
- estado_envio: enum('exitoso','con_errores','fallido') NOT NULL
- request_payload: longtext
- response_payload: longtext
Tabla: log_sence_errores
- id: int NOT NULL AUTO_INCREMENT
- id_log_sence_envio: int NOT NULL
- rut_alumno_afectado: varchar(20) DEFAULT NULL
- codigo_modulo_afectado: varchar(100) DEFAULT NULL
- codigo_error_sence: varchar(10) DEFAULT NULL
- mensaje_error_sence: text
Tabla: log_visitas
- id_visita: int NOT NULL AUTO_INCREMENT
- fecha_hora: datetime NOT NULL
- direccion_ip: varchar(45) DEFAULT NULL
- user_agent: text
- pagina_visitada: varchar(255) DEFAULT NULL
- pagina_referente: varchar(255) DEFAULT NULL
- id_usuario_conectado: int DEFAULT NULL
- session_id: varchar(255) DEFAULT NULL
Tabla: log_visitas_geoip_cache
- direccion_ip: varchar(45) NOT NULL
- pais: varchar(100) DEFAULT NULL
- region: varchar(100) DEFAULT NULL
- ciudad: varchar(100) DEFAULT NULL
- fecha_consulta: datetime NOT NULL
Tabla: manual_historial
- id: bigint unsigned NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- html: longtext COLLATE utf8mb4_unicode_ci NOT NULL
- creado_en: datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
- ip_origen: varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- user_agent: varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL
Tabla: material_consumo
- id: int NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- descripcion: varchar(255) DEFAULT NULL
- cantidad: int DEFAULT '0'
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('disponible','en_uso','agotado','reordenar') DEFAULT 'disponible'
Tabla: material_participantes
- id: int NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- descripcion: varchar(255) DEFAULT NULL
- cantidad: int DEFAULT '0'
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('preparado','entregado','pendiente','no_disponible') DEFAULT 'preparado'
Tabla: medios_didacticos
- id: int NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- descripcion: varchar(255) DEFAULT NULL
- cantidad: int DEFAULT '0'
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('operativo','en_mantenimiento','dañado','obsoleto') DEFAULT 'operativo'
Tabla: mensajes_alumno
- id: int NOT NULL AUTO_INCREMENT
- alumno_id: int NOT NULL
- fecha: datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
- asunto: varchar(100) NOT NULL
- mensaje: text NOT NULL
- tipo: enum('observacion','aviso','importante') DEFAULT 'observacion'
- leido: enum('si','no') DEFAULT 'no'
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('no_leido','leido','respondido','archivado') DEFAULT 'no_leido'
Tabla: mensajes_alumno_profesor
- id: int NOT NULL AUTO_INCREMENT
- alumno_id: int NOT NULL
- profesor_id: int NOT NULL
- subtema_id: int NOT NULL
- asunto: varchar(255) DEFAULT NULL
- mensaje: text NOT NULL
- publico: tinyint(1) DEFAULT '0'
- fecha_envio: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- leido: enum('si','no') DEFAULT 'no'
- fecha_lectura: datetime DEFAULT NULL
- respondido: tinyint(1) DEFAULT '0'
- mensaje_respuesta: text
- fecha_respuesta: datetime DEFAULT NULL
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('enviado','recibido','leido','respondido') DEFAULT 'enviado'
Tabla: notas_alumno
- id: int NOT NULL AUTO_INCREMENT
- inscripcion_id: int NOT NULL
- evaluacion: varchar(100) NOT NULL
- nota: decimal(5,2) NOT NULL DEFAULT '0.00'
- fecha_evaluacion: date NOT NULL
- observaciones: text
- ponderacion: int DEFAULT '0'
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('parcial','final','recuperatorio','extraordinario') DEFAULT 'parcial'
Tabla: objetivos_contenidos
- id: int NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- objetivo_especifico: text
- contenido: text
- horas_teoricas: int DEFAULT '0'
- horas_practicas: int DEFAULT '0'
- horas_elearning: int DEFAULT '0'
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('planificado','en_desarrollo','cumplido','no_cumplido') DEFAULT 'planificado'
- tema: varchar(200) DEFAULT NULL
- tema_id: int NOT NULL DEFAULT '0'
Tabla: pago_profesores
- id: int NOT NULL AUTO_INCREMENT
- subtema_id: int NOT NULL
- profesor_id: int NOT NULL
- monto_pago: decimal(10,2) NOT NULL DEFAULT '0.00'
- fecha_pago: date NOT NULL
- metodo_pago: enum('transferencia','cheque','efectivo','otro') DEFAULT 'transferencia'
- comprobante_url: varchar(255) DEFAULT NULL
- observaciones: text
- fecha_registro: timestamp NULL DEFAULT CURRENT_TIMESTAMP
Tabla: pagos
- id: int NOT NULL AUTO_INCREMENT
- inscripcion_id: int NOT NULL COMMENT 'Vincula al alumno y curso en la tabla inscripciones_curso'
- monto_pagado: decimal(10,2) NOT NULL
- fecha_pago: datetime NOT NULL
- metodo_pago: enum('transferencia','deposito','mercadopago','webpay','manual_admin','otro') NOT NULL
- id_transaccion_externa: varchar(255) DEFAULT NULL COMMENT 'Para ID de Webpay, MercadoPago, etc.'
- url_comprobante_alumno: varchar(255) DEFAULT NULL COMMENT 'Ruta al archivo subido por el alumno'
- observaciones_admin: text COMMENT 'Notas del administrador sobre el pago'
- registrado_por: int DEFAULT NULL COMMENT 'ID del admin que registró el pago manual'
- estado: varchar(20) NOT NULL DEFAULT 'activo'
Tabla: pagos_alumno
- id: int NOT NULL AUTO_INCREMENT
- inscripcion_id: int NOT NULL
- monto: decimal(10,2) NOT NULL DEFAULT '0.00'
- fecha_pago: date NOT NULL
- tipo_pago: enum('efectivo','transferencia','cheque','tarjeta') DEFAULT 'efectivo'
- comprobante: varchar(100) DEFAULT NULL
- observaciones: text
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('pagado','pendiente','anulado','devuelto') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL
Tabla: pagos_extras
- id: int NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- fecha_pago: date NOT NULL
- monto: decimal(10,2) NOT NULL
- descripcion: varchar(255) NOT NULL
- tipo_pago: enum('ingreso','egreso') NOT NULL DEFAULT 'egreso'
- url: varchar(255) DEFAULT NULL COMMENT 'URL o ruta al documento/comprobante subido'
- fecha_registro: timestamp NULL DEFAULT CURRENT_TIMESTAMP
Tabla: perfiles_ia
- id: int NOT NULL AUTO_INCREMENT
- nombre: varchar(100) NOT NULL
- tema: varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL
- especialidad: varchar(100) NOT NULL
- perfil: text NOT NULL
Tabla: pizarra_curso
- id: int NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- titulo: varchar(255) NOT NULL
- contenido: text NOT NULL
- profesor_id: int DEFAULT NULL
- fecha_publicacion: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- estado: enum('activo','inactivo') DEFAULT 'activo'
- destacado: tinyint(1) DEFAULT '0'
- adjunto_ruta: varchar(255) DEFAULT NULL
- adjunto_nombre: varchar(255) DEFAULT NULL
- editado_por: int DEFAULT NULL COMMENT 'ID del usuario que editó'
- fecha_edicion: datetime DEFAULT NULL COMMENT 'Fecha de la última edición'
- modo: enum('borrador','publicado','destacado','archivado') DEFAULT 'publicado'
Tabla: podcast
- id: int NOT NULL AUTO_INCREMENT
- id_tema: int NOT NULL
- id_curso: int NOT NULL
- id_profesor: int NOT NULL
- url: varchar(200) NOT NULL
- ext: varchar(11) NOT NULL
- texto: varchar(200) NOT NULL
- modo: varchar(100) DEFAULT NULL
- imagen: varchar(200) NOT NULL
- comentario: text NOT NULL
- nombre: varchar(100) NOT NULL
- estado: enum('activo','inactivo') NOT NULL DEFAULT 'activo'
Tabla: pre_inscripciones
- id: int NOT NULL AUTO_INCREMENT
- rut: varchar(12) NOT NULL
- email: varchar(100) NOT NULL
- curso_id: int NOT NULL
- codigo_verificacion: varchar(10) NOT NULL
- fecha_creacion: timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
Tabla: profesor_calificaciones_alumno
- id: int NOT NULL AUTO_INCREMENT
- inscripcion_id: int NOT NULL COMMENT 'Vincula con la tabla de inscripciones'
- profesor_id: int NOT NULL COMMENT 'Profesor que realiza la calificación'
- calificacion_participacion: tinyint(1) DEFAULT NULL COMMENT 'Calificación de 1 a 5 para Participación'
- calificacion_motivacion: tinyint(1) DEFAULT NULL COMMENT 'Calificación de 1 a 5 para Motivación'
- calificacion_iniciativa: tinyint(1) DEFAULT NULL COMMENT 'Calificación de 1 a 5 para Iniciativa'
- comentario: text COMMENT 'Comentario opcional del profesor sobre el alumno'
- fecha_calificacion: datetime NOT NULL
- estado: enum('activo','inactivo') NOT NULL DEFAULT 'activo'
Tabla: profesor_documentos
- id: int NOT NULL AUTO_INCREMENT
- profesor_id: int NOT NULL
- tipo_documento: enum('rut','curriculum','titulo','certificacion','contrato','otros') NOT NULL
- nombre_documento: varchar(255) NOT NULL
- ruta_archivo: varchar(255) NOT NULL
- descripcion: text
- fecha_subida: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- estado: enum('activo','inactivo') DEFAULT 'activo'
- modo: enum('vigente','vencido','en_renovacion','archivado') DEFAULT 'vigente'
Tabla: profesores
- id: int NOT NULL AUTO_INCREMENT
- rut: varchar(20) NOT NULL
- nombre: varchar(100) NOT NULL
- apellido_paterno: varchar(100) NOT NULL
- apellido_materno: varchar(100) DEFAULT NULL
- fecha_nacimiento: date DEFAULT NULL
- especialidad: varchar(255) DEFAULT NULL
- telefono: varchar(20) DEFAULT NULL
- correo: varchar(100) DEFAULT NULL
- direccion: text
- comuna: varchar(100) DEFAULT NULL
- ciudad: varchar(100) DEFAULT NULL
- region: varchar(100) DEFAULT NULL
- cv_resumen: text
- foto_perfil: varchar(255) DEFAULT NULL
- estado: enum('activo','inactivo') DEFAULT 'activo'
- fecha_registro: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- modo: enum('disponible','asignado','licencia','vacaciones') DEFAULT 'disponible'
- reuf: varchar(1) NOT NULL DEFAULT 'n'
Tabla: simula_examen
- id: int NOT NULL AUTO_INCREMENT
- id_alumno: int NOT NULL DEFAULT '0'
- id_curso: int NOT NULL DEFAULT '0'
- fecha: datetime DEFAULT NULL
- evaluacion: decimal(3,1) NOT NULL DEFAULT '0.0'
- id_preguntas: text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
- rut: varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
- id_empresa: int NOT NULL DEFAULT '0'
- socio: varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
Tabla: social_posts_log
- id: bigint NOT NULL AUTO_INCREMENT
- curso_id: bigint NOT NULL
- network: varchar(32) NOT NULL
- medium: varchar(32) NOT NULL
- campaign: varchar(128) NOT NULL
- content_tag: varchar(64) DEFAULT NULL
- shared_url: text NOT NULL
- caption: text
- external_post_id: varchar(128) DEFAULT NULL
- published_by: varchar(128) DEFAULT NULL
- status: varchar(24) NOT NULL DEFAULT 'publicado'
- error_message: text
- created_at: timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
Tabla: subtemas_alumno
- id: int NOT NULL AUTO_INCREMENT
- alumno_id: int NOT NULL
- curso_id: int NOT NULL
- tema_id: int NOT NULL
- subtema_id: int NOT NULL
- visto: tinyint(1) DEFAULT '1'
- fecha_visto: datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
- tiempo_visualizacion: int DEFAULT '0'
- calificacion: int DEFAULT NULL
- comentario: text
- calificacion_contenido: int DEFAULT NULL COMMENT 'Calificación de 1 a 7 para el contenido'
- calificacion_pedagogia: int DEFAULT NULL COMMENT 'Calificación de 1 a 7 para la pedagogía'
- comentario_evaluacion: text COMMENT 'Comentario abierto del alumno sobre el subtema'
- modo: enum('no_iniciado','en_progreso','completado','abandonado') DEFAULT 'no_iniciado'
- estado: enum('activo','inactivo') NOT NULL DEFAULT 'activo'
Tabla: subtemas_curso
- id: int NOT NULL AUTO_INCREMENT
- tema_id: int DEFAULT NULL
- curso_id: int DEFAULT NULL
- profesor_id: int DEFAULT NULL
- titulo: varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
- descripcion: text COLLATE utf8mb4_unicode_ci
- contenido: text COLLATE utf8mb4_unicode_ci
- link_zoom: varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- id_zoom: varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- usuario_zoom: varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- tipo_video: enum('youtube','vimeo','otro') COLLATE utf8mb4_unicode_ci DEFAULT NULL
- url_video: varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- fecha_programada: datetime DEFAULT NULL
- duracion_minutos: int DEFAULT '0'
- horas_teoricas: int DEFAULT '0' COMMENT 'Horas teóricas del subtema'
- horas_practicas: int DEFAULT '0' COMMENT 'Horas prácticas del subtema'
- horas_elearning: int DEFAULT '0' COMMENT 'Horas e-learning del subtema'
- estado: enum('activo','inactivo') COLLATE utf8mb4_unicode_ci DEFAULT 'activo'
- fecha_creacion: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- imagen_subtema: varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- boton_pago: text COLLATE utf8mb4_unicode_ci
- codigo_actividad_sence: varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Código de la Actividad SENCE (generado o mapeado, máx 50 chars)'
- es_obligatorio_sence: tinyint(1) NOT NULL DEFAULT '1' COMMENT 'Indica si el subtema es obligatorio para el avance SENCE'
- tipo_actividad_sence: enum('sincronica','asincronica') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'asincronica' COMMENT 'Clasificación de la actividad para SENCE'
- modo: enum('pendiente','realizado','cancelado') COLLATE utf8mb4_unicode_ci DEFAULT NULL
- es_muestra: tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Marcar con 1 si este subtema es la clase de muestra para la página de presentación.'
- valor_actividad: int NOT NULL DEFAULT '0'
- valor_hora: decimal(11,2) NOT NULL DEFAULT '0.00'
- prompt: text COLLATE utf8mb4_unicode_ci
- charla: text COLLATE utf8mb4_unicode_ci
- token: int NOT NULL DEFAULT '0'
- valor_prompt: int NOT NULL DEFAULT '0'
- valor_charla: int NOT NULL DEFAULT '0'
- presentacion: text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
- que_se_ensenara: text COLLATE utf8mb4_unicode_ci
- que_aprendera: text COLLATE utf8mb4_unicode_ci
- resumen_clase: text COLLATE utf8mb4_unicode_ci
- resumen_audio: varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- contenido_presentacion: longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
- contenido_charla: longtext COLLATE utf8mb4_unicode_ci
- informe_bloom: longtext COLLATE utf8mb4_unicode_ci
- por_bloom: decimal(10,1) NOT NULL DEFAULT '0.0'
- ultima_revision: datetime DEFAULT CURRENT_TIMESTAMP
- quien_reviso: varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL
- verbo: varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
- criterio_evaluacion: text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
- especialista: longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
- indice: text COLLATE utf8mb4_unicode_ci
- perfil_especialista_json: longtext COLLATE utf8mb4_unicode_ci
- area: varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL
Tabla: temas_curso
- id: int NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- titulo: varchar(255) NOT NULL
- descripcion: text
- contenido: text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci
- que_se_ensenara: text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci
- que_aprendera: text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci
- orden: int DEFAULT '0'
- estado: enum('activo','inactivo') DEFAULT 'activo'
- fecha_creacion: timestamp NULL DEFAULT CURRENT_TIMESTAMP
- imagen_tema: varchar(255) DEFAULT NULL
- boton_pago: text
- codigo_modulo_sence: varchar(100) DEFAULT NULL COMMENT 'Código del Módulo SENCE (entregado por SENCE)'
- fecha_inicio_sence: date DEFAULT NULL COMMENT 'Fecha de inicio del módulo para SENCE (si es específica)'
- fecha_fin_sence: date DEFAULT NULL COMMENT 'Fecha de fin del módulo para SENCE (si es específica)'
- modo: enum('planificado','en_desarrollo','completado','pospuesto') DEFAULT 'planificado'
- desc_todas: longtext
- cont_todas: longtext
- ensena_todas: longtext
- aprende_todas: longtext
- sub_todas: text
- ultima_revision: datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
- quien_reviso: varchar(100) DEFAULT NULL
- objetivo: text
- criterio_evaluacion: text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci
- verbo: text
Tabla: testimonios_curso
- id: int NOT NULL AUTO_INCREMENT
- curso_id: int NOT NULL
- alumno_id: int NOT NULL
- nombre_alumno: varchar(200) NOT NULL
- texto_testimonio: text NOT NULL
- foto_alumno: varchar(255) DEFAULT NULL COMMENT 'Ruta a la foto opcional del alumno'
- estado: enum('activo','inactivo') NOT NULL DEFAULT 'inactivo'
- fecha_creacion: timestamp NULL DEFAULT CURRENT_TIMESTAMP
Tabla: usuario_google
- id: int NOT NULL AUTO_INCREMENT
- google_id: varchar(255) COLLATE utf8mb4_general_ci NOT NULL
- nombre: varchar(255) COLLATE utf8mb4_general_ci NOT NULL
- email: varchar(255) COLLATE utf8mb4_general_ci NOT NULL
- foto: varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL
- created_at: timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
- aplicacion: varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL
- ip: varchar(50) COLLATE utf8mb4_general_ci NOT NULL
- browser: text COLLATE utf8mb4_general_ci NOT NULL
Tabla: video_progreso_alumno
- id: int NOT NULL AUTO_INCREMENT
- alumno_id: int NOT NULL
- curso_id: int NOT NULL
- subtema_id: int NOT NULL
- segundos_vistos: decimal(10,2) NOT NULL DEFAULT '0.00'
- estado: enum('iniciado','en_progreso','completado') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'iniciado'
- ultima_actualizacion: timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP