Saltar al contenido principal
Versión: 2.0

Módulo: Usuarios (Admin)

Scope

Tipo de organizaciónAcceso
Empresa
Agencia
Reclutador independiente

Permisos por rol

AcciónDisponiblePermiso
Ver lista de usuariosAutenticado (admin)
Ver detalle de usuarioAutenticado (admin)

¿Qué es?

Módulo administrativo que permite ver los usuarios registrados en la plataforma. Es una vista de consulta — no permite crear ni modificar usuarios (eso se hace a través de membresías e invitaciones en el módulo de Equipo).

¿Qué puede hacer el usuario?

  • Ver lista de todos los usuarios
  • Ver detalle de un usuario específico (nombre, email, teléfono, website, empresa)

Flujo del usuario

1. Navega a "Usuarios" desde el menú/drawer
2. Ve lista de usuarios con nombre y email
3. Toca un usuario → ve detalle con información completa
4. Puede regresar a la lista

Reglas de negocio

  • Módulo de consulta únicamente (read-only)
  • No tiene paginación en la versión actual (carga todos)
  • Los usuarios mostrados son los del tenant activo

Arquitectura

lib/features/users/
├── application/
│ ├── users_cubit.dart # Carga lista de usuarios
│ ├── users_state.dart # UsersStatus enum
│ ├── user_detail_cubit.dart # Carga detalle de un usuario
│ └── user_detail_state.dart
├── data/
│ ├── datasources/
│ │ └── users_remote_datasource.dart
│ ├── models/
│ │ └── user_model.dart # fromJson
│ └── repositories/
│ └── users_repository_impl.dart
├── domain/
│ ├── entities/
│ │ └── user_entity.dart # Equatable
│ ├── repositories/
│ │ └── users_repository.dart
│ └── usecases/
│ ├── get_users_usecase.dart
│ └── get_user_by_id_usecase.dart
└── presentation/
├── pages/
│ ├── users_page.dart
│ └── user_detail_page.dart
└── widgets/
└── user_list_tile.dart

Endpoints API

MétodoEndpointAutenticaciónDescripción
GET/usersBearer tokenLista todos los usuarios del tenant
GET/users/:idBearer tokenDetalle de un usuario

Entidad

UserEntity(
id: int,
name: String,
email: String,
phone: String?,
website: String?,
company: String?,
)

Registro DI

  • Datasource: LazySingleton
  • Repository: LazySingleton
  • Use Cases: LazySingleton (GetUsersUseCase, GetUserByIdUseCase)
  • Cubits: Factory (nueva instancia por pantalla)
getIt<UsersCubit>()
getIt<UserDetailCubit>()

Localización

Usa claves l10n existentes: users, userDetail, loading, retry, errorGeneric.

Estados de la UI

UsersPage

EstadoComportamiento
LoadingCircularProgressIndicator
SuccessLista de UserListTile
ErrorMensaje de error + reintentar
EmptyMensaje "Sin usuarios"

UserDetailPage

EstadoComportamiento
LoadingCircularProgressIndicator
SuccessCard con datos completos del usuario
ErrorMensaje de error + reintentar