workspace/projects/gamilit/docs/90-transversal/api/API-ADMIN-MODULE.md
rckrdmrd 11f43c0be9 docs: Correcciones P1 - Admin API, Triggers inventory, Master inventory
## Documentacion nueva:
- API-ADMIN-MODULE.md: 22 controllers, 150+ endpoints documentados
- TRIGGERS-INVENTORY.md: 111 triggers de BD documentados por schema

## Actualizaciones:
- MASTER_INVENTORY.yml v4.0.0: Metricas corregidas
  - Database: 15 schemas, 132 tablas, 111 triggers
  - Backend: 16 modulos, 103 services, 76 controllers
  - Frontend: 497 componentes, 102 hooks, 64 paginas
- API.md: Seccion Admin Portal API agregada
- LOG-IMPLEMENTACION.md: P1-001 a P1-003 completados

Progreso auditoria: P0 100%, P1 43%

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 12:34:33 -06:00

615 lines
15 KiB
Markdown

# API ADMIN MODULE
**Proyecto:** GAMILIT - Plataforma Educativa Gamificada
**Modulo:** Admin
**Version:** 1.0
**Fecha:** 2025-12-23
**Generado por:** Auditoria de Documentacion
---
## RESUMEN
| Metrica | Valor |
|---------|-------|
| **Controllers** | 22 |
| **Services** | 22 |
| **Endpoints** | 150+ |
| **Entidades** | 6 |
| **Roles requeridos** | super_admin |
---
## CONTROLLERS
1. `AdminAlertsController` - Sistema de alertas
2. `AdminAnalyticsController` - Analisis y reportes
3. `AdminAssignmentsController` - Gestion de asignaciones
4. `AdminBulkOperationsController` - Operaciones masivas
5. `AdminContentController` - Gestion de contenido
6. `AdminDashboardController` - Dashboard principal
7. `AdminDashboardActivityController` - Actividad del dashboard
8. `AdminDashboardStatsController` - Estadisticas del dashboard
9. `AdminGamificationConfigController` - Configuracion de gamificacion
10. `AdminInterventionsController` - Alertas de intervencion
11. `AdminLogsController` - Logs del sistema
12. `AdminMonitoringController` - Monitoreo del sistema
13. `AdminOrganizationsController` - Gestion de organizaciones
14. `AdminProgressController` - Seguimiento de progreso
15. `AdminReportsController` - Reportes
16. `AdminRolesController` - Roles y permisos
17. `AdminSystemController` - Sistema y configuracion
18. `AdminUserStatsController` - Estadisticas de usuarios
19. `AdminUsersController` - Gestion de usuarios
20. `ClassroomAssignmentsController` - Asignacion de aulas
21. `ClassroomTeachersRestController` - REST API aulas-profesores
22. `FeatureFlagsController` - Feature flags
---
## 1. DASHBOARD ENDPOINTS
### GET /admin/dashboard
**Descripcion:** Dashboard completo con estadisticas agregadas
### GET /admin/dashboard/stats
**Descripcion:** Solo estadisticas del sistema
### GET /admin/dashboard/recent-activity
**Descripcion:** Actividad reciente del sistema
### GET /admin/dashboard/user-stats
**Descripcion:** Estadisticas de usuarios
### GET /admin/dashboard/organization-stats
**Descripcion:** Estadisticas de organizaciones
### GET /admin/dashboard/moderation-queue
**Descripcion:** Cola de moderacion de contenido
### GET /admin/dashboard/classroom-overview
**Descripcion:** Vista general de aulas
### GET /admin/dashboard/assignment-stats
**Descripcion:** Estadisticas de asignaciones
### GET /admin/dashboard/actions/recent
**Descripcion:** Acciones administrativas recientes
### GET /admin/dashboard/alerts
**Descripcion:** Alertas activas del sistema
### GET /admin/dashboard/analytics/user-activity
**Descripcion:** Analiticas de actividad de usuarios
---
## 2. USERS ENDPOINTS
### GET /admin/users
**Descripcion:** Listar usuarios con filtros y paginacion
**Query params:**
- `page` (optional)
- `limit` (optional)
- `role` (optional): student, admin_teacher, super_admin
- `status` (optional): active, suspended, inactive
- `search` (optional): busqueda por nombre/email
### GET /admin/users/:id
**Descripcion:** Obtener detalles del usuario
### GET /admin/users/stats
**Descripcion:** Estadisticas detalladas de usuarios
### PUT /admin/users/:id
**Descripcion:** Actualizar usuario
### DELETE /admin/users/:id
**Descripcion:** Eliminar usuario
### POST /admin/users/:id/suspend
**Descripcion:** Suspender usuario
### POST /admin/users/:id/activate
**Descripcion:** Activar usuario suspendido
### POST /admin/users/:id/deactivate
**Descripcion:** Desactivar usuario
### POST /admin/users/:id/reset-password
**Descripcion:** Forzar reseteo de contrasena
---
## 3. BULK OPERATIONS ENDPOINTS
### POST /admin/bulk-operations/suspend-users
**Descripcion:** Suspender multiples usuarios
**Body:**
```json
{
"userIds": ["uuid1", "uuid2", "uuid3"],
"reason": "Motivo de suspension"
}
```
### POST /admin/bulk-operations/activate-users
**Descripcion:** Activar multiples usuarios
### POST /admin/bulk-operations/update-role
**Descripcion:** Actualizar roles masivamente
### POST /admin/bulk-operations/delete-users
**Descripcion:** Eliminar multiples usuarios
### GET /admin/bulk-operations/:id
**Descripcion:** Obtener estado de operacion
### GET /admin/bulk-operations
**Descripcion:** Listar operaciones recientes
---
## 4. ORGANIZATIONS ENDPOINTS
### GET /admin/organizations
**Descripcion:** Listar organizaciones/tenants
### GET /admin/organizations/:id
**Descripcion:** Obtener organizacion
### POST /admin/organizations
**Descripcion:** Crear organizacion
### PUT /admin/organizations/:id
**Descripcion:** Actualizar organizacion
### DELETE /admin/organizations/:id
**Descripcion:** Eliminar organizacion
### GET /admin/organizations/:id/stats
**Descripcion:** Estadisticas de organizacion
### GET /admin/organizations/:id/users
**Descripcion:** Usuarios de organizacion
### PATCH /admin/organizations/:id/subscription
**Descripcion:** Actualizar suscripcion
### PATCH /admin/organizations/:id/features
**Descripcion:** Actualizar feature flags de org
---
## 5. CONTENT MANAGEMENT ENDPOINTS
### GET /admin/content/pending
**Descripcion:** Contenido pendiente de aprobacion
### GET /admin/content/exercises/pending
**Descripcion:** Ejercicios pendientes
### POST /admin/content/:id/approve
**Descripcion:** Aprobar contenido
### POST /admin/content/:id/reject
**Descripcion:** Rechazar contenido
### POST /admin/content/version
**Descripcion:** Crear snapshot de version
### GET /admin/content/media
**Descripcion:** Obtener libreria de medios
### DELETE /admin/content/media/:id
**Descripcion:** Eliminar archivo de media
### GET /admin/content/approval-history
**Descripcion:** Historial de aprobaciones
---
## 6. GAMIFICATION CONFIG ENDPOINTS
### GET /admin/gamification/settings
**Descripcion:** Obtener configuracion actual de gamificacion
### PUT /admin/gamification/settings
**Descripcion:** Actualizar configuracion
### POST /admin/gamification/settings/preview
**Descripcion:** Previsualizar impacto de cambios
### POST /admin/gamification/restore-defaults
**Descripcion:** Restaurar valores por defecto
### GET /admin/gamification/parameters
**Descripcion:** Listar parametros por categoria
### GET /admin/gamification/parameters/:id
**Descripcion:** Obtener parametro por ID
### PUT /admin/gamification/parameters/:id
**Descripcion:** Actualizar parametro
### GET /admin/gamification/maya-ranks
**Descripcion:** Obtener configuracion de rangos Maya
### PUT /admin/gamification/maya-ranks/:rankName
**Descripcion:** Actualizar umbral de rango Maya
---
## 7. ANALYTICS ENDPOINTS
### GET /admin/analytics/overview
**Descripcion:** Vista general de analiticas
### GET /admin/analytics/engagement
**Descripcion:** Analiticas de engagement por segmento
### GET /admin/analytics/gamification
**Descripcion:** Distribucion de XP, rangos y niveles
### GET /admin/analytics/activity-timeline
**Descripcion:** Linea de tiempo de actividad
**Query params:**
- `days` (optional): Ultimos N dias (default: 30)
### GET /admin/analytics/top-users
**Descripcion:** Top usuarios por metrica
**Query params:**
- `metric` (optional): xp, exercises, streak
- `limit` (optional): default 10
### GET /admin/analytics/retention
**Descripcion:** Retencion por cohorte (12 meses)
### GET /admin/analytics/export
**Descripcion:** Exportar analiticas a CSV
---
## 8. PROGRESS TRACKING ENDPOINTS
### GET /admin/progress/overview
**Descripcion:** Vista general del sistema
### GET /admin/progress/classrooms/:id
**Descripcion:** Progreso detallado de aula
### GET /admin/progress/students/:id
**Descripcion:** Progreso detallado de estudiante
### GET /admin/progress/students/:id/achievements
**Descripcion:** Logros de estudiante
### GET /admin/progress/modules/:id
**Descripcion:** Estadisticas del modulo
### GET /admin/progress/exercises/:id
**Descripcion:** Estadisticas del ejercicio
### GET /admin/progress/export
**Descripcion:** Exportar datos de progreso a CSV
---
## 9. ALERTS ENDPOINTS
### GET /admin/alerts
**Descripcion:** Listar alertas con filtros
### GET /admin/alerts/stats/summary
**Descripcion:** Estadisticas de alertas
### GET /admin/alerts/:id
**Descripcion:** Obtener alerta por ID
### POST /admin/alerts
**Descripcion:** Crear alerta manual
### PATCH /admin/alerts/:id/acknowledge
**Descripcion:** Reconocer alerta
### PATCH /admin/alerts/:id/resolve
**Descripcion:** Resolver alerta
### PATCH /admin/alerts/:id/suppress
**Descripcion:** Suprimir alerta
---
## 10. INTERVENTIONS ENDPOINTS
### GET /admin/interventions
**Descripcion:** Listar alertas de intervencion
### GET /admin/interventions/:id
**Descripcion:** Obtener alerta por ID
### PATCH /admin/interventions/:id/acknowledge
**Descripcion:** Reconocer alerta
### PATCH /admin/interventions/:id/resolve
**Descripcion:** Resolver alerta
### DELETE /admin/interventions/:id/dismiss
**Descripcion:** Descartar alerta
---
## 11. SYSTEM ENDPOINTS
### GET /admin/system/health
**Descripcion:** Estado de salud del sistema
### GET /admin/system/metrics
**Descripcion:** Metricas del sistema
### GET /admin/system/audit-log
**Descripcion:** Log de auditoria
### GET /admin/system/config
**Descripcion:** Obtener configuracion
### GET /admin/system/config/:category
**Descripcion:** Configuracion por categoria
### PUT /admin/system/config/:category
**Descripcion:** Actualizar configuracion por categoria
### POST /admin/system/maintenance
**Descripcion:** Alternar modo mantenimiento
### POST /admin/system/maintenance/cleanup-logs
**Descripcion:** Limpiar logs antiguos
### POST /admin/system/maintenance/cleanup-activity
**Descripcion:** Limpiar logs de actividad
### POST /admin/system/maintenance/optimize-database
**Descripcion:** Optimizar base de datos
### POST /admin/system/maintenance/clear-cache
**Descripcion:** Limpiar cache
### POST /admin/system/maintenance/cleanup-sessions
**Descripcion:** Limpiar sesiones expiradas
### GET /admin/system/cron/status
**Descripcion:** Estado de trabajos CRON
---
## 12. MONITORING ENDPOINTS
### GET /admin/monitoring/metrics
**Descripcion:** Metricas actuales del sistema
### GET /admin/monitoring/metrics/history
**Descripcion:** Historial de metricas
### GET /admin/monitoring/errors/stats
**Descripcion:** Estadisticas de errores
### GET /admin/monitoring/errors/recent
**Descripcion:** Errores recientes con detalles
### GET /admin/monitoring/errors/trends
**Descripcion:** Tendencias de errores
---
## 13. ROLES & PERMISSIONS ENDPOINTS
### GET /admin/roles
**Descripcion:** Obtener todos los roles
### GET /admin/roles/permissions
**Descripcion:** Obtener permisos disponibles
### GET /admin/roles/:id/permissions
**Descripcion:** Obtener permisos de rol
### PUT /admin/roles/:id/permissions
**Descripcion:** Actualizar permisos de rol
---
## 14. REPORTS ENDPOINTS
### POST /admin/reports/generate
**Descripcion:** Generar nuevo reporte
**Body:**
```json
{
"type": "users|progress|analytics|content",
"format": "pdf|csv|xlsx",
"filters": {...}
}
```
### GET /admin/reports
**Descripcion:** Listar reportes
### GET /admin/reports/:id/download
**Descripcion:** Descargar reporte
### DELETE /admin/reports/:id
**Descripcion:** Eliminar reporte
---
## 15. CLASSROOM-TEACHER ENDPOINTS
### POST /admin/classrooms/assign
**Descripcion:** Asignar aula a profesor
### POST /admin/classrooms/bulk-assign
**Descripcion:** Asignacion masiva de aulas
### DELETE /admin/classrooms/assign/:teacherId/:classroomId
**Descripcion:** Remover asignacion
### POST /admin/classrooms/reassign
**Descripcion:** Reasignar aula a otro profesor
### GET /admin/classrooms/teacher/:teacherId
**Descripcion:** Obtener aulas de profesor
### GET /admin/classrooms/available
**Descripcion:** Obtener aulas disponibles
### GET /admin/classrooms/:classroomId/history
**Descripcion:** Historial de asignaciones
### GET /admin/classrooms/:id/teachers
**Descripcion:** Obtener profesores de aula
### POST /admin/classrooms/:id/teachers
**Descripcion:** Asignar profesor a aula
### DELETE /admin/classrooms/:id/teachers/:tid
**Descripcion:** Remover profesor de aula
### GET /admin/teachers/:id/classrooms
**Descripcion:** Obtener aulas de profesor
### POST /admin/teachers/:id/classrooms
**Descripcion:** Asignar aulas a profesor
### GET /admin/classroom-teachers
**Descripcion:** Listar todas las asignaciones
### POST /admin/classroom-teachers/bulk
**Descripcion:** Asignacion masiva de pares
### GET /admin/classrooms/list
**Descripcion:** Listar aulas para dropdowns
### GET /admin/teachers/list
**Descripcion:** Listar profesores para dropdowns
---
## 16. FEATURE FLAGS ENDPOINTS
### GET /admin/feature-flags
**Descripcion:** Obtener todos los feature flags
### GET /admin/feature-flags/:key
**Descripcion:** Obtener flag por key
### POST /admin/feature-flags/:key/check
**Descripcion:** Verificar si feature esta habilitada
### POST /admin/feature-flags
**Descripcion:** Crear nuevo flag
### PUT /admin/feature-flags/:key
**Descripcion:** Actualizar flag
### POST /admin/feature-flags/:key/enable
**Descripcion:** Habilitar flag
### POST /admin/feature-flags/:key/disable
**Descripcion:** Deshabilitar flag
### PUT /admin/feature-flags/:key/rollout
**Descripcion:** Actualizar rollout percentage
### DELETE /admin/feature-flags/:key
**Descripcion:** Eliminar flag
---
## 17. ASSIGNMENTS ENDPOINTS
### GET /admin/assignments
**Descripcion:** Listar asignaciones con filtros
### GET /admin/assignments/stats
**Descripcion:** Estadisticas globales
### GET /admin/assignments/:id
**Descripcion:** Detalle de asignacion
### GET /admin/assignments/classrooms/:classroomId
**Descripcion:** Asignaciones de aula
### GET /admin/assignments/students/:studentId
**Descripcion:** Asignaciones de estudiante
---
## AUTENTICACION Y AUTORIZACION
Todos los endpoints requieren:
- **Header:** `Authorization: Bearer <jwt_token>`
- **Rol requerido:** `super_admin`
---
## CODIGOS DE RESPUESTA
| Codigo | Descripcion |
|--------|-------------|
| 200 | Exito |
| 201 | Creado |
| 400 | Solicitud invalida |
| 401 | No autenticado |
| 403 | No autorizado (requiere super_admin) |
| 404 | No encontrado |
| 409 | Conflicto (operacion en progreso) |
| 500 | Error del servidor |
---
## SERVICES DEL MODULO
1. `AdminAlertsService`
2. `AdminAnalyticsService`
3. `AdminAssignmentsService`
4. `AdminContentService`
5. `AdminDashboardService`
6. `AdminInterventionsService`
7. `AdminMonitoringService`
8. `AdminOrganizationsService`
9. `AdminProgressService`
10. `AdminReportsService`
11. `AdminRolesService`
12. `AdminSystemService`
13. `AdminUsersService`
14. `BulkOperationsService`
15. `ClassroomAssignmentsService`
16. `FeatureFlagsService`
17. `GamificationConfigService`
18. `DashboardStatsService`
19. `UserStatsService`
20. `ContentStatsService`
21. `RecentActivityService`
22. `AdminQueryBuilder`
---
## ENTIDADES
1. `SystemSetting` - Configuraciones del sistema
2. `FeatureFlag` - Feature flags globales
3. `NotificationSettings` - Config de notificaciones
4. `BulkOperation` - Registro de operaciones masivas
5. `SystemAlert` - Alertas del sistema
6. `AdminReport` - Reportes generados
---
**Generado por:** Requirements-Analyst
**Fecha:** 2025-12-23
**Version:** 1.0