📊 Resumen del Controlador
CRUD
Operaciones Completas
El TableManagerController es el controlador central para la gestión de mesas del sistema RestMaster. Proporciona una API RESTful completa para administrar el ciclo de vida completo de las mesas, desde su apertura hasta su cierre, incluyendo la gestión de líneas de pedidos y la sincronización de estados.
🎯 Funcionalidades Principales
- Gestión de apertura de mesas con validación de camareros y clientes (1 endpoint)
- Gestión de líneas de mesa - agregar, actualizar y eliminar pedidos (3 endpoints)
- Cancelación de mesas con limpieza completa de datos (1 endpoint)
- Sincronización de estados entre cabeceras y estados de mesas (1 endpoint)
- Validación completa de artículos, camareros, clientes y repartidores
- Gestión de propinas y configuraciones específicas por mesa
- Control de estados (Disponible, En Servicio, Facturada, Refacturada)
- Integración con facturación y gestión de documentos
🔧 Servicios Utilizados
Servicios Inyectados por Constructor:
- ITableManagerService - Servicio principal de gestión de mesas
🔗 Servicios Internos del TableManagerService:
- IMesasCabeceraService - Gestión de cabeceras de mesas
- IMesasEstadoService - Gestión de estados de mesas
- IWaitersService - Validación de camareros
- IClienteService - Validación de clientes
- IRepartidoresService - Validación de repartidores
- IMesasLineaService - Gestión de líneas de mesa
- IArticulosService - Validación de artículos
- ITipoIvaService - Gestión de tipos de IVA
- IInvoiceHeadService - Integración con facturación
⚠️ 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
🔗 Estructura de Rutas
Ruta Base: /api/TableManager
Todos los endpoints del controlador están bajo la ruta /api/TableManager, lo que indica que maneja operaciones de gestión de mesas del sistema.
Patrones de URL por Categoría:
- Gestión de Apertura y Cierre:
/open, /{salon}/{mesa}
- Gestión de Líneas:
/line, /line/{salon}/{mesa}/{relacion}
- Sincronización:
/sync-table-states