Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/fredy-rizo/MultiSas/llms.txt

Use this file to discover all available pages before exploring further.

The restaurant module is designed for food service businesses that need to manage a physical dining room alongside delivery operations. It lets you define your menu (categories and products), configure tables with occupancy and reservation status, create and track dine-in orders (Pedido), dispatch deliveries with real-time status, and record charges at checkout — all within a single company tenant.

Features

Menu Management

Organize your menu with named categories (e.g., Starters, Mains, Drinks) and attach products with descriptions, prices, and optional extras.

Table Management

Define tables with a number, seating capacity, and real-time occupancy and reservation flags including reservation time and notes.

Order (Pedido) Management

Create POS orders linked to a product and company, auto-numbered via the company’s bill counter, and timestamped with date and hour.

Delivery Tracking

Record delivery orders with client name, phone, address, reference notes, and track status through "En camino", "Entregado", or "No entregado".

Charge Management

Log charges associated with a product and company, recording payment method and paid status for POS reconciliation.

Data Models

Category

Stored in collection category_restaurante. Organises menu items into logical groups.
FieldTypeNotes
name_categoryStringCategory label (e.g., "Bebidas", "Postres")
description_categoryStringWhat the category contains
sort_orderStringDisplay ordering hint
status_categoryBooleanWhether the category is active (defaults to true)
company._idStringOwning company ID snapshot
company.name_companyStringCompany name snapshot
company.name_founderStringFounder name snapshot
company.nit_companyStringCompany NIT snapshot
company.type_datoStringCompany type_dato snapshot

Product

Stored in collection product_restaurante. Represents a menu item.
FieldTypeNotes
name_productStringProduct name
description_productStringProduct description
price_productStringSale price
status_productBooleanWhether the product is active (defaults to true)
extrasArrayOptional add-ons, each with name_extra and price_extra
categoryObjectSnapshot of the parent category (_id, name_category, description_category, sort_order, status_category)
companyObjectSnapshot of company identity fields

Table

Stored in collection table_restaurante. Represents a physical dining table.
FieldTypeNotes
number_tableNumberTable number identifier
capacity_tableNumberMaximum seating capacity
occupiedBooleanWhether the table is currently occupied (defaults to false)
reservedBooleanWhether the table is reserved (defaults to false)
hour_reservedStringReservation time (defaults to "")
observation_reservedStringFree-text reservation note (defaults to "")
companyObjectSnapshot of company identity fields

Pedido (Dine-in Order)

Stored in collection pedido_restaurante. Records a product ordered at the restaurant. This model shares the /api/pedido route prefix with the sublimation pedido router; restaurant pedido routes are distinguished by the /restaurante/ path segment.
FieldTypeNotes
bill_counterStringAuto-generated order number from bill_counter_pedido_restaurante
date_pedidoStringDate the order was placed (DD/MM/YY)
hour_pedidoStringTime the order was placed
price_pedidoStringPrice taken from the linked product
productObjectSnapshot of product fields (_id, name_product, description_product, price_product, extras)
companyObjectSnapshot of company identity fields

Delivery

Stored in collection delivery_restaurante. Tracks an out-of-restaurant delivery.
FieldTypeNotes
name_client_deliveryStringRecipient name
phone_client_deliveryStringRecipient phone
address_client_deliveryStringDelivery address
references_client_deliveryStringAddress landmarks or notes (defaults to "")
status_deliveryString (enum)"En camino", "Entregado", "No entregado", or ""
payment_methodString (enum)"Efectivo", "Transferencia", or ""
paidBooleanWhether payment has been received (defaults to false)
productObjectSnapshot of product fields including extras

Charge

Stored in collection charge_restaurante. Records a payment collected for a product.
FieldTypeNotes
price_chargeStringAmount charged
payment_methodString (enum)"Efectivo", "Transferencia", "Tarjeta", or ""
paidBooleanWhether the charge is settled (defaults to false)
productObjectSnapshot of product fields (_id, name_product, description_product, price_product, extras)
companyObjectSnapshot of company identity fields

