# 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