← Volver a Back.API

SalonTablesController

Controlador para la gestión de mesas por salón y distribución del restaurante

📊 Resumen del Controlador

2
Servicios Inyectados
6
Endpoints Totales
2
Categorías Principales
CRUD
Operaciones Completas

El SalonTablesController es el controlador encargado de gestionar las mesas de los salones del sistema RestMaster. Proporciona una API RESTful completa para administrar la distribución y configuración de mesas por salón, incluyendo su posicionamiento, configuración visual y tarifas específicas.

🎯 Funcionalidades Principales

  • Gestión CRUD completa de mesas por salón (5 endpoints)
  • Configuración de posicionamiento con coordenadas X/Y
  • Configuración visual (colores, fuentes, alineación)
  • Tarifas específicas por mesa y salón
  • Configuración de propinas individual por mesa
  • Artículos de apertura específicos por mesa
  • Relación con dibujos para planos del restaurante
  • Método OPTIONS para información de métodos HTTP permitidos (1 endpoint)

🔧 Servicios Utilizados

Servicios Inyectados por Constructor:

  • ISalonTablesService - Servicio principal de gestión de mesas por salón
  • ILogger<SalonTablesController> - Logging de errores y eventos

⚠️ Parámetros de Conexión

Todos los endpoints requieren los siguientes parámetros de conexión a la base de datos:

  • initialCatalog (string): 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

📋 Categorías de Endpoints

🪑 Gestión de Mesas por Salón

Gestión CRUD completa de mesas específicas por salón
CRUD
Layout

Endpoints: 5 métodos

  • GET /GetSalonTables/{salon}
  • GET /GetSalonTable/{salon}/{mesa}/{relacion}
  • POST /AddSalonTable
  • PUT /UpdateSalonTable/{salon}/{mesa}/{relacion}
  • DELETE /DeleteSalonTable/{salon}/{mesa}/{relacion}
Ver detalles →

ℹ️ Información del Sistema

Información sobre métodos HTTP permitidos
System
Info

Endpoints: 1 método

  • OPTIONS /
Ver detalles →

🔗 Estructura de Rutas

Ruta Base: /Master/SalonTables

Todos los endpoints del controlador están bajo la ruta /Master/SalonTables, lo que indica que maneja datos maestros del sistema relacionados con la distribución de mesas por salón.

Patrones de URL por Categoría:

📊 Códigos de Respuesta

✅ 200 - OK

Operación exitosa, datos devueltos correctamente

Usado en: GET, PUT, DELETE exitosos

✅ 201 - Created

Mesa de salón creada exitosamente

Usado en: POST exitosos

❌ 404 - Not Found

Mesa de salón no encontrada

Usado en: GET, PUT, DELETE cuando el recurso no existe

❌ 500 - Internal Server Error

Error interno del servidor

Usado en: Errores de excepción no controlados

🔍 Características Técnicas

🎯 Características del Controlador

  • Synchronous Operations: Todos los métodos son síncronos para operaciones de datos
  • Swagger Documentation: Documentación completa con Swagger/OpenAPI
  • Error Handling: Manejo centralizado de excepciones con logging
  • Dependency Injection: Inyección de servicios + logger
  • RESTful Design: Diseño REST completo con verbos HTTP apropiados
  • Type Safety: Uso de tipos fuertemente tipados para respuestas
  • Constructor Injection: Inyección de dependencias por constructor
  • Logging: Logging estructurado de errores y eventos
  • Clave compuesta: Manejo de claves primarias compuestas (Salon, Mesa, Relacion)
  • Mensajes de error detallados: Respuestas 404 con información específica

⚠️ Consideraciones de Seguridad

  • Todos los endpoints requieren parámetros de conexión a la base de datos
  • Los errores internos se loguean pero no exponen información sensible
  • Se recomienda implementar autenticación y autorización adicional
  • Validación de entrada en todos los endpoints POST/PUT
  • Control de acceso a la configuración de mesas
  • Validación de permisos para modificar distribución

📝 Patrones de Diseño Utilizados

  • Repository Pattern: Acceso a datos a través de servicios
  • Dependency Injection: Inversión de control para servicios
  • Error Handling Pattern: Manejo centralizado de errores
  • RESTful API Design: Diseño de API REST estándar
  • Service Layer Pattern: Lógica de negocio en servicios
  • Composite Key Pattern: Manejo de claves primarias compuestas

📈 Estadísticas Detalladas

222
Líneas de Código
1
Región de Código
6
Métodos Públicos
4
Verbos HTTP

Distribución de Métodos HTTP:

📋 Modelo de Datos - SalonesMesa

Propiedades del modelo SalonesMesa:
  • Salon (double): ID del salón (parte de clave primaria)
  • Mesa (double): ID de la mesa (parte de clave primaria)
  • Relacion (double): ID de relación (parte de clave primaria)
  • Dibujos (double): ID del dibujo asociado
  • Recargo (double?): Recargo aplicable a la mesa
  • Tarifa (double?): Tarifa específica de la mesa
  • ArticulosApertura (string): Artículos de apertura específicos
  • Transparente (string): Indica si es transparente (S/N)
  • ColorLetra (double?): Color de la letra
  • FuenteLetra (string): Fuente de la letra
  • EstiloLetra (string): Estilo de la letra
  • TamanoLetra (double?): Tamaño de la letra
  • AlinearHorizontal (string): Alineación horizontal
  • AlinearVertical (string): Alineación vertical
  • PosicionX (double?): Posición X en el plano
  • PosicionY (double?): Posición Y en el plano
  • Propina (string): Indica si aplica propina (S/N)
  • PorcentajePropina (double?): Porcentaje de propina

🔑 Características del Modelo

  • Clave primaria compuesta: Salon + Mesa + Relacion forman la clave única
  • Configuración visual completa: Fuentes, colores, alineación y posicionamiento
  • Tarifas específicas: Recargos y tarifas configurables por mesa
  • Integración con dibujos: Relación con planos del restaurante
  • Configuración de propinas: Control individual de propinas por mesa
  • Artículos específicos: Productos de apertura configurables
  • Tabla: SALONES_MESAS en la base de datos

⚠️ Consideraciones de Configuración

  • Los campos booleanos (Transparente, Propina) usan valores S/N
  • Las posiciones X/Y se usan para el posicionamiento en planos
  • La relación permite múltiples configuraciones por mesa
  • Los dibujos se relacionan con planos del restaurante
  • Las tarifas y recargos son opcionales y permiten configuración flexible