Order Flow

1

Add Products to Menu

Create one or more Category records, then add Product records under each category. Products can include optional extras (add-ons) with their own prices.
2

Assign Table

Register your physical tables with number_table and capacity_table. The occupied and reserved flags are updated as guests arrive or reservations are made.
3

Create Order

When a guest orders, create a Pedido by posting to /api/pedido/restaurante/:company_id/:product_id. The bill_counter is auto-incremented using bill_counter_pedido_restaurante on the company document.
4

Track / Update State

Update the table’s occupied flag and monitor order status. For kitchen tracking, refer to the cocina module (part of the restaurante company type).
5

Process Delivery (Optional)

For takeaway or home delivery, create a Delivery record by posting to /api/delivery/:company_id/:product_id with client contact information, address, and product snapshot. Update status_delivery as the order progresses.
6

Apply Charges

At checkout, create a Charge record by posting to /api/charge/:company_id/:product_id/:pedido_id, selecting the payment_method and marking paid: true once settled.

API Endpoints Summary

Categories — /api/category

MethodEndpointDescription
POST/api/category/:company_idCreate a new menu category
PUT/api/category/updating/:company_id/:category_idUpdate a menu category
GET/api/category/list/:company_idList all categories for a company (paginated)
DELETE/api/category/delete/:category_idDelete a category

Products — /api/product

MethodEndpointDescription
POST/api/product/:company_id/:category_idCreate a new menu product (category required)
PUT/api/product/:company_id/updating/:product_idUpdate a menu product
PUT/api/product/agregate/:company_id_resp/extra/:product_id_resp/pushAdd an extra to a product
PUT/api/product/updating/:company_id/:product_id/:extra_id/productUpdate a product extra
GET/api/product/list/:company_id/productList all products for a company (paginated)
DELETE/api/product/delete/:company_id/product/:product_idDelete a product
DELETE/api/product/delete/:company_id/product/:product_id/extra/:extra_idDelete a product extra

Tables — /api/table

MethodEndpointDescription
POST/api/table/:company_idCreate a new table
PUT/api/table/updating/:company_id/:table_idUpdate table details
PUT/api/table/updating-occupied/:company_id/:table_idUpdate table occupied status
PUT/api/table/updating-reserved/:company_id/:table_idUpdate table reservation
GET/api/table/list/:company_idList all tables for a company (paginated)
DELETE/api/table/remove/:company_id/:table_idDelete a table

Orders (Pedido) — /api/pedido

MethodEndpointDescription
POST/api/pedido/restaurante/:company_id/:product_idCreate a dine-in order for a product
GET/api/pedido/restaurante/:company_idList all restaurant orders for a company (paginated)

Deliveries — /api/delivery

MethodEndpointDescription
POST/api/delivery/:company_id/:product_idCreate a delivery order
PUT/api/delivery/status/:company_id/:delivery_idUpdate delivery status
PUT/api/delivery/update/:company_id/methods/:delivery_idUpdate delivery payment method
GET/api/delivery/list/:company_id/:delivery_id/:queryList deliveries (paginated)

Charges — /api/charge

MethodEndpointDescription
POST/api/charge/:company_id/:product_id/:pedido_idRecord a charge for a product and order
GET/api/charge/:company_idList all charges for a company (paginated)
The restaurant company type (restaurante) initialises only the bill_counter_pedido_restaurante counter. Ensure the company’s type_company is set to "restaurante" when registering so the correct modules and counter are provisioned. The /api/pedido route prefix is shared with the sublimation module — restaurant pedido routes are always accessed via the /restaurante/ path segment.

Full Restaurant API Reference

Browse the complete endpoint reference for categories, products, tables, orders, deliveries, and charges in the restaurant module.

Build docs developers (and LLMs) love