Skip to content

Table Blocks ​

The Table Blocks page is used to prevent a table, or a time range inside a branch, from being used for reservations during a defined period.

Use Table Blocks when you need to reserve operational time for cases such as:

  • maintenance
  • deep cleaning
  • private setup
  • temporary floor restrictions
  • staff-only service windows
  • unavailable tables during events or layout changes

Table Blocks are an internal admin tool. They are used by staff to control reservation availability and table assignment behavior.

What a Table Block Does ​

A Table Block creates a blocked time window with a start date/time and end date/time.

Depending on how it is configured, the block can be used to:

  • block a specific table
  • document why the table is unavailable
  • organize blocked tables by branch, floor, and zone
  • keep the block searchable and visible in the admin list

The system stores each block with branch context, an optional table, a translated title, an optional reason, the block time range, and the user who created it.

Where to Find It ​

In the admin panel, open:

Reservations > Table Blocks

From there, staff can:

  • view all existing table blocks
  • search and filter blocks
  • create a new block
  • edit an existing block
  • delete one or more blocks
  • export the table block list

Page Overview ​

The Table Blocks module currently includes:

  1. Table Block List
  2. Create Table Block
  3. Edit Table Block

The create and edit form uses the same core fields.

Table Block List ​

The list page displays the current blocked records in a data table.

Main Columns ​

ColumnPurpose
BranchShows which branch owns the block. This may be hidden for users already assigned to a branch.
TableShows the blocked table, when a specific table is selected.
TitleShows the block name in the active language. This is the main label staff use to identify the block.
Start AtShows when the block begins.
End AtShows when the block ends.
Created ByShows the staff user who created the block.

Search, Filter, and Sort ​

The list supports:

  • search by Title
  • search by Reason
  • filter by Branch
  • filter by date range
  • sort by Branch
  • sort by Table
  • sort by Title
  • sort by Start At
  • sort by End At
  • sort by Created By

Export ​

Table Blocks support export using the system export flow.

The export includes:

  • branch
  • table
  • floor
  • zone
  • title
  • start date and time
  • end date and time
  • created by

Create and Edit Form ​

The Table Block form is used for both creating and updating records.

When creating a record, branch selection appears if the current user is not already restricted to one branch.

When editing a record, the form keeps the existing branch context and updates the block details.

Field-by-Field Explanation ​

Branch ​

FieldPurpose
BranchSelects which branch the table block belongs to. This determines the available floors, zones, and tables that can be selected in the form.

Why Branch Matters ​

Branch is the top-level context for the block.

It affects:

  • which floors are loaded
  • which zones are loaded
  • which tables are available
  • which reservation operations are impacted by the block

If the logged-in user is assigned to a branch, this value is taken from the user context and is not intended to be changed manually.

Title ​

FieldPurpose
TitleThe main internal name of the table block. It explains what the block is for, such as Maintenance, Private Event Setup, or Deep Cleaning.

Title Translation Behavior ​

The Title field is translatable.

That means:

  • the form supports multiple languages
  • staff can enter the title for each supported locale
  • the list page shows the title in the active language
  • search and sorting use the translated title field

Use short, clear titles that help staff understand the reason for the block immediately.

Floor ​

FieldPurpose
FloorNarrows the table selection to a specific floor inside the selected branch.

Why Floor Exists ​

The Floor field is used to reduce the table list and help staff find the correct table faster.

It is especially useful when:

  • the branch has multiple floors
  • the same naming pattern is reused across areas
  • staff want to create a block in a specific service area

If no branch is selected, floor selection is disabled.

Zone ​

FieldPurpose
ZoneNarrows the available tables further to a specific zone within the selected floor and branch.

Why Zone Exists ​

Zone helps staff target a smaller operational area.

Examples:

  • indoor
  • outdoor
  • smoking
  • terrace
  • VIP
  • family section

If no floor is selected, zone selection is disabled.

Table ​

FieldPurpose
TableSelects the specific table that should be blocked during the chosen time range.

Important Note About Table ​

The Table field is currently optional.

This means a block record can still be created even if no individual table is selected. In practice, the main operational use case is to block a specific table, so staff should normally choose the target table unless the branch intentionally wants to record a broader block entry for internal tracking.

Because floor and zone are selectors for table discovery, staff usually follow this order:

  1. Select Branch
  2. Select Floor if needed
  3. Select Zone if needed
  4. Select Table

