Skip to content

๐Ÿ” Menu API โ€‹

๐Ÿ“‚ Categories โ€‹

๐Ÿ“‹ List Categories โ€‹

GET /api/menu/categories

Public. Returns all categories.

๐Ÿ” Get Category โ€‹

GET /api/menu/categories/:id

Public. Returns a category with its menu items.

โž• Create Category โ€‹

POST /api/menu/categories
Authorization: Bearer <manager-token>
json
{
  "name": "Burgers",
  "slug": "burgers",
  "description": "Our signature burgers",
  "sortOrder": 1,
  "isActive": true,
  "parentId": null,
  "locationId": null
}

โœ๏ธ Update Category โ€‹

PATCH /api/menu/categories/:id
Authorization: Bearer <manager-token>

๐Ÿ—‘๏ธ Delete Category โ€‹

DELETE /api/menu/categories/:id
Authorization: Bearer <super-admin-token>

๐Ÿฝ๏ธ Menu Items โ€‹

๐Ÿ“‹ List Items โ€‹

GET /api/menu/items?categoryId=...&search=...&page=1&limit=20

Public. Supports filtering by category and text search.

๐Ÿ” Get Item โ€‹

GET /api/menu/items/:id

Public. Returns item with options, allergens, and mealtimes.

โž• Create Item โ€‹

POST /api/menu/items
Authorization: Bearer <manager-token>
json
{
  "name": "Classic Burger",
  "slug": "classic-burger",
  "description": "Beef patty with lettuce, tomato, and our secret sauce",
  "price": 12.99,
  "categoryId": "category-id",
  "isActive": true,
  "sortOrder": 1,
  "trackStock": false,
  "options": [
    {
      "name": "Size",
      "displayType": "RADIO",
      "isRequired": true,
      "values": [
        { "name": "Regular", "priceModifier": 0, "isDefault": true },
        { "name": "Large", "priceModifier": 3.00 }
      ]
    }
  ]
}

โœ๏ธ Update Item โ€‹

PATCH /api/menu/items/:id
Authorization: Bearer <manager-token>

๐Ÿ—‘๏ธ Delete Item โ€‹

DELETE /api/menu/items/:id
Authorization: Bearer <super-admin-token>

๐Ÿ–ผ๏ธ Upload Item Image โ€‹

POST /api/menu/items/:id/image
Authorization: Bearer <manager-token>
Content-Type: multipart/form-data

Form field: image

๐Ÿ—‘๏ธ Delete Item Image โ€‹

DELETE /api/menu/items/:id/image
Authorization: Bearer <manager-token>

โš ๏ธ Allergens โ€‹

๐Ÿ“‹ List Allergens โ€‹

GET /api/menu/allergens

Public.

โž• Create Allergen โ€‹

POST /api/menu/allergens
Authorization: Bearer <manager-token>
json
{
  "name": "Gluten"
}

๐Ÿ—‘๏ธ Delete Allergen โ€‹

DELETE /api/menu/allergens/:id
Authorization: Bearer <super-admin-token>

๐Ÿ• Mealtimes โ€‹

๐Ÿ“‹ List Mealtimes โ€‹

GET /api/menu/mealtimes

Public.

โž• Create Mealtime โ€‹

POST /api/menu/mealtimes
Authorization: Bearer <manager-token>
json
{
  "name": "Breakfast",
  "startTime": "06:00",
  "endTime": "11:00",
  "days": [0, 1, 2, 3, 4, 5, 6]
}

โœ๏ธ Update Mealtime โ€‹

PATCH /api/menu/mealtimes/:id
Authorization: Bearer <manager-token>

๐Ÿ—‘๏ธ Delete Mealtime โ€‹

DELETE /api/menu/mealtimes/:id
Authorization: Bearer <super-admin-token>

๐Ÿ”’ Permissions Summary โ€‹

ActionRequired Role
๐ŸŒ Read categories, items, allergens, mealtimesPublic
โœ๏ธ Create / updateManager, Super Admin
๐Ÿ—‘๏ธ DeleteSuper Admin