← Volver a SalonsController

📋 Información Detallada

Endpoint para obtener información completa de salones con mesas y dibujos

Descripción General

El endpoint GetSalonDetail proporciona información completa y detallada de un salón específico, incluyendo sus mesas asociadas, fotos y opcionalmente los dibujos relacionados. Este endpoint es especialmente útil para obtener una vista completa de la configuración de un área del restaurante.

🎯 Características del Endpoint GetSalonDetail

  • Información completa: Combina datos del salón, mesas y fotos
  • Dibujos opcionales: Incluye dibujos solo cuando se solicita
  • Relaciones complejas: Maneja múltiples entidades relacionadas
  • Optimización de consultas: Consultas eficientes con filtros
  • DTO especializado: Usa SalonDetailDTO para la respuesta
  • Flexibilidad: Permite incluir o excluir dibujos según necesidad

Endpoint Disponible

GET /Master/Salons/GetSalonDetail/{id}

Obtiene información detallada de un salón específico incluyendo sus mesas, fotos y opcionalmente dibujos. Este endpoint proporciona una vista completa de la configuración de un área del restaurante.
Parámetros de ruta:
  • id (double, requerido): ID del salón
Parámetros de consulta:
  • includeDrawings (bool, requerido): Indica si incluir dibujos en la respuesta
  • 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
Información detallada del salón devuelta exitosamente
{ "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" }, "mesas": [ { "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 } ], "foto": { "salon": 1.0, "imagen": [base64_encoded_image_data] }, "dibujos": [ { "dibujos": 1.0, "nombre": "Plano del Salón", "descripcion": "Plano detallado del salón principal" } ] }
404 Not Found
Salón no encontrado
500 Internal Server Error
Error interno del servidor

Modelo de Datos - SalonDetailDTO

Propiedades del DTO SalonDetailDTO:
  • Salon (Salones): Información completa del salón
  • Mesas (List<SalonesMesa>): Lista de mesas del salón
  • Foto (SalonesFoto): Foto del salón
  • Dibujos (List<Dibujo>): Lista de dibujos (opcional)

🔑 Características del DTO

  • Composición compleja: Combina múltiples entidades en una sola respuesta
  • Dibujos opcionales: Solo se incluyen cuando includeDrawings es true
  • Relaciones automáticas: Filtra mesas y fotos por salón automáticamente
  • Optimización de consultas: Usa consultas eficientes con filtros
  • Flexibilidad: Permite obtener solo la información necesaria

Servicio Utilizado

ISalonsService - Servicio para la gestión de salones
  • GetSalonDetail(): Obtiene información detallada de un salón

🔧 Lógica del Servicio

  • Consulta principal: Obtiene el salón por ID
  • Mesas asociadas: Filtra mesas por salón
  • Foto del salón: Obtiene la foto asociada
  • Dibujos condicionales: Incluye dibujos solo si se solicita
  • Optimización: Usa consultas SQL eficientes

Casos de Uso

🎯 Escenarios de Aplicación

  • Configuración de mesas: Ver todas las mesas de un salón específico
  • Planificación de eventos: Obtener información completa para eventos
  • Gestión de reservas: Ver disponibilidad y configuración de mesas
  • Reportes de salón: Generar reportes completos de áreas
  • Configuración de interfaz: Obtener datos para mostrar en la aplicación
  • Auditoría de configuración: Revisar configuración completa de salones

⚠️ Consideraciones de Rendimiento

  • Incluir dibujos puede aumentar significativamente el tamaño de la respuesta
  • Se recomienda usar includeDrawings=false cuando no sea necesario
  • La consulta de dibujos usa operaciones IN que pueden ser costosas
  • Considerar implementar paginación para salones con muchas mesas
  • Evaluar el uso de cache para respuestas frecuentes

📝 Consideraciones Técnicas

  • Parámetro includeDrawings: Controla si se incluyen dibujos en la respuesta
  • Consulta de dibujos: Usa operación IN para obtener dibujos únicos
  • Relaciones: Filtra automáticamente por salón
  • Null handling: Maneja casos donde no hay fotos o dibujos
  • Optimización: Evita consultas innecesarias cuando includeDrawings=false
  • DTO pattern: Usa DTO para encapsular respuesta compleja

Ejemplos de Uso

🔧 Ejemplo con dibujos incluidos

GET /Master/Salons/GetSalonDetail/1?includeDrawings=true&initialCatalog=RestMasterDB

🔧 Ejemplo sin dibujos (más rápido)

GET /Master/Salons/GetSalonDetail/1?includeDrawings=false&initialCatalog=RestMasterDB

🔧 Ejemplo con cURL

curl -X GET \ "http://localhost:5000/Master/Salons/GetSalonDetail/1?includeDrawings=true&initialCatalog=RestMasterDB" \ -H "Accept: application/json"