Gestión de Clientes
Administración completa del módulo de clientes. Los clientes se obtienen de la tabla client complementada con información de la tabla user.
Ver Lista de Clientes
La lista de clientes muestra todos los usuarios registrados como clientes en el sistema con información relevante:
-
ID del cliente
-
Email (desde tabla
user) -
Nombre para mostrar (display_name desde tabla
user) -
Tipo de cliente
-
Estado de verificación de email
-
ID de usuario (OAuth2 local IdP)
Crear Cliente
Para crear un nuevo cliente:
-
Accede a la sección "Clientes"
-
Haz clic en "Nuevo Cliente"
-
Completa el formulario con los datos requeridos:
-
Identificador IdP (
local_id): opcional si proporcionas email -
Email: Dirección de correo electrónico del usuario (opcional si proporcionas User ID)
-
Tipo de Cliente: Selecciona el tipo de cliente
-
-
Guarda los cambios
Usuarios existentes en el IdP
El sistema maneja automáticamente usuarios que ya existen en OAuth2 local:
-
Si proporcionas un email: verifica si el usuario existe en el IdP
-
Si existe: busca
user_iden PostgreSQL porlocal_id -
Si no existe en BD: crea o vincula el registro
user -
Si no existe en IdP: crea usuario en OAuth2 local con el email indicado
Nota: puedes indicar email o local_id del IdP; no uses terminología de proveedores externos.
Editar Cliente
Los datos de los clientes pueden ser actualizados desde el panel de administración:
-
Selecciona el cliente a editar
-
Haz clic en "Editar"
-
Modifica el tipo de cliente (el user_id no se puede modificar)
-
Guarda los cambios
Eliminar Cliente
Los clientes pueden ser eliminados siguiendo las políticas de retención de datos:
-
Selecciona el cliente
-
Haz clic en "Eliminar"
-
Confirma la eliminación
La eliminación borra la fila del usuario en la tabla user (rol client).
No se elimina la cuenta en OAuth2 local IdP si existe allí; solo el registro en PostgreSQL.
Cuándo no se puede eliminar (409)
El sistema rechaza la eliminación si el cliente tiene dependencias bloqueantes:
-
Reservas asociadas como cliente (
reservation.client_id) -
Reservas donde figura como operador (
reservation.operator_id) -
Sesiones de caja como cajero (
till.cashier_id) -
Inscripciones con pagos registrados
En esos casos el panel muestra un toast con el motivo concreto (mensaje del API con viñetas cuando hay varios bloqueos). Debes resolver las dependencias antes de volver a intentar.
Búsqueda y Filtros
Utiliza las herramientas de búsqueda para encontrar clientes:
-
Por email (búsqueda en tabla
user) -
Por nombre para mostrar (display_name)
-
Por tipo de cliente
Paginación
La lista de clientes incluye paginación con 50 registros por página. Puedes navegar entre páginas usando los controles de paginación en la parte inferior de la lista.
Gestión de Tipos de Cliente
Los tipos de cliente definen categorías especiales:
-
Cliente Regular: Cliente estándar sin beneficios especiales
-
Cliente VIP: Cliente con beneficios y prioridades especiales
-
Cliente Corporativo: Cliente empresarial con tarifas especiales
-
Cliente Promocional: Cliente con descuentos o promociones activas
Verificación de Datos
Verificar Información del Cliente
Es importante mantener la información de clientes actualizada:
-
Email verificado: Indica si el cliente ha confirmado su email
-
Datos completos: Verifica que toda la información esté completa
-
Contacto actualizado: Confirma que los datos de contacto sean correctos
Actualizar Información desde User
La información básica del cliente (nombre, email) proviene de la tabla user. Si necesitas actualizar esta información:
-
El cliente debe actualizar su perfil desde la aplicación
-
O un super usuario puede actualizar la información en la tabla
user -
Los cambios se reflejarán automáticamente en la vista de clientes
Mejores Prácticas
-
Mantén datos actualizados: Revisa regularmente la información de clientes
-
Verifica tipos de cliente: Asegúrate de que los tipos estén correctamente asignados
-
Documenta cambios: Toma notas sobre cambios importantes en la información de clientes
-
Respeta privacidad: Maneja la información de clientes con confidencialidad
-
Coordina con operadores: Comunica cambios relevantes al equipo operativo
Solución de Problemas
Cliente No Aparece en la Lista
Si un cliente no aparece:
-
Verifica que el cliente esté registrado en OAuth2 local IdP
-
Confirma que exista un registro en la tabla
user -
Verifica los filtros aplicados
-
Contacta al super usuario si el problema persiste
Error al Crear Cliente
Si hay error al crear un cliente:
-
Código 400 (Bad Request): Solicitud mal formada
-
Verifica que el
user_idsea un número válido (si se proporciona) -
Verifica que el formato del email sea correcto
-
Asegúrate de proporcionar
user_idoemail(al menos uno es requerido) -
Verifica que el usuario exista en la base de datos si proporcionas
user_id -
Código 409 (Conflict): Conflicto de recursos
-
"El email ya está en uso" - El email ya está registrado en OAuth2 local IdP
-
"El teléfono ya está en uso" - El teléfono ya está registrado en el sistema
-
"El usuario ya es cliente" - El usuario ya tiene un registro de cliente activo
-
"El usuario no puede convertirse en cliente" - El usuario tiene roles que impiden ser cliente
-
Otros errores:
-
Verifica que el
local_iddel IdP sea correcto (si se proporciona) -
Confirma que el usuario exista en OAuth2 local IdP (si se proporciona email)
-
Asegúrate de que no haya un cliente duplicado
-
Revisa que todos los campos requeridos estén completos
Códigos de Estado HTTP
El sistema utiliza códigos de estado HTTP estándar para indicar el resultado de las operaciones:
-
200 OK: Operación exitosa
-
400 Bad Request: Solicitud mal formada (datos inválidos, formato incorrecto)
-
409 Conflict: Conflicto de recursos (email/teléfono en uso, usuario ya es cliente)
-
404 Not Found: Recurso no encontrado
-
500 Internal Server Error: Error interno del servidor
Los códigos 409 se utilizan específicamente para conflictos de recursos, mientras que 400 se usa para solicitudes mal formadas.