← Volver a ClientesController

👥 Gestión de Clientes

Endpoints para la gestión CRUD completa de clientes del restaurante

Descripción General

Los endpoints de Gestión de Clientes proporcionan las operaciones fundamentales para administrar la información de los clientes del restaurante. Estos endpoints manejan el registro, consulta, actualización y eliminación de datos de clientes, incluyendo información personal, de contacto y estado de actividad.

🎯 Características de la Gestión de Clientes

  • Identificación única: Cada cliente tiene un ID único en el sistema
  • Información personal: Nombre, dirección, teléfono y email
  • Estado activo/inactivo: Control de actividad del cliente
  • Historial de registros: Fecha de alta y seguimiento temporal
  • Validación de datos: Verificación de integridad de la información

Endpoints Disponibles

GET /Master/Clientes/GetClientes

Obtiene todos los clientes registrados en el sistema. Este endpoint devuelve una lista completa de todos los clientes activos e inactivos en la base de datos.
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Lista de clientes devuelta exitosamente
{ "cliente1": 1001, "nombre": "Juan Pérez", "direccion": "Calle Principal 123", "telefono": "555-0123", "email": "juan.perez@email.com", "fechaAlta": "2024-01-15T10:30:00Z", "activo": true }
500 Internal Server Error
Error interno del servidor

GET /Master/Clientes/GetCliente/{id}

Obtiene un cliente específico por su ID. Este endpoint permite recuperar la información detallada de un cliente en particular.
Parámetros de ruta:
  • id (double, requerido): ID único del cliente
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Cliente encontrado y devuelto
404 Not Found
Cliente no encontrado
500 Internal Server Error
Error interno del servidor

POST /Master/Clientes/AddCliente

Crea un nuevo cliente en el sistema. Este endpoint permite registrar un nuevo cliente en la base de datos del restaurante.
Body (JSON):
{ "nombre": "María García", "direccion": "Avenida Central 456", "telefono": "555-0456", "email": "maria.garcia@email.com", "activo": true }
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
201 Created
Cliente creado exitosamente
{ "cliente1": 1002, "nombre": "María García", "direccion": "Avenida Central 456", "telefono": "555-0456", "email": "maria.garcia@email.com", "fechaAlta": "2024-01-15T14:20:00Z", "activo": true }
500 Internal Server Error
Error interno del servidor

PUT /Master/Clientes/UpdateCliente/{id}

Actualiza un cliente existente en el sistema. Este endpoint permite modificar la información de un cliente ya registrado.
Parámetros de ruta:
  • id (double, requerido): ID del cliente a actualizar
Body (JSON):
{ "nombre": "Juan Pérez Actualizado", "direccion": "Calle Principal 123, Piso 2", "telefono": "555-0124", "email": "juan.perez.nuevo@email.com", "activo": true }
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Cliente actualizado exitosamente
404 Not Found
Cliente no encontrado
500 Internal Server Error
Error interno del servidor

DELETE /Master/Clientes/DeleteCliente/{id}

Elimina un cliente del sistema. Este endpoint permite remover un cliente de la base de datos del restaurante.
Parámetros de ruta:
  • id (double, requerido): ID del cliente a eliminar
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Cliente eliminado exitosamente
{ "message": "Cliente deleted successfully", "cliente": { "cliente1": 1001, "nombre": "Juan Pérez", "direccion": "Calle Principal 123", "telefono": "555-0123", "email": "juan.perez@email.com", "fechaAlta": "2024-01-15T10:30:00Z", "activo": false } }
404 Not Found
Cliente no encontrado
500 Internal Server Error
Error interno del servidor

Modelo de Datos - Cliente

Propiedades del modelo Cliente:
  • Cliente1 (double): Identificador único del cliente
  • Nombre (string): Nombre completo del cliente
  • Direccion (string): Dirección física del cliente
  • Telefono (string): Número de teléfono de contacto
  • Email (string): Dirección de correo electrónico
  • FechaAlta (DateTime): Fecha de registro del cliente en el sistema
  • Activo (bool): Estado de actividad del cliente (true = activo, false = inactivo)

📝 Notas sobre el Modelo

  • Cliente1: Es el campo de identificación principal, aunque el nombre puede ser confuso
  • FechaAlta: Se establece automáticamente al crear un nuevo cliente
  • Activo: Permite desactivar clientes sin eliminarlos físicamente
  • Validación: Se recomienda validar email y teléfono antes de guardar

Servicio Utilizado

IClienteService - Servicio principal para la gestión de clientes
  • GetClientes(): Obtiene todos los clientes
  • GetCliente(): Obtiene un cliente por ID
  • AddCliente(): Crea un nuevo cliente
  • UpdateCliente(): Actualiza un cliente existente
  • DeleteCliente(): Elimina un cliente

🔍 Casos de Uso Comunes

📋 Escenarios de Aplicación

  • Registro de nuevos clientes: Usar POST /AddCliente para clientes que visitan por primera vez
  • Consulta de información: Usar GET /GetCliente/{id} para verificar datos de clientes existentes
  • Actualización de datos: Usar PUT /UpdateCliente/{id} cuando cambian teléfono, dirección o email
  • Listado de clientes: Usar GET /GetClientes para obtener todos los clientes registrados
  • Desactivación de clientes: Usar DELETE /DeleteCliente/{id} para clientes que ya no frecuentan el restaurante