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','10–20 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 3–5 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 3–4 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
