deckhearth/.convoys/pricing-online-local/brief-13-local-stores-ui.md
Randall Stillwell d0468015eb
Some checks failed
CI / Lint (pull_request) Has been cancelled
CI / Schema map up to date (pull_request) Has been cancelled
CI / Forbidden patterns (9 checks) (pull_request) Has been cancelled
CI / Migrations apply (node-pg-migrate) (pull_request) Has been cancelled
Visual diff / Should run? (pull_request) Has been cancelled
CI / Unit tests (vitest) (pull_request) Has been cancelled
Convoy metrics gate / Require role-event telemetry on convoy PRs (pull_request) Has been cancelled
PR Health rollup / Aggregate gate status (pull_request) Has been cancelled
Preview smoke / Should run? (pull_request) Has been cancelled
Preview smoke / Playwright smoke (pull_request) Has been cancelled
Visual diff / Screenshot diff (pull_request) Has been cancelled
feat(pricing): convoy for online prices and local stores
Add pricing schema, free API integrations (MTG bulk, TCGdex, Foolio),
valuation and sort-by-price, card detail pricing UI, and nearby store
discovery via home zip and OSM geo clients.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 22:47:46 -05:00

1.5 KiB
Raw Blame History

convoy brief_number depends_on recommended_model model_tier files cross_brief_commitments
pricing-online-local 13
9
11
12
composer-2.5 standard
components/card-detail/CardDetailLocalStores.js
components/CardDetailView.js
lib/use-card-detail.js
test/components/CardDetailLocalStores.test.js
brief description
9 Inserts local stores section into the purchase tab area using the slot Brief 9 reserved. Does not rework purchase pricing UI.

Brief 13: Local stores card detail UI

Goal (1 sentence)

Show “Game stores near you” on card detail using saved home zip and the nearby stores API.

Files in scope (do not edit anything else)

  • components/card-detail/CardDetailLocalStores.js
  • components/CardDetailView.js
  • lib/use-card-detail.js
  • test/components/CardDetailLocalStores.test.js

Conventions to follow

  • Fetch /api/stores/nearby when purchase tab active (auth required).
  • List: name, address, distance, phone/website links, OSM link — no in-store prices.
  • Empty states: no zip → link to Settings; no stores → gentle copy.
  • Liquid Glass styling consistent with Brief 9 components.

Acceptance criteria

  • Stores render when user has home zip configured
  • Prompt to set zip when missing
  • No scraped in-store pricing shown
  • Component test covers empty + populated states
  • Tests pass
  • No scope expansion

Rationale (≤3 sentences)

Completes Phase 2 user-facing goal on card detail. Depends on pricing UI shell from Brief 9 and backend from Briefs 11–12.