MenuItem


Un producto dentro de una MenuCategory, que referencia un BranchGood (el producto real, con su precio y stock). in_order fija su posición dentro de la categoría (1 en adelante); el endpoint order lo reordena. No se puede eliminar el último producto activo mientras la categoría está activa.

Estructura de Datos

Atributo Tipo Descripción
id int
menu_category_id int {@link MenuCategory} a la que pertenece el producto
branch_good_id int {@link BranchGood} que representa este ítem del menú
is_enabled bool Si el producto está activo en el menú
in_order int Posición del producto dentro de la categoría (1 en adelante)
created_at datetime\|null
updated_at datetime\|null
branchGood BranchGood {@link BranchGood} que representa este ítem del menú
category MenuCategory {@link MenuCategory} a la que pertenece el producto
{
    "id": 1,
    "menu_category_id": 1,
    "branch_good_id": 324816,
    "is_enabled": true,
    "in_order": 1,
    "created_at": "2026-04-13T17:38:21.000000Z",
    "updated_at": "2026-04-13T17:38:21.000000Z"
}

Endpoints

Acciones de MenuItem

Listar productos de una categoría

Devuelve los MenuItem de la MenuCategory indicada (ordenados por in_order), con su BranchGood.

Método URI Cabeceras
GET /companies/{companyId}/menu-categories/{menuCategory}/items N/A

Mostrar producto de menú

Devuelve el MenuItem por su id, con su BranchGood.

Método URI Cabeceras
GET /companies/{companyId}/menu-items/{menuItem} N/A

Crear producto de menú

Agrega un MenuItem al final de la MenuCategory, enlazado a un BranchGood. Toma el in_order siguiente.

Método URI Cabeceras
POST /companies/{companyId}/menu-categories/{menuCategory}/items Authorization
{
    "branch_good_id": "required|integer|exists:branch_goods,id",
    "is_enabled": "boolean"
}

Actualizar producto de menú

Modifica is_enabled (y demás campos editables) del MenuItem. El orden se cambia con el endpoint order.

Método URI Cabeceras
PATCH /companies/{companyId}/menu-items/{menuItem} Authorization
{
    "is_enabled": "boolean"
}

Eliminar producto de menú

Borra el MenuItem y reordena los siguientes. No se permite si es el último producto activo de una categoría activa.

Método URI Cabeceras
DELETE /companies/{companyId}/menu-items/{menuItem} Authorization

Reordenar producto de menú

Mueve el MenuItem a la posición new_order (1 en adelante) y recoloca los demás productos de la categoría. Si new_order excede el máximo, se ajusta al final.

Método URI Cabeceras
PATCH /companies/{companyId}/menu-items/{menuItem}/order Authorization
{
    "new_order": "required|integer|min:1"
}

Relaciones