DineGlobeDocs

Floor plan & resources

Areas, tables and other physical resources, accessible and online flags, approved table combinations and the visual layout editor.

Manager

The floor plan is the physical truth every booking allocates against: areas group your rooms and floors, resources are the bookable seats (tables, booths, bar places, private rooms), and combinations are approved joins of two to four resources for larger parties. Two people can never hold the same resource at the same time — the database refuses it. Configuration needs the venues.manage permission (owner, org admin or manager); every staff role can read the plan.

Where editing happens today

The editors live in the operator panels at /app/panels: “Areas & resources (DEV-012 panel)” and “Resource combinations (DEV-013 panel)”. They are keyboard, list-based forms that call exactly the commands a visual editor would call — there is no drag-and-drop canvas in the pilot. Everything you enter is validated again server-side.

Areas

An area is a named group of resources (“Main room”, “Terrace”, “First floor”). Form “Save an area”:

Field What it is Rules/limits
Area id Identifies an existing area to update. Leave blank to create.
Name The area name staff see. 1–80 characters, unique within the venue.
Floor label Optional floor tag (“Ground”, “2F”). Up to 40 characters.
Tags Optional free-form labels. Up to 10 tags, each 1–40 characters, comma-separated in the form.
Sort order Display/processing order. 0–999.
Active Whether the area is in use. Inactive areas keep their history but drop out of setup.

AREA_NAME_TAKEN (409) — another area of this venue already uses that name. Choose a different name; names are per-venue, so two venues may both have a “Terrace”.

Resources

A resource is one bookable physical seat unit. Form “Save a resource”:

Field What it is Rules/limits
Resource id Identifies an existing resource to update. Leave blank to create.
Area id The area the resource sits in. Must belong to the same venue.
Label The table label staff and bookings see (“T7”). 1–40 characters, unique within the venue.
Type Physical kind. Table, Booth, Seat, Bar, Private room.
Minimum party Smallest party the resource fits. 1–50, default 2.
Maximum party Largest party the resource fits. 1–50, default 4, and at least the minimum.
Priority Tie-break weight when several fits are equal. 0–999, default 100; best-fit prefers the fewest wasted seats, then priority, then the stable id.
Accessible seating Records the resource as accessible. A venue-maintained flag; the layout read reports it so staff seat guests appropriately.
Online bookable Whether public online booking may select it. On by default. Switched off, the resource is only usable for staff-taken (phone/walk-in) bookings.
Active Whether the resource participates. Inactive resources keep history but are never allocated.

RESOURCE_LABEL_TAKEN (409) — another resource of this venue already uses that label.

The layout editor and LAYOUT_STALE

Each resource carries an optional placement record stored as a versioned structure: a shape (rectangle or circle), an x/y position and a width/height, all on a normalized 0–1000 grid (width/height 1–1000), plus an optional rotation of 0–359 degrees. Form “Place a resource (list layout editor)” saves one placement; form “Read the layout (list view)” prints every resource as label @ area plus either its placement or (unplaced).

The layout uses optimistic concurrency, which is where LAYOUT_STALE lives:

  • The editor form carries “Layout version you loaded” — the version number from your last read.
  • Your save is applied only if the venue’s layout is still at that version. If someone else saved first, the write refuses with LAYOUT_STALE (409): “The layout changed since you loaded it — refresh first.”
  • Remedy: read the layout again (this returns the new version), then re-apply your change on top of it. Nothing partial is ever written — a refused save leaves the stored layout untouched.

A single layout save may place up to 200 resources, and each resource appears at most once per save.

Combinations — approved multi-table joins

A combination is a named join of resources the venue approves in advance, so a party of ten can be allocated “T4 + T5” as one unit. Guests never define combinations, and staff can only move a party onto resources that form an approved combination. Form “Save a combination”:

Field What it is Rules/limits
Combination id Identifies an existing combination to update. Leave blank to create.
Name What staff call the join (“Window four”). 1–80 characters, unique within the venue.
Member resource ids The joined resources. 2–4 distinct resource ids of the same venue, comma-separated.
Minimum party Smallest party the combination fits. 1–200, default 5.
Maximum party Largest party the combination fits. 1–200, default 12, and at least the minimum.
Priority Best-fit tie-break, like a resource. 0–999, default 100.
Active Whether the combination participates. Inactive combinations are never allocated.

Error codes:

  • COMBINATION_NAME_TAKEN (409) — rename the combination.
  • CONFLICT (409) — “The combination changed concurrently — retry with fresh members.” Reload the combination list and re-enter your change.

For how the allocator uses resources and combinations once service starts, see The service board and Making a booking.