Files
sistema_para_juego/PROJECT_STATUS.md

15 KiB
Executable File
Raw Blame History

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

  • Paso 1: Crear estructura base del proyecto
  • Paso 2: Crear archivo .env e inicializar variables
  • Paso 3: Crear conexión a base de datos (COMPARTIDA)

🟩 FASE 2 — Base de Datos

  • Paso 4: Crear tablas básicas del sistema
  • Paso 5: Crear tablas para cada plataforma

🟨 FASE 3 — Autenticación

  • Paso 6: Crear login.php
  • Paso 7: Crear panel principal después del login

🟧 FASE 4 — Construcción de Plataformas

🔵 FASE 4.1 PLATAFORMA DISCORD

  • Paso 8: Crear la estructura interna de /discord (Verificada)

  • Paso 9: Crear el archivo dashboard_discord.php (Verificado y funcional)

  • Paso 10: Módulo de GALERÍA (COMPARTIDO) (Verificado y funcional)

  • Paso 11: Módulo de PLANTILLAS DISCORD

    • Verificar: Revisar list.php, create.php, edit.php, preview.php y APIs asociadas.
    • Implementar/Corregir:
      • Asegurar que la función de crear plantillas sea robusta (actualmente funcional pero mejorable).
      • Asegurar que la función de listar plantillas sea robusta (actualmente funcional pero mejorable).
      • Implementar la API para eliminar plantillas y conectar con el frontend.
      • Implementar la funcionalidad para editar plantillas.
      • Asegurar que la previsualización funcione correctamente.
      • Integrar el botón para insertar imágenes de la galería en el editor.
  • Paso 12: Módulo de CREAR MENSAJE DISCORD

    • Verificar: Analizar archivos existentes en /discord/views/messages/ (create.php) y API /discord/api/messages/send.php.
    • Implementar/Corregir:
      • Interfaz para seleccionar destinatario (individual) e ingresar contenido.
      • Carga de plantillas en el editor.
      • Editor local con soporte de imágenes (Summernote + Galería).
      • Previsualización del mensaje.
      • API para enviar mensajes inmediatos a Discord.
      • Guardado del mensaje enviado en mensajes_discord.
      • Mejorar: Permitir selección de múltiples destinatarios.
      • Implementar: Funcionalidad de envío programado.
      • Implementar: Funcionalidad de envío recurrente.
  • Paso 13: Módulo de ENVIADOS DISCORD

    • Verificar: Analizar archivos existentes en /discord/views/messages/ (sent.php).
    • Implementar/Corregir:
      • Página para listar mensajes enviados (con paginación).
      • Mejorar: Mostrar mensajes en todos los estados (enviado, pendiente, fallido, deshabilitado).
      • Implementar: Botón "Eliminar" (que cambie estado a 'deshabilitado' y elimine en Discord si es posible).
  • Paso 14: Módulo de DESTINATARIOS DISCORD

    • Verificar: Analizar archivos existentes en /discord/views/recipients/ (list.php) y APIs (create.php, delete.php).
    • Implementar/Corregir:
      • Interfaz para listar destinatarios (usuarios y canales).
      • Funcionalidad para crear nuevo destinatario (vía modal y API).
      • Funcionalidad para eliminar destinatario (vía API).
      • Mejorar: Mostrar y gestionar destinatarios de tipo "grupo".
      • Implementar: Funcionalidad para editar destinatarios.
      • Implementar: Funcionalidad para expulsar (requiere interacción con la API de Discord).
      • Integrar: Sincronización con el webhook (se abordará en el Paso 20).
  • Paso 15: Módulo de COMANDOS DISCORD

    • Verificar: Analizar archivos existentes en /discord/views/commands/ (list.php).
    • Implementar/Corregir:
      • Página para listar comandos (reutiliza plantillas con comando asociado).
      • Implementar: Funcionalidad para eliminar un comando (implica eliminar la plantilla asociada).
      • 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.
  • Paso 16: Módulo de IDIOMAS (COMPARTIDO)

    • Verificar: Analizar archivos existentes en /shared/languages/ (manager.php).
    • Implementar: Crear la interfaz para gestionar idiomas y la integración con LibreTranslate.
      • Listado de idiomas.
      • Activar / Desactivar idiomas.
      • Sincronizar idiomas con LibreTranslate.
      • Actualizar bandera de idioma.
      • Prueba de traducción con LibreTranslate.
  • Paso 17: Módulo de MENSAJE DE BIENVENIDA DISCORD

    • Verificar: Analizar archivos existentes en /discord/views/welcome/ (config.php).
    • Implementar/Corregir:
      • Configuración de activación/desactivación del mensaje.
      • Configuración para registrar usuario en BD.
      • Selección de canal destino.
      • Editor (Summernote) para el texto de bienvenida.
      • Botón para probar el mensaje (send_test.php API).
      • 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).
      • Implementar: Selección de idiomas específicos para el mensaje de bienvenida (guardar en idiomas_habilitados).
  • Paso 18: Módulo de LOGS DISCORD

    • Verificar: Analizar archivos existentes en /discord/views/logs/ (list.php).
    • Implementar: Crear la interfaz para visualizar los logs de Discord.
      • Listado de logs con paginación.
      • Filtrado por nivel, origen y búsqueda en descripción.
      • Visualización de detalles JSON en modal.
  • Paso 19: Crear test_discord_connection.php

    • Verificar: Revisar si el archivo ya existe (discord/test_connection.php).
    • Implementar: Crear un script simple para probar la conexión con la API de Discord.
      • Verificación de token.
      • Conexión con Discord API (@me).
      • Acceso al servidor Discord (Guild ID).
      • Listado de canales.
  • Paso 20: Crear webhook de Discord

    • Verificar: Analizar archivos existentes en /discord/webhook/ (index.php).
    • Implementar/Corregir:
      • Verificación de firma de seguridad Discord (Ed25519) - Fallo seguro si extensión sodium no instalada.
      • Manejo de interacción PING (tipo 1).
      • Manejo básico de componentes de mensaje (tipo 3) para selección de idioma (lang_select_).
      • Implementar: Manejo de comandos de aplicación (Slash Commands - tipo 2):
        • Detección y procesamiento de comandos como /comandos, /agente.
      • Implementar: Manejo de mensajes entrantes (directos o de canal, si aplica).
      • Implementar: Registrar destinatarios (ej. usuarios que interactúan por primera vez).
      • Mejorar: Detectar idioma y traducir (integración completa con LibreTranslate).
      • Implementar: Envío de respuestas con imágenes y división de mensajes largos.
      • Integrar: Sincronización con el webhook (tarea pendiente del Paso 14, ahora parte de este paso).

