Menu Configuration
Menu configuration schemas for restaurant and food service management. Includes menu categories, menu items, and QR code generation.
Source: src/core/business-mgt/menu-config.schema.ts
MenuCategory​
Categories for organizing menu items.
Schema: MenuCategorySchema
Attributes​
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
id | string | — | — | Unique identifier for the category |
name | string | Yes | — | Category name (e.g., Appetizers, Main Course) |
description | string | No | — | Category description |
displayOrder | number | No | — | Display order in menu listings |
createdAt | number | — | — | Unix timestamp when created |
updatedAt | number | — | — | Unix timestamp when last updated |
BusinessMenuItem​
Individual menu items with pricing and availability.
Schema: BusinessMenuItemSchema
Attributes​
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
id | string | — | — | Unique identifier for the menu item |
name | string | Yes | — | Display name of the menu item |
description | string | No | — | Detailed item description |
price | number | Yes | — | Base price in account's currency |
categoryId | string | Yes | — | References MenuCategory |
category | MenuCategory | No | — | Populated category object |
ingredients | array<string> | No | — | List of primary ingredients |
allergens | array<string> | No | — | Common allergens present |
nutritionalInfo | object | No | — | Nutritional information |
isAvailable | boolean | No | true | Real-time availability status |
preparationTime | number | No | — | Estimated prep time in minutes |
isActive | boolean | No | true | Whether item is active in catalog |
displayOrder | number | No | — | Display order within category |
createdAt | number | — | — | Unix timestamp when created |
updatedAt | number | — | — | Unix timestamp when last updated |
Nutritional Info Object​
| Attribute | Type | Description |
|---|---|---|
calories | number | Caloric content per serving |
protein | number | Protein content in grams |
carbs | number | Carbohydrate content in grams |
fat | number | Fat content in grams |
MenuQRCode​
QR code for digital menu access.
Schema: MenuQRCodeSchema
Attributes​
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
id | string | Yes | — | Unique identifier for the QR code |
menuUrl | string | Yes | — | URL to the digital menu |
qrCodeImage | string | No | — | Base64 encoded QR code image |
tableNumber | string | No | — | Optional table number for dine-in |
Example​
{
"id": "item_abc123",
"name": "Margherita Pizza",
"description": "Classic Italian pizza with fresh tomatoes and mozzarella",
"price": 16.99,
"categoryId": "cat_pizza",
"ingredients": ["tomatoes", "mozzarella", "basil", "olive oil"],
"allergens": ["dairy", "gluten"],
"nutritionalInfo": {
"calories": 850,
"protein": 32,
"carbs": 98,
"fat": 35
},
"isAvailable": true,
"preparationTime": 15,
"isActive": true,
"displayOrder": 1,
"createdAt": 1709856000000,
"updatedAt": 1709856000000
}
Create / Update Schemas​
| Schema | Description | Omits |
|---|---|---|
CreateMenuCategorySchema | For creating categories | id, createdAt, updatedAt |
UpdateMenuCategorySchema | For updating categories | All fields optional except id |
CreateBusinessMenuItemSchema | For creating menu items | id, createdAt, updatedAt, category |
UpdateBusinessMenuItemSchema | For updating menu items | All fields optional except id |