← Volver a SalonsController

🏢 Gestión de Salones

Endpoints para la gestión CRUD completa de salones del sistema

Descripción General

Los endpoints de Gestión de Salones proporcionan las operaciones fundamentales para administrar los salones y áreas del sistema RestMaster. Estos endpoints manejan la información esencial de cada área del restaurante, incluyendo su configuración, tarifas, propinas y características específicas.

🎯 Características de la Gestión de Salones

  • Identificación única: Cada salón tiene un ID único en el sistema
  • Configuración flexible: Tarifas, recargos y propinas configurables
  • Servicio especializado: Configuración de reparto y reposición
  • Personalización visual: Imágenes y colores de fondo
  • Artículos específicos: Productos de apertura por salón
  • Validación de datos: Verificación de integridad de la información

Endpoints Disponibles

GET /Master/Salons/GetSalons

Obtiene todos los salones disponibles en el sistema. Este endpoint devuelve una lista completa de todos los salones registrados 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 salones devuelta exitosamente
[ { "salon": 1.0, "nombre": "Salón Principal", "recargo": 0.0, "tarifa": 0.0, "imagen": [base64_encoded_image_data], "colorFondo": 16777215, "reparto": "N", "propina": "S", "porcentajePropina": 10.0, "reposicion": "N", "articulosApertura": "ART001,ART002" } ]
500 Internal Server Error
Error interno del servidor

GET /Master/Salons/GetSalon/{id}

Obtiene un salón específico por su ID. Este endpoint permite recuperar la información detallada de un salón en particular.
Parámetros de ruta:
  • id (double, requerido): ID único del salón
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
Salón encontrado y devuelto
404 Not Found
Salón no encontrado
500 Internal Server Error
Error interno del servidor

POST /Master/Salons/AddSalon

Crea un nuevo salón en el sistema. Este endpoint permite agregar una nueva área al restaurante.
Body (JSON):
{ "nombre": "Nuevo Salón", "recargo": 5.0, "tarifa": 0.0, "imagen": [base64_encoded_image_data], "colorFondo": 16777215, "reparto": "N", "propina": "S", "porcentajePropina": 10.0, "reposicion": "N", "articulosApertura": "ART001" }
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
Salón creado exitosamente
{ "salon": 2.0, "nombre": "Nuevo Salón", "recargo": 5.0, "tarifa": 0.0, "imagen": [base64_encoded_image_data], "colorFondo": 16777215, "reparto": "N", "propina": "S", "porcentajePropina": 10.0, "reposicion": "N", "articulosApertura": "ART001" }
500 Internal Server Error
Error interno del servidor

PUT /Master/Salons/UpdateSalon/{id}

Actualiza un salón existente en el sistema. Este endpoint permite modificar la información de un salón ya registrado.
Parámetros de ruta:
  • id (double, requerido): ID del salón a actualizar
Body (JSON):
{ "nombre": "Salón Principal Actualizado", "recargo": 2.5, "tarifa": 0.0, "imagen": [new_base64_encoded_image_data], "colorFondo": 16711680, "reparto": "S", "propina": "S", "porcentajePropina": 15.0, "reposicion": "S", "articulosApertura": "ART001,ART002,ART003" }
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
Salón actualizado exitosamente
404 Not Found
Salón no encontrado
500 Internal Server Error
Error interno del servidor

DELETE /Master/Salons/DeleteSalon/{id}

Elimina un salón del sistema. Este endpoint permite remover un área del restaurante.
Parámetros de ruta:
  • id (double, requerido): ID del salón 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
Salón eliminado exitosamente
{ "message": "Salon deleted successfully", "salon": { "salon": 1.0, "nombre": "Salón Principal", "recargo": 0.0, "tarifa": 0.0, "imagen": [base64_encoded_image_data], "colorFondo": 16777215, "reparto": "N", "propina": "S", "porcentajePropina": 10.0, "reposicion": "N", "articulosApertura": "ART001,ART002" } }
404 Not Found
Salón no encontrado
500 Internal Server Error
Error interno del servidor

Modelo de Datos - Salones

Propiedades del modelo Salones:
  • Salon (double): ID único del salón (clave primaria)
  • Nombre (string): Nombre del salón o área
  • Recargo (double?): Recargo aplicable al salón
  • Tarifa (double?): Tarifa específica del salón
  • Imagen (byte[]): Imagen del salón en formato binario
  • ColorFondo (int?): Color de fondo para la interfaz
  • Reparto (string): Indica si permite reparto (S/N)
  • Propina (string): Indica si aplica propina (S/N)
  • PorcentajePropina (double?): Porcentaje de propina
  • Reposicion (string): Indica si permite reposición (S/N)
  • ArticulosApertura (string): Artículos de apertura específicos

Servicio Utilizado

ISalonsService - Servicio para la gestión de salones
  • GetSalons(): Obtiene todos los salones
  • GetSalon(): Obtiene un salón por ID
  • AddSalon(): Crea un nuevo salón
  • UpdateSalon(): Actualiza un salón existente
  • DeleteSalon(): Elimina un salón

Casos de Uso Comunes

🎯 Escenarios de Aplicación

  • Configuración de áreas: Crear y configurar diferentes salones del restaurante
  • Gestión de tarifas: Aplicar recargos específicos por área
  • Configuración de propinas: Definir porcentajes de propina por salón
  • Servicio a domicilio: Configurar áreas para reparto
  • Personalización visual: Asignar imágenes y colores por área
  • Productos específicos: Definir artículos de apertura por salón

⚠️ Consideraciones de Seguridad

  • Los salones pueden contener información sensible de configuración
  • Se recomienda implementar control de acceso a la gestión de salones
  • Validar permisos para modificar configuraciones de áreas
  • Considerar el impacto de cambios en tarifas y propinas
  • Implementar auditoría de cambios en configuraciones
  • Verificar que el usuario tenga permisos para gestionar salones

📝 Consideraciones Técnicas

  • Campos booleanos: Los campos Reparto, Propina y Reposicion usan S/N
  • Imágenes: Se almacenan como datos binarios en la base de datos
  • Colores: ColorFondo se almacena como entero (formato RGB)
  • Artículos: ArticulosApertura permite múltiples códigos separados por coma
  • Validaciones: Verificar que los porcentajes estén en rangos válidos
  • Integridad: Considerar dependencias con mesas y otros elementos