Domain Model — westside-streamlit
Domain Model — westside-streamlit
Entities that the Streamlit dashboard reads from the
basketball Postgres database. All schemas are owned by basketball-api; westside-streamlit is a consumer, never a writer.Columns the dashboard reads
players.contract_statusdrives the counts cards, the Offered pool, the Declined pool, and the Signed audit.players.divisionis mapped to "Kings" / "Queens" in the UI (boys→ Kings,girls→ Queens).players.monthly_feedrives the fee tier filter (≤$100, $100–180, $180–200, >$200).players.custom_notessurfaces as a "custom deal" filter — any non-empty value means a bespoke contract.parents.emailis the dedup key for parent-cluster detection (one parent → multiple unsigned kids).orders.statusfiltered toproducts.category = 'jersey'drives the jersey payment view. Gap: cash-paid jerseys (e.g. Seydou) have noordersrow, so they show aspay_status = 'none'. Seestory-westside-streamlit-jerseys.
Data not yet surfaced
The database has more than the dashboard currently shows. Future tickets may pull in:
- Outreach log (when was a parent last contacted)
- Payment schedule / monthly dues tracking
- Tournament registration state
- Coach assignments per team