Configure table types
Define table types for one floor plan, colour them for recognition, assign them to tables and persist them when the full layout is saved.
In this article
Table types belong to one floor plan. Use them when Harbor Soho needs seating categories such as Window tables or Patio tables to stand out by colour while each table keeps its own capacity and shape.
The table type form Save only updates the open editor state. Persistence happens when the main layout Save sends the complete `LayoutPayload` with `table_types`, `tables`, zones and combinations.
Before you start
- Use the GB demo context Harbor Demo Group > Harbor Soho when producing the landing wiki version.
- Open `/:orgId/:locationId/location/layouts` and select a layout, or use `layout_id=new` with `layout_copy_from_id=${SETUP_LAYOUT_SOURCE_LAYOUT_ID}` and `layout_name=${SETUP_LAYOUT_COPY_LAYOUT_NAME}` for documentation captures.
- The user needs `layout:view` to open the layout and see table types, zones, tables and combinations.
- The user needs `layout:manage` to create, edit, delete or save table types.
- The layout must be editable: not read-only, not historical and not deleted.
- Before the final save, the whole floor plan must still pass validation for zones, tables, capacities, combinations and table type references.
Instructions
- 1.
Open the floor plan editor
From Harbor Soho, open Location layouts and choose the floor plan to maintain. For documentation work, open a copied layout so examples can be created without changing the source floor plan.
- 2.
Open Table types
Open the editor side panel and select `Tipos de mesa`. The tab lists the types defined only for the current layout and shows `Nuevo tipo de mesa` when the user can manage layouts.
- 3.
Create or update a type
Use `Nuevo tipo de mesa`, enter `Nombre`, optionally add `Descripción`, choose `Color`, then use the form `Guardar`. This form Save updates the editor state only.
- 4.
Assign the type to a table
Select a table and use the `Tipo de mesa` field in the table details panel. Choose a defined type, or choose `Sin tipo de mesa` when the table should stay untyped.
- 5.
Delete a type if needed
Use `Eliminar` on an existing type and confirm the deletion. The editor removes the type locally and clears it from any tables that were using it.
- 6.
Save the layout
Use the main editor `Guardar` to persist the complete layout. The request sends `table_types` together with zones, tables and combinations through the layouts API.
Validations and limits
- `Nombre` is required for each table type.
- Table type names must be unique inside the layout after trimming and case-insensitive comparison.
- When no custom colour is set, the editor uses `#98A2B3`.
- A table can have no type; this is represented by `Sin tipo de mesa` and no `tables[].table_type_id` value.
- If a table references a type that is no longer included in the layout, the final save is blocked.
- Saving the table type form is not the backend persistence boundary; only the main layout Save sends `table_types` to the backend.
- Even when only table types changed, invalid zones, tables, capacities or combinations can still block the final layout save.
- Table types are stored under a single `layout_id`; the implemented app does not expose a separate `/layout-table-types` CRUD endpoint for this workflow.
Expected result
The copied or selected layout is saved with its table type definitions. Tables keep an optional `table_type_id`, and type colours appear in the editor so the team can distinguish seating categories visually.