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 usuarios✅Autenticado (admin)
Ver detalle de usuario✅Autenticado (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