Iteration goal: FoodBridge's customer success team sees every store a distributor built — newest first — and opens his answers and every file he sent, as he sent them, to set the store up. Only the team gets in.
fb-team-demo)| From | Event | To |
|---|---|---|
| Panel, no key | OPEN | Key form (the server answers 401) |
| Key form | SUBMIT_KEY (wrong) | Key form, “That key was not accepted.” |
| Key form | SUBMIT_KEY (right) | Built stores list (the key is kept in this browser) |
| List | SEARCH (shop · owner · mobile · GST · id) | List, filtered |
| List | DOWNLOAD (Excel · setup.json · his files · photos · voice notes) | The file, as he sent it (pieced files rejoined) |
| List | REFRESH | List, newest first |
| State | Event | To |
|---|---|---|
arriving (“Still arriving from the phone: …”) | last file lands | received |
received | — (v1 has no review states) | — |
| State | Event | To |
|---|---|---|
new (every store arrives as one) | START_REVIEW | inReview |
new / inReview | MARK_SET_UP — only once every file has arrived | setUp |
setUp | MARK_READY — v3: only once it is Set up | ready — Ready to use; the owner's chat switches on his store's options (read through this module's readiness contract) |
| any | MOVE (to another status; never to ready before setUp) | that status; each move is timed and kept in the ticket's history |
v2 (2026-10-01, owner): every store is a ticket — the start of a ticketing and operations workspace. No reply to the owner (v3 changes this one thing: Ready to use reaches his chat — addendum-006). One common team key. Builds stay read-only; tickets are the team's own.
Data: seed-data/seed.json and its real files in
seed-data/files/ (each store made by the Store Setup prototype's own export) — three built stores exactly as
GET /api/stores returns them. Builds come from the store-setup module (through its
SSOT-7 StoreBuildFeed); this discovery stands on its own and does not link to that one.