Start At ​

FieldPurpose
Start AtDefines the exact date and time when the table block begins.

End At ​

FieldPurpose
End AtDefines the exact date and time when the table block finishes.

Time Range Rules ​

The block time range is one of the most important parts of the record.

The backend enforces:

  • Start At is required
  • End At is required
  • End At must be after Start At

This prevents invalid block windows such as zero-length or reversed time ranges.

How the Time Range Is Used ​

The system uses this window to understand when the block is active.

Operationally, this helps reservation logic know that a table should not be considered available during that period.

Examples:

  • block a table from 5:00 PM to 7:00 PM for maintenance
  • block a table for an entire evening during a private setup
  • block a table for a short turnover window before a special service

Reason ​

FieldPurpose
ReasonStores a longer explanation for the block. This is useful when the title alone is not enough.

When to Use Reason ​

Use the Reason field when staff need more context, such as:

  • who requested the block
  • what work is happening
  • whether the block is temporary or recurring in practice
  • what operations staff should do during that time

The Reason field is optional, but it is useful for audit clarity and team handoff.

Validation Rules ​

The form currently enforces these rules:

FieldRule
BranchRequired on create, based on branch context rules.
TableOptional, but if provided it must reference an existing table.
TitleRequired, translatable, minimum 2 characters, maximum 255 characters per locale.
ReasonOptional, maximum 1000 characters.
Start AtRequired, valid date and time.
End AtRequired, valid date and time, and must be after Start At.

Form Behavior ​

The form loads data progressively:

  1. Load base branch metadata
  2. Load floors for the selected branch
  3. Load zones for the selected floor
  4. Load tables for the selected branch, floor, and zone

When the user changes:

  • Branch: floor, zone, and table are reset
  • Floor: zone and table are reset
  • Zone: table is reset

This prevents a table from remaining selected after its parent context changes.

Relationship Between Branch, Floor, Zone, and Table ​

The selection path is hierarchical:

  • Branch is the top-level owner
  • Floor belongs to the branch
  • Zone belongs to the selected branch/floor context
  • Table is the final target being blocked

This structure makes the form easier to use in branches with many tables.

Created By ​

Each record stores the staff user who created it.

This helps with:

  • accountability
  • follow-up questions
  • operational traceability
  • admin review

The value appears in the list and export output.

Use Table Blocks with clear naming and consistent internal rules.

Recommended practice:

  1. Keep the Title short and operational.
  2. Use Reason for additional context.
  3. Always verify the Start At and End At window carefully.
  4. Use Floor and Zone to narrow the correct table before selecting it.
  5. Prefer blocking the specific table that is affected instead of creating vague entries.

Practical Examples ​

Example 1: Cleaning Block ​

  • Branch: Main Branch
  • Floor: Ground Floor
  • Zone: Indoor
  • Table: T12
  • Title: Deep Cleaning
  • Reason: Seat repair and full cleaning after closing prep
  • Start At: 2026-07-05 02:00 PM
  • End At: 2026-07-05 04:00 PM

This prevents staff from treating the table as available during that window.

Example 2: Private Event Preparation ​

  • Branch: Downtown Branch
  • Floor: First Floor
  • Zone: VIP
  • Table: VIP-03
  • Title: Private Event Setup
  • Reason: Reserved for event decoration and audio setup
  • Start At: 2026-07-10 03:00 PM
  • End At: 2026-07-10 06:00 PM

This gives the team a visible, time-bound operational block before service begins.

Create and Update Workflow ​

Create Table Block ​

  1. Open Reservations > Table Blocks
  2. Click Create Reservation Table Block
  3. Select the Branch if required
  4. Enter the translated Title
  5. Choose Floor, Zone, and Table as needed
  6. Enter Start At and End At
  7. Add Reason if useful
  8. Click Create

Update Table Block ​

  1. Open the existing block from the list
  2. Update the translated Title
  3. Adjust floor, zone, table, or time range if needed
  4. Update the Reason if the purpose changed
  5. Click Update

When to Use Table Blocks Instead of Reservation Settings ​

Use Reservation Settings when you want to define branch-wide reservation behavior.

Use Table Blocks when you want to stop availability for a specific operational time window.

In short:

  • Reservation Settings = policy
  • Table Blocks = operational blocking record

Tenvoro