Domain Model — westside-streamlit

arch-domain-westside-streamlit Doc

architecture active mermaid

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_status drives the counts cards, the Offered pool, the Declined pool, and the Signed audit.
  • players.division is mapped to "Kings" / "Queens" in the UI (boys → Kings, girls → Queens).
  • players.monthly_fee drives the fee tier filter (≤$100, $100–180, $180–200, >$200).
  • players.custom_notes surfaces as a "custom deal" filter — any non-empty value means a bespoke contract.
  • parents.email is the dedup key for parent-cluster detection (one parent → multiple unsigned kids).
  • orders.status filtered to products.category = 'jersey' drives the jersey payment view. Gap: cash-paid jerseys (e.g. Seydou) have no orders row, so they show as pay_status = 'none'. See story-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