This class represents an item of food or beverage from the restaurant's menu. It exists as a part of either a single order or a single meal, but not both at the same time (an order gets decomposed into the constituent Items and they are added to a meal). An Item that is part of an order may contain a dietary requirement. An Item contains the menu item's name, price, description, status and an image or model to depict the Item on a surface computer or display.
This class represents a customer's dietary requirement (e.g. vegetarian, celiac). It exists as part of either a single Order or a single Item, but not both at the same time. A DietaryRequirement contains both the name and a description of the particular requirement it represents.
This class represents a collection of Items and DietaryRequirements. It is part of a single Meal and maintains information about whether it has been placed or approved. An Order can be in either the placed, cancelled or the approved state. An Order will typically be deleted shortly after it has been approved and its Items added to the customer's Meal, tying the Items in the Order to an Account.
This class represents a collection of all items ordered by a single customer. It is part of a single Account and maintains the seat number related to the Meal. The total price of a Meal is also maintained.
This class represents the associated Meals and Payments of a Table of customers. It consists of one or more Meals and one or more Payments. An account is related to one Table and is associated with one Tablet.
This class represents a physical table at which a customer may be seated and its integrated surface computer. If the represented table is activated, an Account will be associated with the Table. It contains information about its current mode and its unique identification number. Further, it may be woken (activated), put to sleep (deactivated), placed in ordering mode or placed in billing mode.
This class represents a wireless tablet used by staff; it essentially represents a waiter/supervisor logged into the tablet and consequently the system. The class contains information about who is logged into the Tablet. It may also be associated with any number of Alerts that can be sent to it by the system.
This class represents a message sent to a Tablet to alert the waiter/supervisor of an event related to one of the Tables they have been assigned. It maintains a category (e.g. 'item rejected', 'item ready') and a description. An Alert belongs to exactly one Tablet.
This class represents a payment to be made to the restaurant. and TipDenominations and is related to exactly one Account. and the seat number of the paying customer. It may contain any number of Meals A Payment maintains its total value
This class represents an extension of the Payment class for customer payments that are to be paid using a bankcard.
This class represents an extension of the Payment class for customer payments that are to be paid using cash.
This class represents a tip denomination to be given to a waiter. A TipDenomination belongs to a single Payment and contains information about the denomination value.