← Volver a Back.API

SalonsController

Controlador para la gestión de salones y áreas del restaurante

📊 Resumen del Controlador

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

El SalonsController es el controlador encargado de gestionar los salones y áreas del sistema RestMaster. Proporciona una API RESTful completa para administrar las diferentes áreas del restaurante, incluyendo su configuración, tarifas, propinas y detalles completos con mesas y dibujos.

🎯 Funcionalidades Principales

  • Gestión CRUD completa de salones (5 endpoints)
  • Información detallada de salones con mesas y dibujos (1 endpoint)
  • Configuración de tarifas y recargos por salón
  • Gestión de propinas y porcentajes por área
  • Configuración de reparto y servicio a domicilio
  • Artículos de apertura específicos por salón
  • Método OPTIONS para información de métodos HTTP permitidos (1 endpoint)

🔧 Servicios Utilizados

Servicios Inyectados por Constructor:

  • ISalonsService - Servicio principal de gestión de salones
  • ILogger<SalonsController> - 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 Salones

Gestión CRUD completa de salones del sistema
CRUD
Core

Endpoints: 5 métodos

  • GET /GetSalons
  • GET /GetSalon/{id}
  • POST /AddSalon
  • PUT /UpdateSalon/{id}
  • DELETE /DeleteSalon/{id}
Ver detalles →

📋 Información Detallada

Información completa de salones con mesas y dibujos
Details
Complex

Endpoints: 1 método

  • GET /GetSalonDetail/{id}
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/Salons

Todos los endpoints del controlador están bajo la ruta /Master/Salons, lo que indica que maneja datos maestros del sistema relacionados con salones.

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

Salón creado exitosamente

Usado en: POST exitosos

❌ 404 - Not Found

Salón no encontrado

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
  • DTO Pattern: Uso de DTOs para respuestas complejas

⚠️ 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 información de salones
  • Validación de permisos para gestión de áreas

📝 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
  • DTO Pattern: Transferencia de datos complejos
  • Service Layer Pattern: Lógica de negocio en servicios

📈 Estadísticas Detalladas

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

Distribución de Métodos HTTP:

📋 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

🔑 Características del Modelo

  • Clave primaria: El campo Salon es la clave primaria única
  • Configuración flexible: Permite configurar tarifas, propinas y recargos
  • Imagen integrada: Incluye imagen del salón en el mismo modelo
  • Configuración de servicio: Controla reparto, propinas y reposición
  • Artículos específicos: Permite definir artículos de apertura por salón
  • Tabla: SALONES en la base de datos

⚠️ Consideraciones de Configuración

  • Los campos de configuración (Reparto, Propina, Reposicion) usan valores S/N
  • Las tarifas y recargos son opcionales y permiten configuración flexible
  • El color de fondo se usa para personalización de la interfaz
  • Los artículos de apertura permiten configurar productos específicos por área