front/Dump20251018.sql

554 lines
26 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CREATE DATABASE IF NOT EXISTS `proyecto_final` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;
USE `proyecto_final`;
-- MySQL dump 10.13 Distrib 8.0.38, for Win64 (x86_64)
--
-- Host: localhost Database: proyecto_final
-- ------------------------------------------------------
-- Server version 8.0.33
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `actividades`
--
DROP TABLE IF EXISTS `actividades`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `actividades` (
`id_actividad` int NOT NULL AUTO_INCREMENT,
`id_categoria` int NOT NULL,
`nombre` varchar(100) NOT NULL,
`descripcion` text,
`duracion_minutos` int NOT NULL,
`dificultad` tinyint NOT NULL DEFAULT '1',
`puntos_base` int NOT NULL DEFAULT '10',
`activo` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`id_actividad`),
KEY `id_categoria` (`id_categoria`),
CONSTRAINT `actividades_ibfk_1` FOREIGN KEY (`id_categoria`) REFERENCES `categorias` (`id_categoria`)
) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `actividades`
--
LOCK TABLES `actividades` WRITE;
/*!40000 ALTER TABLE `actividades` DISABLE KEYS */;
INSERT INTO `actividades` VALUES (1,1,'Estiramiento de cuello','Movimientos suaves de cuello, 5 repeticiones por lado',3,1,10,1),(2,1,'Bailar tu canción','Baila una canción completa para activar el ánimo',4,1,14,1),(3,1,'Caminata corta','Caminar a ritmo cómodo cerca de tu casa o patio',5,1,12,1),(4,1,'Saltos suaves','1020 saltos de tijera a tu ritmo',5,2,14,1),(5,1,'Sentadillas guiadas','2 series de 10 sentadillas',5,2,16,1),(6,1,'Movilidad de hombros','Círculos de hombros y apertura torácica',4,1,12,1),(7,1,'Subir/bajar gradas','Sube y baja escalones con cuidado',5,3,18,1),(8,1,'Trote ligero','Trote suave en el lugar o patio',6,3,20,1),(9,2,'Saludar a un compañero','Envía un mensaje amable a un compañero y manten la conversacion por 10 minutos',3,1,10,1),(10,2,'Agradecimiento','Comparte un “gracias” genuino con alguien cercano',3,1,10,1),(11,2,'Charla breve en familia','Habla 5 min con un familiar sobre su día',5,1,12,1),(12,2,'Ayuda rápida','Ofrece ayuda con una tarea simple a alguien',4,2,14,1),(13,2,'Mensaje positivo','Comparte una frase motivadora con un amigo',3,1,10,1),(14,2,'Escucha activa','Escucha sin interrumpir durante 35 min',5,2,16,1),(15,2,'Felicitación','Reconoce un logro de alguien de tu clase',3,1,12,1),(16,2,'Círculo de gratitud','Comparte 3 cosas por las que estás agradecido',5,2,16,1),(17,3,'Respiración 4-4-4','Inhala 4s, mantén 4s, exhala 4s',3,1,12,1),(18,3,'Pausa consciente','Deja el celular y respira 3 min',3,1,12,1),(19,3,'Escaneo corporal','Revisa tensiones de pies a cabeza',5,2,14,1),(20,3,'Diario emocional','Escribe en una hoja de papel cómo te sientes hoy',5,1,12,1),(21,3,'Cuenta 5-4-3-2-1','Técnica sensorial para anclaje al presente',4,2,14,1),(22,3,'Visualización meta','Imagina cumplir una meta pequeña de hoy',4,1,12,1),(23,3,'Afirmaciones','Repite 5 afirmaciones positivas',3,1,10,1),(24,3,'Técnica pomodoro suave','1 bloque corto de foco + mini pausa consciente',8,3,20,1),(25,4,'Lectura 3 min','Lee un texto breve y subraya 1 idea clave',3,1,12,1),(26,4,'Colorear','Colorea un dibujo',5,2,16,1),(27,4,'Resumen flash','Escribe 34 líneas de lo aprendido',5,2,16,1),(28,4,'Vídeo educativo corto','Mira un video y anota 2 ideas clave',6,2,16,1),(29,4,'Preguntas guía','Escribe 3 preguntas sobre el tema',4,1,12,1),(30,4,'Repaso activo','Explica en voz alta el tema a alguien',6,3,20,1),(31,4,'Resuelve un acertijo','Resuleve un acertijo sencillo ',5,2,16,1),(32,4,'Lectura 10 min','Profundiza y extrae 3 conceptos clave',10,3,22,1),(33,1,'Caminata corta','Caminar 12 min a ritmo cómodo',12,1,14,1);
/*!40000 ALTER TABLE `actividades` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `agenda_actividades`
--
DROP TABLE IF EXISTS `agenda_actividades`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `agenda_actividades` (
`id_agenda` int NOT NULL AUTO_INCREMENT,
`id_usuario` int NOT NULL,
`id_actividad` int NOT NULL,
`fecha_programada` datetime NOT NULL,
`estado` enum('pendiente','realizada','omitida','reprogramada') NOT NULL DEFAULT 'pendiente',
PRIMARY KEY (`id_agenda`),
KEY `id_actividad` (`id_actividad`),
KEY `idx_usuario_programa` (`id_usuario`,`fecha_programada`),
CONSTRAINT `agenda_actividades_ibfk_1` FOREIGN KEY (`id_usuario`) REFERENCES `usuarios` (`id_usuario`),
CONSTRAINT `agenda_actividades_ibfk_2` FOREIGN KEY (`id_actividad`) REFERENCES `actividades` (`id_actividad`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `agenda_actividades`
--
LOCK TABLES `agenda_actividades` WRITE;
/*!40000 ALTER TABLE `agenda_actividades` DISABLE KEYS */;
INSERT INTO `agenda_actividades` VALUES (1,1,1,'2025-09-22 10:30:00','realizada');
/*!40000 ALTER TABLE `agenda_actividades` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `categorias`
--
DROP TABLE IF EXISTS `categorias`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `categorias` (
`id_categoria` int NOT NULL AUTO_INCREMENT,
`nombre` varchar(50) NOT NULL,
`descripcion` text,
`activo` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`id_categoria`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `categorias`
--
LOCK TABLES `categorias` WRITE;
/*!40000 ALTER TABLE `categorias` DISABLE KEYS */;
INSERT INTO `categorias` VALUES (1,'Fisica','Movimientos y ejercicios cortos para activar el cuerpo',1),(2,'Sociales','Acciones breves para socializar y mejorar vínculos',1),(3,'Mentales','Respiración, mindfulness, escritura, gestión emocional',1),(4,'Creativas','Actividades que activen la creatividad, dibujo, pintura',1),(5,'prueba cambio','actividad prueba cambio',0),(6,'Diversion','esto es una prueba de creacion de categorias',1);
/*!40000 ALTER TABLE `categorias` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `dispositivos_push`
--
DROP TABLE IF EXISTS `dispositivos_push`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `dispositivos_push` (
`id_dispositivo` int NOT NULL AUTO_INCREMENT,
`id_usuario` int NOT NULL,
`proveedor` enum('FCM','APNS','WEBPUSH') NOT NULL DEFAULT 'FCM',
`device_token` varchar(512) NOT NULL,
`plataforma` enum('android','ios','web') NOT NULL,
`activo` tinyint(1) NOT NULL DEFAULT '1',
`fecha_registro` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id_dispositivo`),
UNIQUE KEY `uq_usuario_token` (`id_usuario`,`device_token`),
CONSTRAINT `dispositivos_push_ibfk_1` FOREIGN KEY (`id_usuario`) REFERENCES `usuarios` (`id_usuario`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `dispositivos_push`
--
LOCK TABLES `dispositivos_push` WRITE;
/*!40000 ALTER TABLE `dispositivos_push` DISABLE KEYS */;
/*!40000 ALTER TABLE `dispositivos_push` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `insignias`
--
DROP TABLE IF EXISTS `insignias`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `insignias` (
`id_insignia` int NOT NULL AUTO_INCREMENT,
`nombre` varchar(60) NOT NULL,
`descripcion` text,
`criterio_tipo` enum('actividades_completadas','streak_dias','minutos_acumulados','categoria_completada','puntos_acumulados') NOT NULL,
`criterio_valor` int NOT NULL,
`icono` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id_insignia`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `insignias`
--
LOCK TABLES `insignias` WRITE;
/*!40000 ALTER TABLE `insignias` DISABLE KEYS */;
INSERT INTO `insignias` VALUES (1,'¡Primera misión! :)','Completa tu primera actividad','actividades_completadas',1,NULL),(2,'En racha 3','Mantén 3 días seguidos de actividad','streak_dias',3,NULL),(3,'100 minutos','Acumula 100 minutos de actividades','minutos_acumulados',100,NULL),(4,'Cien puntos','Acumula 100 puntos totales','puntos_acumulados',100,NULL),(5,'Constante 7','Mantén 7 días de racha','streak_dias',7,NULL);
/*!40000 ALTER TABLE `insignias` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `metas`
--
DROP TABLE IF EXISTS `metas`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `metas` (
`id_meta` int NOT NULL AUTO_INCREMENT,
`id_usuario` int NOT NULL,
`tipo` enum('minutos','actividades','puntos','categoria') NOT NULL,
`valor_objetivo` int NOT NULL,
`id_categoria` int DEFAULT NULL,
`fecha_inicio` date NOT NULL,
`fecha_fin` date NOT NULL,
`estado` enum('activa','cumplida','vencida') NOT NULL DEFAULT 'activa',
`progreso_actual` int NOT NULL DEFAULT '0',
`creada_en` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id_meta`),
KEY `id_usuario` (`id_usuario`),
KEY `id_categoria` (`id_categoria`),
CONSTRAINT `metas_ibfk_1` FOREIGN KEY (`id_usuario`) REFERENCES `usuarios` (`id_usuario`),
CONSTRAINT `metas_ibfk_2` FOREIGN KEY (`id_categoria`) REFERENCES `categorias` (`id_categoria`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `metas`
--
LOCK TABLES `metas` WRITE;
/*!40000 ALTER TABLE `metas` DISABLE KEYS */;
INSERT INTO `metas` VALUES (2,1,'minutos',100,1,'2025-09-19','2025-09-26','activa',40,'2025-09-19 00:43:44');
/*!40000 ALTER TABLE `metas` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `niveles`
--
DROP TABLE IF EXISTS `niveles`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `niveles` (
`id_nivel` int NOT NULL AUTO_INCREMENT,
`nombre` varchar(50) NOT NULL,
`puntos_minimos` int NOT NULL,
`puntos_maximos` int NOT NULL,
PRIMARY KEY (`id_nivel`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `niveles`
--
LOCK TABLES `niveles` WRITE;
/*!40000 ALTER TABLE `niveles` DISABLE KEYS */;
INSERT INTO `niveles` VALUES (1,'Explorador',0,99),(2,'Aprendiz',100,249),(3,'Avanzado',250,499),(4,'Experto :)',500,999);
/*!40000 ALTER TABLE `niveles` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `notificaciones`
--
DROP TABLE IF EXISTS `notificaciones`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `notificaciones` (
`id_notificacion` int NOT NULL AUTO_INCREMENT,
`id_usuario` int NOT NULL,
`tipo` enum('recordatorio','motivacion','sistema') NOT NULL DEFAULT 'recordatorio',
`titulo` varchar(120) NOT NULL,
`cuerpo` varchar(500) NOT NULL,
`canal` enum('push','email','sms') NOT NULL DEFAULT 'push',
`programada_para` datetime DEFAULT NULL,
`enviada_en` datetime DEFAULT NULL,
`leida_en` datetime DEFAULT NULL,
`estado` enum('pendiente','enviada','fallida','cancelada') NOT NULL DEFAULT 'pendiente',
`meta` json DEFAULT NULL,
`creada_en` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id_notificacion`),
KEY `idx_notif_usuario_estado` (`id_usuario`,`estado`),
CONSTRAINT `notificaciones_ibfk_1` FOREIGN KEY (`id_usuario`) REFERENCES `usuarios` (`id_usuario`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `notificaciones`
--
LOCK TABLES `notificaciones` WRITE;
/*!40000 ALTER TABLE `notificaciones` DISABLE KEYS */;
/*!40000 ALTER TABLE `notificaciones` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `registro_actividad`
--
DROP TABLE IF EXISTS `registro_actividad`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `registro_actividad` (
`id_registro` int NOT NULL AUTO_INCREMENT,
`id_usuario` int NOT NULL,
`id_actividad` int NOT NULL,
`fecha_inicio` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`fecha_fin` datetime DEFAULT NULL,
`emocion` enum('feliz','neutral','triste','ansioso','motivado','cansado') DEFAULT NULL,
`completada` tinyint(1) NOT NULL DEFAULT '0',
`puntos_obtenidos` int NOT NULL DEFAULT '0',
`comentario` text,
PRIMARY KEY (`id_registro`),
KEY `id_actividad` (`id_actividad`),
KEY `idx_usuario_fecha` (`id_usuario`,`fecha_inicio`),
CONSTRAINT `registro_actividad_ibfk_1` FOREIGN KEY (`id_usuario`) REFERENCES `usuarios` (`id_usuario`),
CONSTRAINT `registro_actividad_ibfk_2` FOREIGN KEY (`id_actividad`) REFERENCES `actividades` (`id_actividad`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `registro_actividad`
--
LOCK TABLES `registro_actividad` WRITE;
/*!40000 ALTER TABLE `registro_actividad` DISABLE KEYS */;
INSERT INTO `registro_actividad` VALUES (1,1,1,'2025-09-22 02:00:33',NULL,NULL,0,0,NULL),(2,1,1,'2025-09-22 02:03:11','2025-09-22 02:05:29','motivado',1,15,'todo ok'),(3,1,5,'2025-09-22 23:51:17','2025-09-22 23:53:36','feliz',1,20,'¡listo!'),(4,3,24,'2025-10-14 00:38:37',NULL,NULL,0,0,NULL),(5,2,33,'2025-10-14 01:00:07','2025-10-14 01:00:10',NULL,1,14,NULL),(6,2,32,'2025-10-14 13:07:17',NULL,NULL,0,0,NULL),(7,2,23,'2025-10-14 13:16:32','2025-10-14 13:17:15',NULL,1,10,NULL),(8,3,24,'2025-10-14 13:29:53','2025-10-14 13:30:40',NULL,1,20,NULL);
/*!40000 ALTER TABLE `registro_actividad` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `roles`
--
DROP TABLE IF EXISTS `roles`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `roles` (
`id_rol` int NOT NULL AUTO_INCREMENT,
`nombre` varchar(50) NOT NULL,
`descripcion` text,
PRIMARY KEY (`id_rol`),
UNIQUE KEY `nombre` (`nombre`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `roles`
--
LOCK TABLES `roles` WRITE;
/*!40000 ALTER TABLE `roles` DISABLE KEYS */;
INSERT INTO `roles` VALUES (1,'admin','Administrador del sistema'),(3,'alumno','Usuario estudiante'),(4,'pueba rol','acttualizacion de datos desde postman');
/*!40000 ALTER TABLE `roles` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `users`
--
DROP TABLE IF EXISTS `users`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `users` (
`user_id` int NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`email` varchar(100) NOT NULL,
`password` varchar(255) NOT NULL,
`role` enum('student','admin') DEFAULT 'student',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`user_id`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `users`
--
LOCK TABLES `users` WRITE;
/*!40000 ALTER TABLE `users` DISABLE KEYS */;
INSERT INTO `users` VALUES (1,'Aline','aline@test.com','$2b$10$vVx3nhzjI77x08MQoigNruwLS.oYpfGkOGLZSkX3BcU2sbVzhHVIu','student','2025-09-05 07:27:38');
/*!40000 ALTER TABLE `users` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `usuario_actividad_estado`
--
DROP TABLE IF EXISTS `usuario_actividad_estado`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `usuario_actividad_estado` (
`id_usuario` int NOT NULL,
`id_actividad` int NOT NULL,
`estado` enum('pendiente','realizada') NOT NULL DEFAULT 'pendiente',
`fecha_realizada` datetime DEFAULT NULL,
PRIMARY KEY (`id_usuario`,`id_actividad`),
KEY `fk_uas_actividad` (`id_actividad`),
CONSTRAINT `fk_uas_actividad` FOREIGN KEY (`id_actividad`) REFERENCES `actividades` (`id_actividad`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_uas_usuario` FOREIGN KEY (`id_usuario`) REFERENCES `usuarios` (`id_usuario`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `usuario_actividad_estado`
--
LOCK TABLES `usuario_actividad_estado` WRITE;
/*!40000 ALTER TABLE `usuario_actividad_estado` DISABLE KEYS */;
INSERT INTO `usuario_actividad_estado` VALUES (2,23,'realizada','2025-10-14 13:17:15'),(3,24,'realizada','2025-10-14 13:30:40');
/*!40000 ALTER TABLE `usuario_actividad_estado` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `usuario_metricas`
--
DROP TABLE IF EXISTS `usuario_metricas`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `usuario_metricas` (
`id_metricas` int NOT NULL AUTO_INCREMENT,
`id_usuario` int NOT NULL,
`actividades_completadas` int NOT NULL DEFAULT '0',
`tiempo_total_minutos` int NOT NULL DEFAULT '0',
`puntos_totales` int NOT NULL DEFAULT '0',
`racha_dias` int NOT NULL DEFAULT '0',
`nivel_actual` int DEFAULT NULL,
`porcentaje_avance` decimal(5,2) NOT NULL DEFAULT '0.00',
`actualizado_en` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id_metricas`),
UNIQUE KEY `uq_usuario_metricas` (`id_usuario`),
CONSTRAINT `fk_usuario_metricas_usuario` FOREIGN KEY (`id_usuario`) REFERENCES `usuarios` (`id_usuario`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `usuario_metricas`
--
LOCK TABLES `usuario_metricas` WRITE;
/*!40000 ALTER TABLE `usuario_metricas` DISABLE KEYS */;
INSERT INTO `usuario_metricas` VALUES (1,1,1,12,140,0,2,26.67,'2025-10-17 23:59:00'),(2,2,2,0,24,0,1,0.00,'2025-10-17 23:59:00'),(8,3,1,0,20,0,1,0.00,'2025-10-17 23:59:00');
/*!40000 ALTER TABLE `usuario_metricas` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `usuarios`
--
DROP TABLE IF EXISTS `usuarios`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `usuarios` (
`id_usuario` int NOT NULL AUTO_INCREMENT,
`nombre` varchar(100) NOT NULL,
`apellido` varchar(100) NOT NULL,
`email` varchar(100) NOT NULL,
`password_hash` varchar(255) NOT NULL,
`fecha_registro` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`fecha_nacimiento` date DEFAULT NULL,
`genero` enum('F','M','O') DEFAULT NULL,
`activo` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`id_usuario`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `usuarios`
--
LOCK TABLES `usuarios` WRITE;
/*!40000 ALTER TABLE `usuarios` DISABLE KEYS */;
INSERT INTO `usuarios` VALUES (1,'Raquel','Garcia','agarciap31@miumg.edu.gt','12705beecd4f6c9778b8c49468a56b60008ce4413d96319a2024d76c72cbd634','2025-08-25 23:42:31','2000-01-01','F',1),(2,'lorena','perez','loren@ie.gt','$2b$10$MBUclniGWZncL8NEUNrLXuNfgLCOIu9Jz3bNu2b3deYjPp4y1fJNq','2025-09-05 23:15:29',NULL,'F',1),(3,'maria','hernandez','mhernandez@gmail.com','$2b$10$OwQOfA7/6DV6CvTbyohKUe9CtfGXZsnXlVP3Y9M2y8yPIHoQiVgG2','2025-10-12 23:51:13',NULL,'F',1),(4,'admin','general','admin@ie.gt','$2b$10$98wqTieEOCMd.Iw331AhGulmdYFn.7LxaQGKG3O.qwzs12MLsuKyK','2025-10-14 23:33:21',NULL,'F',1),(5,'mishel','admin','mishel@ie.gt','$2b$10$15InnRXqniiklsRJj8k06O1vP8QGtagtk9Pv54gGXifLhQVqzHY7O','2025-10-14 23:56:54',NULL,'F',1);
/*!40000 ALTER TABLE `usuarios` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `usuarios_insignias`
--
DROP TABLE IF EXISTS `usuarios_insignias`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `usuarios_insignias` (
`id_usuario` int NOT NULL,
`id_insignia` int NOT NULL,
`fecha_otorgada` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id_usuario`,`id_insignia`),
UNIQUE KEY `uq_usuario_insignia` (`id_usuario`,`id_insignia`),
KEY `id_insignia` (`id_insignia`),
CONSTRAINT `usuarios_insignias_ibfk_1` FOREIGN KEY (`id_usuario`) REFERENCES `usuarios` (`id_usuario`),
CONSTRAINT `usuarios_insignias_ibfk_2` FOREIGN KEY (`id_insignia`) REFERENCES `insignias` (`id_insignia`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `usuarios_insignias`
--
LOCK TABLES `usuarios_insignias` WRITE;
/*!40000 ALTER TABLE `usuarios_insignias` DISABLE KEYS */;
INSERT INTO `usuarios_insignias` VALUES (1,1,'2025-09-22 02:05:29'),(1,3,'2025-09-25 01:15:20'),(2,1,'2025-10-14 01:00:10'),(3,1,'2025-10-14 13:30:40');
/*!40000 ALTER TABLE `usuarios_insignias` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `usuarios_roles`
--
DROP TABLE IF EXISTS `usuarios_roles`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `usuarios_roles` (
`id_usuario` int NOT NULL,
`id_rol` int NOT NULL,
PRIMARY KEY (`id_usuario`,`id_rol`),
UNIQUE KEY `uq_usuario_rol` (`id_usuario`,`id_rol`),
KEY `fk_ur_rol` (`id_rol`),
CONSTRAINT `fk_ur_rol` FOREIGN KEY (`id_rol`) REFERENCES `roles` (`id_rol`) ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT `fk_ur_usuario` FOREIGN KEY (`id_usuario`) REFERENCES `usuarios` (`id_usuario`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `usuarios_roles_ibfk_1` FOREIGN KEY (`id_usuario`) REFERENCES `usuarios` (`id_usuario`),
CONSTRAINT `usuarios_roles_ibfk_2` FOREIGN KEY (`id_rol`) REFERENCES `roles` (`id_rol`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `usuarios_roles`
--
LOCK TABLES `usuarios_roles` WRITE;
/*!40000 ALTER TABLE `usuarios_roles` DISABLE KEYS */;
INSERT INTO `usuarios_roles` VALUES (1,1),(4,1);
/*!40000 ALTER TABLE `usuarios_roles` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Temporary view structure for view `v_usuario_progreso`
--
DROP TABLE IF EXISTS `v_usuario_progreso`;
/*!50001 DROP VIEW IF EXISTS `v_usuario_progreso`*/;
SET @saved_cs_client = @@character_set_client;
/*!50503 SET character_set_client = utf8mb4 */;
/*!50001 CREATE VIEW `v_usuario_progreso` AS SELECT
1 AS `id_usuario`,
1 AS `usuario`,
1 AS `actividades_completadas`,
1 AS `tiempo_total_minutos`,
1 AS `puntos_totales`,
1 AS `racha_dias`,
1 AS `id_nivel`,
1 AS `nivel`*/;
SET character_set_client = @saved_cs_client;
--
-- Final view structure for view `v_usuario_progreso`
--
/*!50001 DROP VIEW IF EXISTS `v_usuario_progreso`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
/*!50001 SET @saved_col_connection = @@collation_connection */;
/*!50001 SET character_set_client = utf8mb4 */;
/*!50001 SET character_set_results = utf8mb4 */;
/*!50001 SET collation_connection = utf8mb4_0900_ai_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `v_usuario_progreso` AS select `u`.`id_usuario` AS `id_usuario`,concat(`u`.`nombre`,' ',`u`.`apellido`) AS `usuario`,ifnull(`um`.`actividades_completadas`,0) AS `actividades_completadas`,ifnull(`um`.`tiempo_total_minutos`,0) AS `tiempo_total_minutos`,ifnull(`um`.`puntos_totales`,0) AS `puntos_totales`,ifnull(`um`.`racha_dias`,0) AS `racha_dias`,`n`.`id_nivel` AS `id_nivel`,`n`.`nombre` AS `nivel` from ((`usuarios` `u` left join `usuario_metricas` `um` on((`um`.`id_usuario` = `u`.`id_usuario`))) left join `niveles` `n` on((`um`.`puntos_totales` between `n`.`puntos_minimos` and `n`.`puntos_maximos`))) */;
/*!50001 SET character_set_client = @saved_cs_client */;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2025-10-18 20:01:07