import { UbMenuEntityType, UbModifierGroupDisplayType } from '../enums/ub-menu'; import { UbMenuItem } from './ub-menu-item'; import { UbQuantityConstraintRules } from './ub-quantity-constraint-rules'; import { UbMultiLanguageText, UbServiceAvailability } from './ub-utils'; export interface UbMenuConfiguration { menus: UbMenu[]; categories: UbCategory[]; items: UbMenuItem[]; modifier_groups: UbMenuModifierGroup[]; display_options: UbDisplayOptions; } export interface UbMenu { id: string; title: UbMultiLanguageText; subTitle?: UbMultiLanguageText; service_availability: UbServiceAvailability[]; category_ids: string[]; } export interface UbCategory { id: string; title: UbMultiLanguageText; subTitle?: UbMultiLanguageText; entities: UbMenuEntity[]; } export interface UbMenuModifierGroup { id: string; /** Free-form text field reserved for the restaurant’s use, e.g. for POS integrations. */ external_data?: string | any; title: UbMultiLanguageText; quantity_info?: UbQuantityConstraintRules; modifier_options: UbMenuEntity[]; display_type?: UbModifierGroupDisplayType; } export interface UbDisplayOptions { disable_item_instructions?: boolean; } export interface UbMenuEntity { id: string; type?: UbMenuEntityType; }