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
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>
47 lines
1.5 KiB
Markdown
47 lines
1.5 KiB
Markdown
---
|
||
convoy: pricing-online-local
|
||
brief_number: 13
|
||
depends_on: [9, 11, 12]
|
||
recommended_model: composer-2.5
|
||
model_tier: standard
|
||
files:
|
||
- components/card-detail/CardDetailLocalStores.js
|
||
- components/CardDetailView.js
|
||
- lib/use-card-detail.js
|
||
- test/components/CardDetailLocalStores.test.js
|
||
cross_brief_commitments:
|
||
- brief: 9
|
||
description: |
|
||
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.
|