Floorplan Live-View (PL-T193)
I korthet
A live SVG floorplan showing the venue's resources in their physical layout with real-time booking status — available, reserved, confirmed, in-use, maintenance, retired. Includes drag-to-assign for walk-ins, multi-view support for terraces and seasonal areas, an admin floorplan editor with drag-tray-to-canvas, and a counter-screen display mode for wall-mounted screens behind the bar.
Så fungerar det
FloorplanView is an SVG canvas that can use a vector svg_template or a background image (architect's drawing, photo of the bar) with resources overlaid as positioned shapes. Each resource carries x/y/width/height/rotation in its document, optionally per-view (a single resource can appear at different coordinates in main-floor view and summer-terrace view). The view computes status (available, reserved, confirmed, in_use, maintenance, retired) using a 30-minute lookahead so a lane that's about to be in use is already marked.
Real-time updates ride on chain.floorplan.{tenant}.{location} SSE with a debounced refetch — every connected display refreshes within a few hundred ms when a booking transitions. The counter-screen display mode at /floorplan/display uses a dark theme, oversized typography, and oversized counters for legibility from across the room; it also adds a 5 s polling fallback so the screen recovers gracefully if SSE drops. Walk-ins use HTML5 drag-drop: the operator drags a walk-in card onto a free lane, which POSTs to /chain/floorplan/{location}/assign-walk-in with 409-handling for races.
The floorplan editor at /chain/floorplan/editor is admin-only — operators drag resources from a tray onto the canvas, an inspector lets them tune x/y/w/h/rotation, and they can switch between named views (main, terrace, vip-room) so each layout has its own coordinate set. The walk-in queue itself supports enqueue/cancel/list/assign with a TTL that expires unredeemed entries.
Centrala funktioner
- SVG layout with optional svg_template + background_image_url
- Real-time status with 30-min lookahead
- Counter-screen display mode (dark theme, SSE + 5s polling fallback)
- Drag-to-assign for walk-ins with 409-handling
- Admin floorplan editor with drag tray + inspector
- Multi-view support (main floor + summer terrace + VIP room)
- Walk-in queue: enqueue / cancel / list / assign with TTL
I praktiken
Saturday afternoon the venue is busy. A wall-mounted 55-inch screen behind the bar runs /floorplan/display so guests can see lane availability in real-time as they walk in. A couple arrives without a booking, ask the host for a lane.
The host opens the operator console, sees the walk-in card on the queue panel, drags it onto Lane 7 (which just turned green because the previous booking checked out). The assign POST returns 200, the floorplan repaints across both the operator's iPad and the wall screen via SSE, and the couple are escorted to their lane. Meanwhile the manager is in the editor at the back office, dragging three new resources for an outdoor terrace they've just opened — they create a "Terrace" view and assign the new lanes coordinates only within that view, leaving the main-floor layout untouched.
Features i detta subsystem
8| ID | Status | Funktioner |
|---|---|---|
| F22.11.01 | Levererad | SVG layout for lanes & tables (FloorplanView with optional svg_template + background_image_url) ✅ |
| F22.11.02 | Levererad | Real-time status (available / reserved / confirmed / in_use / maintenance / retired) with 30 min lookahead ✅ |
| F22.11.03 | Levererad | Counter-screen display mode (/floorplan/display, dark theme, oversized counters, SSE + 5 s polling fallback) ✅ |
| F22.11.04 | Levererad | Drag-to-assign for walk-ins (HTML5 drag-drop → POST /chain/floorplan/{location}/assign-walk-in with 409-handling) ✅ |
| F22.11.05 | Levererad | Floorplan editor for admins (/chain/floorplan/editor, drag tray-to-canvas, inspector for x/y/w/h/rotation) ✅ |
| F22.11.06 | Levererad | Multi-view support (e.g. main floor + summer terrace) with per-view positions on each resource ✅ |
| F22.11.07 | Levererad | SSE stream chain.floorplan.{tenant}.{location} with debounced refetch ✅ |
| F22.11.08 | Levererad | Walk-in queue (enqueue / cancel / list / assign) with TTL → expired ✅ |
Relaterade subsystem
Intressenter som behöver detta subsystem
Förekommer i 2 intressentanalyser