🟣 FASE 4.2 PLATAFORMA TELEGRAM

  • Paso 21: Crear estructura interna de /telegram
    • Verificar: Analizar archivos existentes en /telegram/.
      • La estructura de directorios (api/, controllers/, models/, public/, routes/, views/, webhook/) ya existe.
  • Paso 22: Crear dashboard_telegram.php (Idéntico a Discord, Paso 9)
    • Verificar: Analizar telegram/dashboard_telegram.php.
    • Implementar/Corregir: Asegurar que sea funcional como panel principal de Telegram.
  • Paso 23: Galería ya existe (no se duplica) (Idéntico a Discord, Paso 10)
    • Verificar: El módulo de Galería (/gallery) es compartido y ya está implementado (Paso 10).
  • Paso 24: Módulo de PLANTILLAS TELEGRAM (Idéntico a Discord, Paso 11)
    • Verificar: Analizar archivos existentes en /telegram/views/templates/ y APIs asociadas.
    • Implementar/Corregir:
      • Crear la interfaz (list.php, create.php, edit.php, preview.php) para plantillas Telegram.
      • Implementar APIs (/telegram/api/templates/).
      • Asegurar funciones de crear, listar, editar, eliminar y previsualizar.
      • Integrar botón para insertar imágenes de la galería en el editor.
  • Paso 25: Módulo de CREAR MENSAJE TELEGRAM (Idéntico a Discord, Paso 12)
    • Verificar: Analizar archivos existentes en /telegram/views/messages/ (create.php) y API /telegram/api/messages/send.php.
    • Implementar/Corregir:
      • Interfaz para seleccionar destinatario(s) e ingresar contenido.
      • Carga de plantillas en el editor.
      • Editor local con soporte de imágenes (Summernote + Galería).
      • Previsualización del mensaje.
      • API para enviar mensajes inmediatos a Telegram.
      • Guardado del mensaje enviado en mensajes_telegram.
      • Mejorar: Permitir selección de múltiples destinatarios.
      • Implementar: Funcionalidad de envío programado.
      • Implementar: Funcionalidad de envío recurrente.
  • Paso 26: Módulo de ENVIADOS TELEGRAM (Idéntico a Discord, Paso 13)
    • Verificar: Analizar archivos existentes en /telegram/views/messages/ (sent.php).
    • Implementar/Corregir:
      • Página para listar mensajes enviados (con paginación).
      • Mejorar: Mostrar mensajes en todos los estados (enviado, pendiente, fallido, deshabilitado).
      • Implementar: Botón "Eliminar" (que cambie estado a 'deshabilitado' y elimine en Telegram si es posible).
  • Paso 27: Módulo de DESTINATARIOS TELEGRAM (Idéntico a Discord, Paso 14)
    • Verificar: Analizar archivos existentes en /telegram/views/recipients/ y APIs.
    • Implementar/Corregir:
      • Interfaz para listar, crear, editar, eliminar destinatarios.
      • Implementar APIs (/telegram/api/recipients/).
      • Mejorar: Gestión de tipos de destinatario de Telegram (usuarios, canales, grupos).
      • Implementar: Funcionalidad para expulsar (requiere interacción con la API de Telegram).
      • Integrar: Sincronización con el webhook (se abordará en el Paso 33).
  • Paso 28: Módulo de COMANDOS TELEGRAM (Idéntico a Discord, Paso 15)
    • Verificar: Analizar archivos existentes en /telegram/views/commands/.
    • Implementar/Corregir:
      • Página para listar comandos (reutiliza plantillas con comando asociado).
      • Funcionalidad para eliminar un comando.
  • Paso 29: Idiomas (ya existe, se usa igual) (Idéntico a Discord, Paso 16)
    • Verificar: El módulo de Idiomas (/shared/languages) es compartido y ya está implementado (Paso 16).
  • Paso 30: Módulo de MENSAJE DE BIENVENIDA TELEGRAM (Idéntico a Discord, Paso 17)
    • Verificar: Analizar archivos existentes en /telegram/views/welcome/.
    • Implementar/Corregir:
      • Crear la interfaz (config.php) para configurar el mensaje de bienvenida.
      • API /telegram/api/welcome/send_test.php para probar mensaje.
      • Selección e inserción de imagen opcional.
      • Selección de idiomas específicos.
      • Botón "Únete al grupo".
  • Paso 31: Módulo de LOGS TELEGRAM (Idéntico a Discord, Paso 18)
    • Verificar: Analizar archivos existentes en /telegram/views/logs/ (list.php).
    • Implementar: Crear la interfaz para visualizar los logs de Telegram.
      • Listado de logs con paginación.
      • Filtrado por nivel, origen y búsqueda en descripción.
      • Visualización de detalles JSON en modal.
  • Paso 32: Crear test_telegram_connection.php (Idéntico a Discord, Paso 19)
    • Verificar: Analizar telegram/test_connection.php.
    • Implementar: Crear un script simple para probar la conexión con la API de Telegram.
      • Verificación de token.
      • Conexión con Telegram API (getMe, getUpdates).
      • Gestión de Webhook (set, delete, getInfo).
  • Paso 33: Crear webhook de Telegram (Idéntico a Discord, Paso 20)
    • Verificar: Analizar archivos existentes en /telegram/webhook/.
    • Implementar: Desarrollar la lógica del webhook para manejar mensajes, comandos y registros.
      • Verificación de secret_token del webhook.
      • Registro de destinatarios que interactúan.
      • Manejo de MESSAGE_CREATE (mensajes entrantes).
      • Manejo de comandos de texto (/start, /help, comandos de plantillas_telegram, #grupo).
      • Manejo de CALLBACK_QUERY (botones inline) para selección de idioma.
      • Detección de idioma y traducción de respuestas del bot.
      • Implementar: Envío de respuestas con imágenes y división de mensajes largos.
      • Integrar: Sincronización con el webhook.

🟥 FASE 5 — Módulos Compartidos Finales

  • Paso 34: Implementar permisos por rol
    • Verificar: Analizar tablas roles y permisos en shared/database/schema.sql.
    • Definir Permisos Específicos: Crear una lista de permisos necesarios para cada acción (crear, editar, eliminar, etc.) en módulos clave.
    • Crear Helper de Permisos: Implementar una función centralizada hasPermission($permissionName, $platform = 'global') en shared/utils/helpers.php.
    • Integrar Permisos en APIs: Añadir verificaciones de permisos al inicio de cada endpoint de API crítico.
    • Integrar Permisos en Vistas: Ocultar/mostrar elementos de UI (botones, enlaces) según los permisos del usuario.
  • Paso 35: Implementar traducción completa del sistema
    • Crear Archivos de Traducción: Crear archivos JSON (es.json, en.json, pt.json) en shared/translations/.
    • Crear Helper de Traducción: Implementar una función __($key) en shared/translations/manager.php.
    • Refactorizar Vistas: Reemplazar todas las cadenas de texto hardcoded con la función __().
  • Paso 36: Definir notificaciones internas
    • Crear sistema de notificaciones: Implementar un sistema de notificaciones "toast" no intrusivas.
    • 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