platform-marketing-content/docs/03-requerimientos/RF-PMC-007-ADMIN.md

439 lines
8.3 KiB
Markdown

# Requerimientos Funcionales - PMC-007 Admin
**Módulo:** Admin
**Versión:** 1.0.0
**Fecha:** 2025-12-08
---
## Gestión de Usuarios
### RF-PMC-007-001: Listar Usuarios
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-001 |
| **Nombre** | Listar Usuarios |
| **Prioridad** | P1 |
| **Actor** | Tenant Admin |
**Datos de salida:**
- Lista de usuarios del tenant
- Status, rol, último login
- Filtros por status y rol
**Criterios de aceptación:**
- [ ] Solo usuarios del tenant
- [ ] Paginación funciona
- [ ] Búsqueda por nombre/email
---
### RF-PMC-007-002: Invitar Usuario
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-002 |
| **Nombre** | Invitar Usuario |
| **Prioridad** | P1 |
| **Actor** | Tenant Admin |
**Datos de entrada:**
- email: string (requerido)
- role_id: UUID (requerido)
- message: text (opcional)
**Flujo:**
1. Admin ingresa email y selecciona rol
2. Sistema verifica email no existe en tenant
3. Sistema crea invitación con token único
4. Sistema envía email con link
5. Invitación expira en 7 días
**Criterios de aceptación:**
- [ ] Email de invitación enviado
- [ ] Token único generado
- [ ] Invitación listada como pendiente
---
### RF-PMC-007-003: Aceptar Invitación
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-003 |
| **Nombre** | Aceptar Invitación |
| **Prioridad** | P1 |
| **Actor** | Usuario invitado |
**Datos de entrada:**
- token: string (del link)
- first_name: string
- last_name: string
- password: string
**Criterios de aceptación:**
- [ ] Usuario creado con rol asignado
- [ ] Password hasheado
- [ ] Invitación marcada como aceptada
- [ ] Usuario puede hacer login
---
### RF-PMC-007-004: Editar Usuario
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-004 |
| **Nombre** | Editar Usuario |
| **Prioridad** | P1 |
| **Actor** | Tenant Admin |
**Datos editables:**
- first_name, last_name
- role_id
- status
**Criterios de aceptación:**
- [ ] Campos se actualizan
- [ ] Cambio de rol aplica inmediatamente
- [ ] Audit log registra cambios
---
### RF-PMC-007-005: Suspender Usuario
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-005 |
| **Nombre** | Suspender Usuario |
| **Prioridad** | P2 |
| **Actor** | Tenant Admin |
**Descripción:**
Bloquear acceso de un usuario temporalmente.
**Criterios de aceptación:**
- [ ] Status cambia a "suspended"
- [ ] Sesiones invalidadas
- [ ] Usuario no puede hacer login
- [ ] Admin no puede suspenderse a sí mismo
---
### RF-PMC-007-006: Reactivar Usuario
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-006 |
| **Nombre** | Reactivar Usuario |
| **Prioridad** | P2 |
| **Actor** | Tenant Admin |
**Criterios de aceptación:**
- [ ] Status cambia a "active"
- [ ] Usuario puede hacer login
---
### RF-PMC-007-007: Eliminar Usuario
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-007 |
| **Nombre** | Eliminar Usuario |
| **Prioridad** | P2 |
| **Actor** | Tenant Admin |
**Criterios de aceptación:**
- [ ] Status cambia a "deactivated"
- [ ] Soft delete
- [ ] Datos preservados (para auditoría)
- [ ] No puede ser el último admin
---
### RF-PMC-007-008: Reenviar Invitación
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-008 |
| **Nombre** | Reenviar Invitación |
| **Prioridad** | P2 |
| **Actor** | Tenant Admin |
**Criterios de aceptación:**
- [ ] Nuevo email enviado
- [ ] Token regenerado
- [ ] Expiry extendido
---
## Gestión de Roles
### RF-PMC-007-009: Listar Roles
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-009 |
| **Nombre** | Listar Roles |
| **Prioridad** | P1 |
| **Actor** | Tenant Admin |
**Datos de salida:**
- Roles de sistema
- Roles custom del tenant
- Usuarios por rol
**Criterios de aceptación:**
- [ ] Todos los roles listados
- [ ] Identificación clara de roles de sistema
---
### RF-PMC-007-010: Ver Permisos de Rol
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-010 |
| **Nombre** | Ver Permisos de Rol |
| **Prioridad** | P1 |
| **Actor** | Tenant Admin |
**Datos de salida:**
- Lista de permisos agrupados por módulo
- Checkbox de cada permiso
**Criterios de aceptación:**
- [ ] Permisos organizados por módulo
- [ ] Visual claro de lo que puede/no puede hacer
---
### RF-PMC-007-011: Crear Rol Custom
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-011 |
| **Nombre** | Crear Rol Custom |
| **Prioridad** | P2 |
| **Actor** | Tenant Admin |
**Datos de entrada:**
- name: string
- description: text
- permissions: array[string]
**Criterios de aceptación:**
- [ ] Rol creado con is_system=false
- [ ] Permisos asignados
- [ ] Disponible para asignar a usuarios
---
### RF-PMC-007-012: Editar Rol Custom
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-012 |
| **Nombre** | Editar Rol Custom |
| **Prioridad** | P2 |
| **Actor** | Tenant Admin |
**Restricciones:**
- Roles de sistema no editables
**Criterios de aceptación:**
- [ ] Permisos actualizables
- [ ] Cambios aplican inmediatamente a usuarios
---
### RF-PMC-007-013: Eliminar Rol Custom
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-013 |
| **Nombre** | Eliminar Rol Custom |
| **Prioridad** | P3 |
| **Actor** | Tenant Admin |
**Restricciones:**
- No puede tener usuarios asignados
- Roles de sistema no eliminables
**Criterios de aceptación:**
- [ ] Validación de usuarios previo a eliminar
- [ ] Error si tiene usuarios
---
## Configuración
### RF-PMC-007-014: Ver Configuración del Tenant
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-014 |
| **Nombre** | Ver Configuración del Tenant |
| **Prioridad** | P1 |
| **Actor** | Tenant Admin |
**Secciones:**
- General (nombre, timezone, idioma)
- Branding
- Generación (defaults)
- Integraciones
- Notificaciones
**Criterios de aceptación:**
- [ ] Todas las secciones accesibles
- [ ] Valores actuales mostrados
---
### RF-PMC-007-015: Editar Configuración General
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-015 |
| **Nombre** | Editar Configuración General |
| **Prioridad** | P1 |
| **Actor** | Tenant Admin |
**Datos editables:**
- Nombre del tenant
- Timezone
- Idioma por defecto
- Formato de fecha
**Criterios de aceptación:**
- [ ] Cambios guardados
- [ ] Aplican a nuevos usuarios
- [ ] Usuarios existentes pueden tener preferencia propia
---
### RF-PMC-007-016: Configurar Integraciones
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-016 |
| **Nombre** | Configurar Integraciones |
| **Prioridad** | P2 |
| **Actor** | Tenant Admin |
**Integraciones configurables:**
- n8n webhook URL
- Slack webhook
- SMTP custom (opcional)
- CRM externo URL
**Criterios de aceptación:**
- [ ] URLs validadas
- [ ] Test de conexión disponible
- [ ] Secrets seguros
---
## Auditoría
### RF-PMC-007-017: Ver Logs de Auditoría
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-017 |
| **Nombre** | Ver Logs de Auditoría |
| **Prioridad** | P2 |
| **Actor** | Tenant Admin |
**Filtros:**
- Usuario
- Acción
- Entidad
- Fecha
**Criterios de aceptación:**
- [ ] Logs listados con paginación
- [ ] Filtros combinables
- [ ] Detalle expandible
---
### RF-PMC-007-018: Exportar Logs de Auditoría
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-018 |
| **Nombre** | Exportar Logs de Auditoría |
| **Prioridad** | P3 |
| **Actor** | Tenant Admin |
**Formatos:**
- CSV
- JSON
**Criterios de aceptación:**
- [ ] Filtros aplicados en export
- [ ] Archivo descargable generado
---
## Sistema (Super Admin)
### RF-PMC-007-019: Ver Estado del Sistema
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-019 |
| **Nombre** | Ver Estado del Sistema |
| **Prioridad** | P2 |
| **Actor** | Super Admin |
**Métricas:**
- Estado de servicios (API, ComfyUI, Redis, DB)
- Uso de GPU
- Cola de generación
- Storage total
**Criterios de aceptación:**
- [ ] Dashboard de salud
- [ ] Alertas en problemas
---
### RF-PMC-007-020: Ver Uso por Tenant
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-007-020 |
| **Nombre** | Ver Uso por Tenant |
| **Prioridad** | P2 |
| **Actor** | Super Admin |
**Métricas por tenant:**
- Generaciones
- Storage
- Usuarios activos
- API calls
**Criterios de aceptación:**
- [ ] Comparativa entre tenants
- [ ] Exportable
---
## Resumen
| Prioridad | Cantidad |
|-----------|----------|
| P1 | 8 |
| P2 | 10 |
| P3 | 2 |
| **Total** | **20** |
---
**Documento generado por:** Requirements-Analyst
**Fecha:** 2025-12-08