Files
sistema_para_juego/PROJECT_STATUS.md

232 lines
15 KiB
Markdown
Executable File
Raw Permalink 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.
# Plan de Desarrollo y Estado del Proyecto
Este archivo es la guía oficial para el desarrollo del sistema de administración de bots. Lo actualizaremos con cada avance.
**Regla General:** Antes de crear cualquier archivo o módulo, el primer paso siempre será **verificar si ya existe** para analizar su estado y decidir si se debe completar, refactorizar o crear desde cero.
---
## 🟦 FASE 1 — Preparación del Proyecto
- [x] **Paso 1: Crear estructura base del proyecto**
- [x] **Paso 2: Crear archivo .env e inicializar variables**
- [x] **Paso 3: Crear conexión a base de datos (COMPARTIDA)**
## 🟩 FASE 2 — Base de Datos
- [x] **Paso 4: Crear tablas básicas del sistema**
- [x] **Paso 5: Crear tablas para cada plataforma**
## 🟨 FASE 3 — Autenticación
- [x] **Paso 6: Crear login.php**
- [x] **Paso 7: Crear panel principal después del login**
## 🟧 FASE 4 — Construcción de Plataformas
### 🔵 FASE 4.1 PLATAFORMA DISCORD
- [x] **Paso 8: Crear la estructura interna de `/discord`** (Verificada)
- [x] **Paso 9: Crear el archivo `dashboard_discord.php`** (Verificado y funcional)
- [x] **Paso 10: Módulo de GALERÍA (COMPARTIDO)** (Verificado y funcional)
- [x] **Paso 11: Módulo de PLANTILLAS DISCORD**
- [x] **Verificar:** Revisar `list.php`, `create.php`, `edit.php`, `preview.php` y APIs asociadas.
- [x] **Implementar/Corregir:**
- [x] Asegurar que la función de **crear** plantillas sea robusta (actualmente funcional pero mejorable).
- [x] Asegurar que la función de **listar** plantillas sea robusta (actualmente funcional pero mejorable).
- [x] Implementar la API para **eliminar** plantillas y conectar con el frontend.
- [x] Implementar la funcionalidad para **editar** plantillas.
- [x] Asegurar que la **previsualización** funcione correctamente.
- [x] Integrar el botón para insertar imágenes de la **galería** en el editor.
- [x] **Paso 12: Módulo de CREAR MENSAJE DISCORD**
- [x] **Verificar:** Analizar archivos existentes en `/discord/views/messages/` (`create.php`) y API `/discord/api/messages/send.php`.
- [ ] **Implementar/Corregir:**
- [x] Interfaz para seleccionar destinatario (individual) e ingresar contenido.
- [x] Carga de plantillas en el editor.
- [x] Editor local con soporte de imágenes (Summernote + Galería).
- [x] Previsualización del mensaje.
- [x] API para enviar mensajes inmediatos a Discord.
- [x] Guardado del mensaje enviado en `mensajes_discord`.
- [x] **Mejorar:** Permitir selección de **múltiples destinatarios**.
- [x] **Implementar:** Funcionalidad de envío **programado**.
- [x] **Implementar:** Funcionalidad de envío **recurrente**.
- [x] **Paso 13: Módulo de ENVIADOS DISCORD**
- [x] **Verificar:** Analizar archivos existentes en `/discord/views/messages/` (`sent.php`).
- [ ] **Implementar/Corregir:**
- [x] Página para listar mensajes enviados (con paginación).
- [x] **Mejorar:** Mostrar mensajes en todos los estados (enviado, pendiente, fallido, deshabilitado).
- [x] **Implementar:** Botón "Eliminar" (que cambie estado a 'deshabilitado' y elimine en Discord si es posible).
- [x] **Paso 14: Módulo de DESTINATARIOS DISCORD**
- [x] **Verificar:** Analizar archivos existentes en `/discord/views/recipients/` (`list.php`) y APIs (`create.php`, `delete.php`).
- [x] **Implementar/Corregir:**
- [x] Interfaz para listar destinatarios (usuarios y canales).
- [x] Funcionalidad para **crear** nuevo destinatario (vía modal y API).
- [x] Funcionalidad para **eliminar** destinatario (vía API).
- [x] **Mejorar:** Mostrar y gestionar destinatarios de tipo "grupo".
- [x] **Implementar:** Funcionalidad para **editar** destinatarios.
- [x] **Implementar:** Funcionalidad para **expulsar** (requiere interacción con la API de Discord).
- [ ] **Integrar:** Sincronización con el webhook (se abordará en el Paso 20).
- [x] **Paso 15: Módulo de COMANDOS DISCORD**
- [x] **Verificar:** Analizar archivos existentes en `/discord/views/commands/` (`list.php`).
- [x] **Implementar/Corregir:**
- [x] Página para listar comandos (reutiliza plantillas con comando asociado).
- [x] **Implementar:** Funcionalidad para **eliminar** un comando (implica eliminar la plantilla asociada).
- [x] **Considerar:** Si es necesario gestionar los Slash Commands de Discord vía API (más allá de la DB local). Por ahora, el plan indica "borrado completo" que apunta a la plantilla asociada.
- [x] **Paso 16: Módulo de IDIOMAS (COMPARTIDO)**
- [x] **Verificar:** Analizar archivos existentes en `/shared/languages/` (`manager.php`).
- [x] **Implementar:** Crear la interfaz para gestionar idiomas y la integración con LibreTranslate.
- [x] Listado de idiomas.
- [x] Activar / Desactivar idiomas.
- [x] Sincronizar idiomas con LibreTranslate.
- [x] Actualizar bandera de idioma.
- [x] Prueba de traducción con LibreTranslate.
- [x] **Paso 17: Módulo de MENSAJE DE BIENVENIDA DISCORD**
- [x] **Verificar:** Analizar archivos existentes en `/discord/views/welcome/` (`config.php`).
- [ ] **Implementar/Corregir:**
- [x] Configuración de activación/desactivación del mensaje.
- [x] Configuración para registrar usuario en BD.
- [x] Selección de canal destino.
- [x] Editor (Summernote) para el texto de bienvenida.
- [x] Botón para probar el mensaje (`send_test.php` API).
- [x] **Reintegrar:** Selección e inserción de **imagen opcional** (la UI HTML fue eliminada/comentada, pero la DB y JS de galería lo soportan).
- [x] **Implementar:** Selección de **idiomas** específicos para el mensaje de bienvenida (guardar en `idiomas_habilitados`).
- [x] **Paso 18: Módulo de LOGS DISCORD**
- [x] **Verificar:** Analizar archivos existentes en `/discord/views/logs/` (`list.php`).
- [x] **Implementar:** Crear la interfaz para visualizar los logs de Discord.
- [x] Listado de logs con paginación.
- [x] Filtrado por nivel, origen y búsqueda en descripción.
- [x] Visualización de detalles JSON en modal.
- [x] **Paso 19: Crear `test_discord_connection.php`**
- [x] **Verificar:** Revisar si el archivo ya existe (`discord/test_connection.php`).
- [x] **Implementar:** Crear un script simple para probar la conexión con la API de Discord.
- [x] Verificación de token.
- [x] Conexión con Discord API (@me).
- [x] Acceso al servidor Discord (Guild ID).
- [x] Listado de canales.
- [x] **Paso 20: Crear webhook de Discord**
- [x] **Verificar:** Analizar archivos existentes en `/discord/webhook/` (`index.php`).
- [ ] **Implementar/Corregir:**
- [x] Verificación de firma de seguridad Discord (Ed25519) - Fallo seguro si extensión `sodium` no instalada.
- [x] Manejo de interacción `PING` (tipo 1).
- [x] Manejo básico de componentes de mensaje (tipo 3) para selección de idioma (`lang_select_`).
- [x] **Implementar:** Manejo de **comandos de aplicación (Slash Commands - tipo 2)**:
- [x] Detección y procesamiento de comandos como `/comandos`, `/agente`.
- [x] **Implementar:** Manejo de **mensajes entrantes** (directos o de canal, si aplica).
- [x] **Implementar:** **Registrar destinatarios** (ej. usuarios que interactúan por primera vez).
- [x] **Mejorar:** **Detectar idioma y traducir** (integración completa con LibreTranslate).
- [x] **Implementar:** Envío de **respuestas con imágenes y división de mensajes largos**.
- [x] **Integrar:** Sincronización con el webhook (tarea pendiente del Paso 14, ahora parte de este paso).
### 🟣 FASE 4.2 PLATAFORMA TELEGRAM
- [x] **Paso 21: Crear estructura interna de `/telegram`**
- [x] **Verificar:** Analizar archivos existentes en `/telegram/`.
- [x] La estructura de directorios (`api/`, `controllers/`, `models/`, `public/`, `routes/`, `views/`, `webhook/`) ya existe.
- [x] **Paso 22: Crear `dashboard_telegram.php`** (Idéntico a Discord, Paso 9)
- [x] **Verificar:** Analizar `telegram/dashboard_telegram.php`.
- [x] **Implementar/Corregir:** Asegurar que sea funcional como panel principal de Telegram.
- [x] **Paso 23: Galería ya existe (no se duplica)** (Idéntico a Discord, Paso 10)
- [x] **Verificar:** El módulo de Galería (`/gallery`) es compartido y ya está implementado (Paso 10).
- [x] **Paso 24: Módulo de PLANTILLAS TELEGRAM** (Idéntico a Discord, Paso 11)
- [x] **Verificar:** Analizar archivos existentes en `/telegram/views/templates/` y APIs asociadas.
- [x] **Implementar/Corregir:**
- [x] Crear la interfaz (`list.php`, `create.php`, `edit.php`, `preview.php`) para plantillas Telegram.
- [x] Implementar APIs (`/telegram/api/templates/`).
- [x] Asegurar funciones de crear, listar, editar, eliminar y previsualizar.
- [x] Integrar botón para insertar imágenes de la galería en el editor.
- [x] **Paso 25: Módulo de CREAR MENSAJE TELEGRAM** (Idéntico a Discord, Paso 12)
- [x] **Verificar:** Analizar archivos existentes en `/telegram/views/messages/` (`create.php`) y API `/telegram/api/messages/send.php`.
- [x] **Implementar/Corregir:**
- [x] Interfaz para seleccionar destinatario(s) e ingresar contenido.
- [x] Carga de plantillas en el editor.
- [x] Editor local con soporte de imágenes (Summernote + Galería).
- [x] Previsualización del mensaje.
- [x] API para enviar mensajes inmediatos a Telegram.
- [x] Guardado del mensaje enviado en `mensajes_telegram`.
- [x] **Mejorar:** Permitir selección de **múltiples destinatarios**.
- [x] **Implementar:** Funcionalidad de envío **programado**.
- [x] **Implementar:** Funcionalidad de envío **recurrente**.
- [x] **Paso 26: Módulo de ENVIADOS TELEGRAM** (Idéntico a Discord, Paso 13)
- [x] **Verificar:** Analizar archivos existentes en `/telegram/views/messages/` (`sent.php`).
- [x] **Implementar/Corregir:**
- [x] Página para listar mensajes enviados (con paginación).
- [x] **Mejorar:** Mostrar mensajes en todos los estados (enviado, pendiente, fallido, deshabilitado).
- [x] **Implementar:** Botón "Eliminar" (que cambie estado a 'deshabilitado' y elimine en Telegram si es posible).
- [x] **Paso 27: Módulo de DESTINATARIOS TELEGRAM** (Idéntico a Discord, Paso 14)
- [x] **Verificar:** Analizar archivos existentes en `/telegram/views/recipients/` y APIs.
- [x] **Implementar/Corregir:**
- [x] Interfaz para listar, crear, editar, eliminar destinatarios.
- [x] Implementar APIs (`/telegram/api/recipients/`).
- [x] **Mejorar:** Gestión de tipos de destinatario de Telegram (usuarios, canales, grupos).
- [x] **Implementar:** Funcionalidad para **expulsar** (requiere interacción con la API de Telegram).
- [ ] **Integrar:** Sincronización con el webhook (se abordará en el Paso 33).
- [x] **Paso 28: Módulo de COMANDOS TELEGRAM** (Idéntico a Discord, Paso 15)
- [x] **Verificar:** Analizar archivos existentes en `/telegram/views/commands/`.
- [x] **Implementar/Corregir:**
- [x] Página para listar comandos (reutiliza plantillas con comando asociado).
- [x] Funcionalidad para **eliminar** un comando.
- [x] **Paso 29: Idiomas (ya existe, se usa igual)** (Idéntico a Discord, Paso 16)
- [x] **Verificar:** El módulo de Idiomas (`/shared/languages`) es compartido y ya está implementado (Paso 16).
- [x] **Paso 30: Módulo de MENSAJE DE BIENVENIDA TELEGRAM** (Idéntico a Discord, Paso 17)
- [x] **Verificar:** Analizar archivos existentes en `/telegram/views/welcome/`.
- [x] **Implementar/Corregir:**
- [x] Crear la interfaz (`config.php`) para configurar el mensaje de bienvenida.
- [x] API `/telegram/api/welcome/send_test.php` para probar mensaje.
- [x] Selección e inserción de imagen opcional.
- [x] Selección de idiomas específicos.
- [x] Botón "Únete al grupo".
- [x] **Paso 31: Módulo de LOGS TELEGRAM** (Idéntico a Discord, Paso 18)
- [x] **Verificar:** Analizar archivos existentes en `/telegram/views/logs/` (`list.php`).
- [x] **Implementar:** Crear la interfaz para visualizar los logs de Telegram.
- [x] Listado de logs con paginación.
- [x] Filtrado por nivel, origen y búsqueda en descripción.
- [x] Visualización de detalles JSON en modal.
- [x] **Paso 32: Crear `test_telegram_connection.php`** (Idéntico a Discord, Paso 19)
- [x] **Verificar:** Analizar `telegram/test_connection.php`.
- [x] **Implementar:** Crear un script simple para probar la conexión con la API de Telegram.
- [x] Verificación de token.
- [x] Conexión con Telegram API (`getMe`, `getUpdates`).
- [x] Gestión de Webhook (set, delete, getInfo).
- [x] **Paso 33: Crear webhook de Telegram** (Idéntico a Discord, Paso 20)
- [x] **Verificar:** Analizar archivos existentes en `/telegram/webhook/`.
- [x] **Implementar:** Desarrollar la lógica del webhook para manejar mensajes, comandos y registros.
- [x] Verificación de `secret_token` del webhook.
- [x] Registro de destinatarios que interactúan.
- [x] Manejo de `MESSAGE_CREATE` (mensajes entrantes).
- [x] Manejo de comandos de texto (`/start`, `/help`, comandos de `plantillas_telegram`, `#grupo`).
- [x] Manejo de `CALLBACK_QUERY` (botones inline) para selección de idioma.
- [x] Detección de idioma y traducción de respuestas del bot.
- [x] **Implementar:** Envío de **respuestas con imágenes y división de mensajes largos**.
- [x] **Integrar:** Sincronización con el webhook.
### 🟥 FASE 5 — Módulos Compartidos Finales
- [x] **Paso 34: Implementar permisos por rol**
- [x] **Verificar:** Analizar tablas `roles` y `permisos` en `shared/database/schema.sql`.
- [x] **Definir Permisos Específicos:** Crear una lista de permisos necesarios para cada acción (crear, editar, eliminar, etc.) en módulos clave.
- [x] **Crear Helper de Permisos:** Implementar una función centralizada `hasPermission($permissionName, $platform = 'global')` en `shared/utils/helpers.php`.
- [x] **Integrar Permisos en APIs:** Añadir verificaciones de permisos al inicio de cada endpoint de API crítico.
- [x] **Integrar Permisos en Vistas:** Ocultar/mostrar elementos de UI (botones, enlaces) según los permisos del usuario.
- [x] **Paso 35: Implementar traducción completa del sistema**
- [x] **Crear Archivos de Traducción:** Crear archivos JSON (`es.json`, `en.json`, `pt.json`) en `shared/translations/`.
- [x] **Crear Helper de Traducción:** Implementar una función `__($key)` en `shared/translations/manager.php`.
- [x] **Refactorizar Vistas:** Reemplazar todas las cadenas de texto hardcoded con la función `__()`.
- [x] **Paso 36: Definir notificaciones internas**
- [x] **Crear sistema de notificaciones:** Implementar un sistema de notificaciones "toast" no intrusivas.
- [x] **Integrar notificaciones:** Reemplazar `alert()` con el nuevo sistema en toda la aplicación.
- [ ] **Paso 37: Pruebas de todo el sistema**
### 🟩 FASE 6 — Documentación
- [ ] **Paso 38: Documentar el proyecto**