- Evidence
- docs/product/capture-to-sale-tracking.md
Goals
Sprint 2: Operational Floor POC - rooms/zones, labels, bulk ops, report skeleton — advances C1, C2, C3, C4, C5, C6 toward its gate(s).
Implementation — what to build
C1-C4 — see the build slices
- Rooms/zones = WI-032 . Label batches = WI-033 . Bulk ops = WI-034 . Client reports = WI-035.
C5 — Team roles + permissions
- Roles: owner/admin, cataloger, pricer, label/runner, checkout, client-report viewer.
- Membership table (sale or org scoped); gate actions by role; document owner-scoped RLS path (P6).
C6 — Markdown / discount phases
- discount_phases: timed pricing stages per sale.
- src/lib/troveDiscounts.ts: calculateSaleDiscountState (current/next/urgency/percent) + isSaleOpenNow; UI to configure phases.
Acceptance
- Rooms/zones, labels, bulk ops, reports, team roles, and markdown phases work together in a sale-floor flow.
Checklist
- ○
C1 Rooms, zones, and pickup areas exist in the tracking model. - ○
C2 Label batch workflow is first-class and QR print/pack path is demoable. - ○
C3 Bulk edit, mass label, and batch discount path is validated. - ○
C4 Client report skeleton is generated from sale/reconciliation state. - ○
C5 Team roles and permissions exist with an owner-scoped RLS upgrade path. - ○
C6 Discount phases / markdown-stage model supports timed sale pricing.
Gates & testing
- ○ C1 Rooms, zones, and pickup areas exist in the tracking model.
CODE TEST
- ○ C2 Label batch workflow is first-class and QR print/pack path is demoable.
CODE TEST
- ○ C3 Bulk edit, mass label, and batch discount path is validated.
CODE TEST
- ○ C4 Client report skeleton is generated from sale/reconciliation state.
CODE TEST
- ○ C5 Team roles and permissions exist with an owner-scoped RLS upgrade path.
CODE TEST
- ○ C6 Discount phases / markdown-stage model supports timed sale pricing.
CODE TEST
Requirements
REQ-OPS-001 accepted Rooms, zones, and pickup areas need to be first-class tracking fields across setup, capture, labels, checkout, pickup, and reports. Done when: Items can be grouped and filtered by room/zone/pickup area, and those carry through to labels and client reports.
REQ-OPS-002 accepted Label batches need a first-class print/pack workflow synchronized through the binding model. Done when: Mass label printing, reprints, skipped labels, room/zone grouping, preprinted sticker-pack codes, and a list of unlabelled high-value items all bind through the same model.
REQ-OPS-003 accepted Bulk operations need early operational support with a conflict preview before applying. Done when: Bulk price/category/room edits, mass label generation, batch discount changes, and duplicate-room setup between sales all show a reviewable conflict preview before applying.
REQ-OPS-004 accepted Client reports need to summarize sale/reconciliation outcomes with audit links. Done when: A report package generates sold/pending/unsold/donated/removed lines, totals by room/zone/consignor/category/day, gross/fees/net/recovered, and an exception list, each linked to status events.
REQ-OPS-005 accepted Team roles and permissions need first-class support with an RLS path. Done when: Roles owner/admin, cataloger, pricer, label/runner, checkout, and client-report viewer exist with an owner-scoped RLS upgrade path.
REQ-OPS-006 accepted Markdown/discount phases need a timed pricing model. Done when: discount_phases supports timed sale pricing stages; calculateSaleDiscountState returns current/next/urgency/percent.
Verify (done when)
rooms/zones, label batches, bulk ops, and a report skeleton work together in a floor flow.
Cost triggers
No paid API / infra spend triggered by this item.
Status & editing
queued Sprint: Sprint 2 - Operational Floor POC
Edit status / sprint on the ★ Live Board → — changes are logged live with who / when / why.
Human-in-the-loop
No human tasks linked.
Findings
None recorded yet.
Concerns
None recorded yet.
Tech debt
None recorded yet.
Tools used
No tool calls recorded.
Files & artifacts
No files / artifacts recorded.
Update log
No log entries yet.