Kitchen — Configuración
¿Qué es?
La pantalla de Configuración permite personalizar completamente el comportamiento del tablero de cocina: cómo se muestran las órdenes, qué alertas se emiten, cómo se sincronizan, y qué acciones requieren PIN.
URL: .../settings en la Kitchen app. Requiere rol admin, owner o manager.
---
Selector de alcance (Scope)
Al igual que en el POS, la configuración de cocina tiene tres niveles:
- Global (empresa): aplica a todas las sucursales que no tengan sobreescritura
- Sucursal: sobreescribe la configuración global para esa sucursal
- Estación: sobreescribe la configuración de la sucursal para esa estación específica
El selector de alcance está en la parte superior de la pantalla, con selectores separados para sucursal y estación. Gerentes (manager) solo pueden editar su sucursal.
---
Secciones de configuración
La pantalla usa un menú lateral interno con 6 secciones:
1. Visualización
| Ajuste | Descripción | Valores |
|---|---|---|
defaultView | Vista por defecto al entrar | kanban / table |
visibleStatuses | Columnas visibles en el tablero | Lista: pending, preparing, ready, delivered |
Estados visibles: se pueden seleccionar o deseleccionar con casillas. Por ejemplo, una cocina que no necesita ver "Entregado" puede ocultarlo para tener más espacio.
---
2. Alertas
| Ajuste | Descripción | Default |
|---|---|---|
soundEnabled | Reproducir sonido al llegar nuevas órdenes | true |
urgencyThresholdMinutes | Minutos tras los cuales una orden se marca como urgente (rojo) | 20 |
---
3. Sincronización
| Ajuste | Descripción | Default |
|---|---|---|
pollIntervalSeconds | Segundos entre cada recarga de órdenes cuando no hay conexión Ably | 30 |
Este valor solo afecta el polling de fallback. Con Ably activo, las actualizaciones son instantáneas.
La sección también muestra el estado actual de la conexión Ably (conectado/desconectado).
---
4. Comportamiento
| Ajuste | Descripción | Default |
|---|---|---|
bulkAdvance | Avanzar toda la orden de golpe (true) o artículo por artículo (false) | true |
requirePinToAdvance | Pedir PIN antes de avanzar el estado de una orden | false |
pinValue | El PIN requerido (4-6 dígitos) | — |
categoryFilter | Categorías visibles en esta estación (lista de IDs) | [] (todas) |
---
5. Estaciones
Sección para crear, renombrar y eliminar estaciones de cocina. Ver documento kitchen-estaciones.md para más detalle.
---
6. Sistema
| Ajuste | Descripción |
|---|---|
| Nombre de la empresa | Solo lectura, informativo |
| Sucursal activa | Confirma en qué sucursal está configurando |
| Versión de Ably | Estado de la integración de tiempo real |
---
Guardar cambios
El botón "Guardar" está en el encabezado de la página. Si hay cambios sin guardar y el usuario intenta navegar a otra página, aparece un diálogo de confirmación ("¿Deseas abandonar los cambios?").
Al guardar:
- Si el alcance es empresa:
PATCH /api/kitchen-configconcompanyIdysettings - Si el alcance es sucursal:
PATCH /api/kitchen-configconcompanyId,branchIdysettings - Si el alcance es estación:
PATCH /api/kitchen-stations/{id}consettings
En todos los casos, solo se guardan los campos que difieren del nivel superior, no el objeto completo.
---
Herencia de ajustes: ejemplo práctico
Empresa: bulkAdvance = true, soundEnabled = true, urgencyThresholdMinutes = 20
Sucursal "Matriz": urgencyThresholdMinutes = 15 (sobreescribe, el resto hereda)
Estación "Parrilla": categoryFilter = ["uuid-carnes", "uuid-pastas"] (sobreescribe, el resto hereda de sucursal)
Resultado para la estación "Parrilla" en "Matriz":
bulkAdvance = true (empresa)
soundEnabled = true (empresa)
urgencyThresholdMinutes = 15 (sucursal Matriz)
categoryFilter = [...] (estación Parrilla)