Descripción General
Los endpoints de Gestión de Mesas por Salón proporcionan las operaciones fundamentales para administrar la distribución y configuración de mesas específicas en cada salón del sistema RestMaster. Estos endpoints manejan la información detallada de cada mesa, incluyendo su posicionamiento, configuración visual, tarifas y características específicas.
🎯 Características de la Gestión de Mesas por Salón
- Clave primaria compuesta: Salon + Mesa + Relacion identifican únicamente cada mesa
- Configuración visual completa: Fuentes, colores, alineación y posicionamiento
- Tarifas específicas: Recargos y tarifas configurables por mesa individual
- Integración con planos: Relación con dibujos para visualización
- Configuración de propinas: Control individual de propinas por mesa
- Artículos específicos: Productos de apertura configurables por mesa
- Validación de datos: Verificación de integridad de la información
Endpoints Disponibles
GET
/Master/SalonTables/GetSalonTables/{salon}
Obtiene todas las mesas de un salón específico. Este endpoint devuelve una lista completa de todas las mesas configuradas en el salón especificado.
Parámetros de ruta:
- salon (double, requerido): ID 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
Lista de mesas del salón devuelta exitosamente
[
{
"salon": 1.0,
"mesa": 1.0,
"relacion": 1.0,
"dibujos": 1.0,
"recargo": 0.0,
"tarifa": 0.0,
"articulosApertura": "N",
"transparente": "N",
"colorLetra": 0,
"fuenteLetra": "Arial",
"estiloLetra": "Normal",
"tamanoLetra": 12.0,
"alinearHorizontal": "Center",
"alinearVertical": "Middle",
"posicionX": 100.0,
"posicionY": 100.0,
"propina": "S",
"porcentajePropina": 10.0
}
]
500 Internal Server Error
Error interno del servidor
GET
/Master/SalonTables/GetSalonTable/{salon}/{mesa}/{relacion}
Obtiene una mesa específica por su salón, mesa y relación. Este endpoint permite recuperar la información detallada de una mesa en particular.
Parámetros de ruta:
- salon (double, requerido): ID del salón
- mesa (double, requerido): ID de la mesa
- relacion (double, requerido): ID de relació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
Mesa encontrada y devuelta
404 Not Found
Mesa no encontrada
{
"message": "Table 1 in salon 1 with relation 1 not found",
"details": {
"salon": 1.0,
"mesa": 1.0,
"relacion": 1.0
}
}
500 Internal Server Error
Error interno del servidor
POST
/Master/SalonTables/AddSalonTable
Crea una nueva mesa en un salón específico. Este endpoint permite agregar una nueva mesa con su configuración completa.
Body (JSON):
{
"salon": 1.0,
"mesa": 2.0,
"relacion": 1.0,
"dibujos": 1.0,
"recargo": 5.0,
"tarifa": 0.0,
"articulosApertura": "S",
"transparente": "N",
"colorLetra": 16711680,
"fuenteLetra": "Arial",
"estiloLetra": "Bold",
"tamanoLetra": 14.0,
"alinearHorizontal": "Center",
"alinearVertical": "Middle",
"posicionX": 200.0,
"posicionY": 150.0,
"propina": "S",
"porcentajePropina": 15.0
}
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
Mesa creada exitosamente
{
"salon": 1.0,
"mesa": 2.0,
"relacion": 1.0,
"dibujos": 1.0,
"recargo": 5.0,
"tarifa": 0.0,
"articulosApertura": "S",
"transparente": "N",
"colorLetra": 16711680,
"fuenteLetra": "Arial",
"estiloLetra": "Bold",
"tamanoLetra": 14.0,
"alinearHorizontal": "Center",
"alinearVertical": "Middle",
"posicionX": 200.0,
"posicionY": 150.0,
"propina": "S",
"porcentajePropina": 15.0
}
500 Internal Server Error
Error interno del servidor
PUT
/Master/SalonTables/UpdateSalonTable/{salon}/{mesa}/{relacion}
Actualiza una mesa existente en un salón específico. Este endpoint permite modificar la configuración de una mesa ya registrada.
Parámetros de ruta:
- salon (double, requerido): ID del salón
- mesa (double, requerido): ID de la mesa
- relacion (double, requerido): ID de relación
Body (JSON):
{
"salon": 1.0,
"mesa": 1.0,
"relacion": 1.0,
"dibujos": 2.0,
"recargo": 10.0,
"tarifa": 5.0,
"articulosApertura": "S",
"transparente": "S",
"colorLetra": 255,
"fuenteLetra": "Times New Roman",
"estiloLetra": "Italic",
"tamanoLetra": 16.0,
"alinearHorizontal": "Left",
"alinearVertical": "Top",
"posicionX": 300.0,
"posicionY": 200.0,
"propina": "N",
"porcentajePropina": 0.0
}
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
Mesa actualizada exitosamente
404 Not Found
Mesa no encontrada
{
"message": "Cannot update: Table 1 in salon 1 with relation 1 does not exist",
"details": {
"salon": 1.0,
"mesa": 1.0,
"relacion": 1.0
}
}
500 Internal Server Error
Error interno del servidor
DELETE
/Master/SalonTables/DeleteSalonTable/{salon}/{mesa}/{relacion}
Elimina una mesa de un salón específico. Este endpoint permite remover una mesa de la configuración del salón.
Parámetros de ruta:
- salon (double, requerido): ID del salón
- mesa (double, requerido): ID de la mesa
- relacion (double, requerido): ID de relació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
Mesa eliminada exitosamente
{
"message": "Salon table deleted successfully",
"salonTable": {
"salon": 1.0,
"mesa": 1.0,
"relacion": 1.0,
"dibujos": 1.0,
"recargo": 0.0,
"tarifa": 0.0,
"articulosApertura": "N",
"transparente": "N",
"colorLetra": 0,
"fuenteLetra": "Arial",
"estiloLetra": "Normal",
"tamanoLetra": 12.0,
"alinearHorizontal": "Center",
"alinearVertical": "Middle",
"posicionX": 100.0,
"posicionY": 100.0,
"propina": "S",
"porcentajePropina": 10.0
}
}
404 Not Found
Mesa no encontrada
{
"message": "Cannot delete: Table 1 in salon 1 with relation 1 does not exist",
"details": {
"salon": 1.0,
"mesa": 1.0,
"relacion": 1.0
}
}
500 Internal Server Error
Error interno del servidor
Servicio Utilizado
ISalonTablesService - Servicio para la gestión de mesas por salón
- GetSalonTables(): Obtiene todas las mesas de un salón
- GetSalonTable(): Obtiene una mesa específica por clave compuesta
- AddSalonTable(): Crea una nueva mesa en un salón
- UpdateSalonTable(): Actualiza una mesa existente
- DeleteSalonTable(): Elimina una mesa de un salón