# Especificacion: AdminUsersPage

**Version:** 1.0.0
**Fecha:** 2025-12-18
**Ubicacion:** `apps/frontend/src/apps/admin/pages/AdminUsersPage.tsx`

---

## PROPOSITO

Pagina de administracion para gestionar usuarios del sistema, incluyendo CRUD completo, busqueda, filtros y acciones de suspension.

---

## ESTRUCTURA DE PAGINA

```
┌─────────────────────────────────────────────────────────┐
│                      HEADER                              │
│  [Users Icon] Gestion de Usuarios                       │
│  [+ Crear Usuario]                                      │
└─────────────────────────────────────────────────────────┘
│                                                         │
│  ┌─────────────────────────────────────────────────┐   │
│  │                  STATS CARDS                     │   │
│  │ [Total] [Activos] [Inactivos] [Estudiantes]     │   │
│  │ [Profesores] [Admins]                           │   │
│  └─────────────────────────────────────────────────┘   │
│                                                         │
│  ┌─────────────────────────────────────────────────┐   │
│  │                   FILTROS                        │   │
│  │ [Buscar...] [Rol v] [Estado v] [Limpiar]        │   │
│  └─────────────────────────────────────────────────┘   │
│                                                         │
│  ┌─────────────────────────────────────────────────┐   │
│  │                    TABLA                         │   │
│  │  Usuario | Email | Rol | Estado | Inst | Acciones│   │
│  │  ────────────────────────────────────────────── │   │
│  │  Juan... | j@... | Est | Activo | Esc1 | [...]  │   │
│  │  Maria...| m@... | Prof| Activo | Esc1 | [...]  │   │
│  │  ────────────────────────────────────────────── │   │
│  │  [< Prev]  1 2 3 4 5  [Next >]                  │   │
│  └─────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────┘
```

---

## STATS CARDS (6)

| Card | Dato | Icono |
|------|------|-------|
| Total usuarios | Conteo total | Users |
| Activos | Usuarios activos | UserCheck |
| Inactivos | Usuarios inactivos | UserX |
| Estudiantes | Rol student | GraduationCap |
| Profesores | Rol teacher | BookOpen |
| Admins | Roles admin | Shield |

---

## FILTROS

### Busqueda

- Campo de texto con debounce (300ms)
- Busca en: nombre, email
- Icono de busqueda
- Boton limpiar (X)

### Filtro por Rol

**Opciones:**
- Todos
- student
- admin_teacher
- teacher
- super_admin

### Filtro por Estado

**Opciones:**
- Todos
- active
- inactive
- suspended

---

## TABLA

### Columnas

| Columna | Contenido | Sorteable |
|---------|-----------|-----------|
| Usuario | Avatar + nombre | Si |
| Email | Email | Si |
| Rol | Badge coloreado | No |
| Estado | Icono + texto | No |
| Institucion | Nombre escuela | No |
| Ultimo acceso | Fecha formateada | Si |
| Acciones | Botones | No |

### Estilos de Fila

| Estado | Estilo |
|--------|--------|
| active | Normal |
| inactive | Opacidad reducida |
| suspended | Fondo rojo tenue |

### Badges de Rol

| Rol | Color |
|-----|-------|
| student | Azul |
| teacher | Verde |
| admin_teacher | Naranja |
| super_admin | Rojo |

---

## ACCIONES POR FILA

| Accion | Icono | Condicion |
|--------|-------|-----------|
| Editar | Pencil | Siempre |
| Suspender | Ban | Si active |
| Reactivar | CheckCircle | Si suspended |
| Eliminar | Trash | Siempre (requiere confirm) |

---

## MODALES

### UserDetailModal

**Proposito:** Ver/editar detalles de usuario.

**Campos editables:**
- Nombre
- Email
- Rol
- Institucion (dropdown)
- Estado

**Campos readonly:**
- ID
- Fecha creacion
- Ultimo acceso
- Estadisticas de uso

### ConfirmDialog

**Uso:** Confirmacion de acciones destructivas.

**Variantes:**
- Suspender usuario
- Eliminar usuario
- Reactivar usuario

---

## HOOKS UTILIZADOS

| Hook | Proposito |
|------|-----------|
| useUserManagement | CRUD de usuarios |
| useInstitutions | Lista de instituciones |

---

## PAGINACION

- Items por pagina: 10, 25, 50
- Navegacion: anterior/siguiente
- Numeros de pagina visibles: 5
- Info: "Mostrando 1-25 de 150 usuarios"

---

## PERMISOS

| Accion | Roles Permitidos |
|--------|------------------|
| Ver lista | admin, super_admin |
| Editar | admin, super_admin |
| Suspender | super_admin |
| Eliminar | super_admin |
| Crear | super_admin |

---

## FEEDBACK

| Accion | Toast |
|--------|-------|
| Usuario actualizado | Success verde |
| Usuario suspendido | Warning naranja |
| Usuario eliminado | Success verde |
| Error | Error rojo |

---

## REFERENCIAS

- `useUserManagement.ts` - Hook de gestion
- `userManagementApi.ts` - Cliente API

---

**Ultima actualizacion:** 2025-12-18
