Venue property and facility management · build status
The system a venue runs on, extending event.clinic's spine with an `estate` schema. Unlike its siblings, the ledger below is GENERATED from the navigation source rather than written — a hand-kept list of what is done reports 100% forever.
E1 – E5 · 5 slices
5 complete
E6 – E11 · 6 slices
6 complete
E12 · 1 slice
1 complete
E13 · 1 slice
1 complete
E14 – E20 · 7 slices
7 complete
E21 – E24 · 4 slices
4 complete
E25 – E27 · 3 slices
3 complete
E28 – E34 · 7 slices
7 complete
E35 – E39 · 5 slices
4 complete · 1 not started
E40 · 1 slice
1 complete
E41 – E42 · 2 slices
2 complete
E43 · 1 slice
1 complete
E44 · 1 slice
1 complete
E45 · 1 slice
1 complete
| Slice | Name | Status | The ledger’s note |
|---|---|---|---|
| Group Global — Portfolio | |||
| E1 | Venues | built | / |
| E2 | Add a venue | built | /portfolio/add |
| E3 | Compliance | built | /portfolio/compliance |
| E4 | Utilisation | built | /portfolio/utilisation |
| E5 | Board pack | built | /portfolio/board |
| Group Global — People and access | |||
| E6 | Tasks | built | /tasks |
| E7 | People | built | /people |
| E8 | Roles and permissions | built | /roles |
| E9 | Activity | built | /activity |
| E10 | Invitations | built | /invitations |
| E11 | Billing | built | /billing |
| Group Global — References | |||
| E12 | Standards library | built | /reference/standards |
| Group Venue — Overview | |||
| E13 | Command view | built | /overview |
| Group Venue — The building | |||
| E14 | Venue profile | built | /venue |
| E15 | Buildings and spaces | built | /structure |
| E16 | Arrange | built | /arrange |
| E17 | Asset register | built | /assets |
| E18 | Planned maintenance | built | /ppm |
| E19 | Cleaning | built | /cleaning |
| E20 | Work orders | built | /work |
| Group Venue — Compliance and safety | |||
| E21 | Statutory register | built | /compliance |
| E22 | Risk register | built | /risk |
| E23 | Incidents | built | /incidents |
| E24 | Contractors and permits | built | /contractors |
| Group Venue — Crowd and security | |||
| E25 | Capacity and crowd | built | /capacity |
| E26 | Lost property | built | /lost-property |
| E27 | Security operations | built | /security |
| Group Venue — Commercial | |||
| E28 | Function diary | built | /diary |
| E29 | Enquiries and rates | built | /pipeline |
| E30 | Event orders | built | /orders |
| E31 | Purchases | built | /procurement |
| E32 | Public listing | built | /listing |
| E33 | Events here | built | /events |
| E34 | Catering | built | /catering |
| Group Venue — Media and documents | |||
| E35 | Photos and plans | built | /media |
| E36 | Drawing register | built | /drawings — the list is fetched by Venuesta's own Worker (/api/ec/layouts), not by the browser. It was DEAD in every deployed environment from the day it shipped until 29 Aug: a cross-origin fetch that event.clinic's ALLOWED_ORIGIN would not answer. A Worker sends no Origin, so CORS does not apply. Guarded by api/test-shared-planner-reachable.mjs. |
| E37 | Layouts and zone maps | built | /layouts |
| E38 | Brand kit | built | /brand — blocked, not merely planned. Measured 29 Aug: app.layout_seat carries ticket_type, price_amount, is_killed and no column that records who holds a seat. That table is the ENGINE's — Venuesta never writes geometry — so this cannot be built here without event.clinic adding somewhere to put the answer. Nothing to do on this side until it does. |
| E39 | Seat assignment — built in event.clinic's engine, opened here | planned | Declared on planned; no surface, no route, and nothing rendered. |
| Group Venue — Settings | |||
| E40 | Settings and vocabulary | built | /admin |
| Group Event — This event | |||
| E41 | Event workspace | built | /event |
| E42 | Venue brief | built | /event/brief |
| Group Event — Operations | |||
| E43 | Operations log | built | /event/operations |
| Group Event — Safety | |||
| E44 | Crowd and permits | built | /event/safety |
| Group Event — Commercial | |||
| E45 | Booking and orders | built | /event/commercial |
scripts/
that exits 0 against the code as committed; a slice whose script has not
exited 0 in a single run is not complete here, whatever else was built.
Exit 2 means BLOCKED — something could not run, so the tree was NOT measured. That is not a pass, and it outranks FAILED: no answer is more dangerous to act on than a bad answer. Three checks are local-only (they create roles and write fixtures) and are reported as SKIPPED against dev, never as passes.
./scripts/verify-all.sh local
# both servers from one shell — the launch.json entry `venuesta-local` cd ~/Documents/event-clinic-suite/property-management/api && npx wrangler dev --port 8811 & # API # the portal. 5188 is not arbitrary — it is the API's ALLOWED_ORIGIN cd ~/Documents/event-clinic-suite/property-management/app && npm run dev -- --port 5188 --strictPort # load the schema and the demo venue locally cd ~/Documents/event-clinic-suite/property-management && ./db/apply.sh --with-demo # prove the tree before believing any status above cd ~/Documents/event-clinic-suite/property-management && ./scripts/verify-all.sh local # regenerate this page's ledger from the navigation source cd ~/Documents/event-clinic-suite/property-management && python3 scripts/build-ledger.py
Venuesta uses real paths, not hash routing, so every link below survives a reload and can be pasted to someone else. The venue workspace is keyed by `?site=` and the event workspace by `?event_id=` — a link without one lands on the picker rather than guessing, which is deliberate: an operator with three venues used to see only the first.