/src/lib/core/types.ts.
Table domain
Types for restaurant table management and status.TableStatus
Table is available and ready for new customers
Table is currently in use by customers
Table is in the payment/checkout process
MenuType
Full menu with food, drinks, snacks, and desserts
Limited menu with beverages only
SpecialEvent
No special event for this table
Birthday celebration (triggers discount and special UI)
TableData
Unique identifier for the table (e.g.,
"TABLE_01")Human-readable table name (e.g.,
"Mesa 1")Current table status (
FREE, OCCUPIED, or PAYING)Available menu type (
FULL or DRINKS_ONLY)Special event type (
NONE or BIRTHDAY)Discount amount as a decimal (e.g.,
0.15 for 15% off). Only present for birthday tables.Animation identifier for special events. Currently only supports
'cake'.Menu and product domain
Types for product catalog and menu items.ProductCategory
Main dishes and entrees
Beverages (alcoholic and non-alcoholic)
Appetizers and small bites
Sweet treats and desserts
Product
Unique product identifier
Product name displayed to customers
Product price in the base currency unit (e.g., dollars/euros)
Product category for filtering and organization
Path or URL to product image
Detailed product description or ingredients list
Cart domain
Types for shopping cart and order management.CartItem
Full product object with all details
Number of units of this product in the cart
Location and context-aware domain
Types for GPS-based context switching and delivery routing.AppMode
Initial state while determining user location and proximity
In-situ mode for customers inside the restaurant. Activates QR code scanner for table selection.
Delivery mode for customers outside the geofence radius. Shows delivery menu and routing.
Coordinates
Latitude in decimal degrees (range: -90 to 90)
Longitude in decimal degrees (range: -180 to 180)
DeliveryInfo
Total delivery distance in kilometers
Estimated time of arrival in minutes
Encoded polyline string from Mapbox API (RFC 1952 encoded geometry)
Decoded array of coordinates ready for rendering with
react-native-maps <Polyline /> component