Un menú de una Branch: agrupa categorías (MenuCategory) que a su vez contienen
productos (MenuItem). day_time_blocks define las franjas de día/hora en las que el
menú está disponible (vacío = siempre disponible). Se crea deshabilitado (is_enabled = false).
| Atributo | Tipo | Descripción |
|---|---|---|
id |
int |
|
branch_id |
int |
{@link Branch} dueña del menú |
name |
string |
Nombre del menú |
is_enabled |
bool |
Si el menú está activo |
day_time_blocks |
array |
Franjas de día/hora en las que el menú está disponible (vacío = siempre) |
created_at |
datetime\|null |
|
updated_at |
datetime\|null |
|
branch |
Branch |
{@link Branch} dueña del menú |
categories |
MenuCategory> |
Categorías del menú, ordenadas por in_order |
{
"id": 1,
"branch_id": 304,
"name": "Menú",
"is_enabled": false,
"day_time_blocks": [],
"created_at": "2026-04-13T17:36:24.000000Z",
"updated_at": "2026-04-13T17:36:24.000000Z"
}
Devuelve los Menu de la Branch con sus categorías. Para clientes se filtran
los menús cuyas franjas day_time_blocks no aplican a la hora local de la sucursal.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/branches/{branch}/menus |
N/A |
Devuelve el Menu por su id con sus categorías, ítems y el BranchGood de
cada ítem.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/menus/{menu} |
N/A |
Crea un Menu para la Branch. Nace deshabilitado (is_enabled = false);
day_time_blocks vacío significa disponible siempre.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/branches/{branch}/menus |
Authorization |
{
"name": "required|string|max:255",
"is_enabled": "boolean",
"day_time_blocks": [
{
"day_sunday": "nullable|boolean",
"day_monday": "nullable|boolean",
"day_tuesday": "nullable|boolean",
"day_wednesday": "nullable|boolean",
"day_thursday": "nullable|boolean",
"day_friday": "nullable|boolean",
"day_saturday": "nullable|boolean",
"hour_beg": {
"nullable": true,
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
},
"hour_end": {
"nullable": true,
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
}
}
]
}
Modifica name, is_enabled y day_time_blocks del Menu.
| Método | URI | Cabeceras |
|---|---|---|
| PATCH | /companies/{companyId}/menus/{menu} |
Authorization |
{
"name": "string|max:255",
"is_enabled": "boolean",
"day_time_blocks": [
{
"day_sunday": "nullable|boolean",
"day_monday": "nullable|boolean",
"day_tuesday": "nullable|boolean",
"day_wednesday": "nullable|boolean",
"day_thursday": "nullable|boolean",
"day_friday": "nullable|boolean",
"day_saturday": "nullable|boolean",
"hour_beg": {
"nullable": true,
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
},
"hour_end": {
"nullable": true,
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
}
}
]
}
Borra el Menu y, en cascada, sus categorías e ítems.
| Método | URI | Cabeceras |
|---|---|---|
| DELETE | /companies/{companyId}/menus/{menu} |
Authorization |
branch BelongsTo Branchcategories HasMany MenuCategory