# Membership tiers that unlock price history for buyers

## Context

Price history is now visible to shop owners/editors on product pages (expandable
`<details>` section). The next step: let shops offer membership tiers that grant
buyers access to price history data. This is valuable for wholesalers dealing in
collectibles (pokemon cards, MTG, vintage vinyl, etc.) who need pricing trend
visibility before committing to purchases.

## Membership tiers

- **Monthly** — base price, full price history access
- **Yearly** — suggested ~15% discount over monthly
- **3-Year** — suggested ~30% discount over monthly

Shop owners set their own prices. The platform suggests discount percentages but
doesn't enforce them.

## What members unlock

- Price history table on product pages (same expandable `<details>` UI that
  editors see today)
- Price change notifications (future: email digest of price movements across
  followed shops)
- Historical price charts (future: sparkline or simple line chart)

## Implementation notes

- New model: `Membership` (user, shop, tier, start/end timestamps, payment ref)
- Gate: `request.user.has_membership(shop)` check alongside the existing
  `can_edit_shop` check in `views/product.py` and `views/watch.py`
- Stripe recurring billing integration for membership payments
- Shop settings form section for configuring tier prices and enabling memberships

## Non-goals

- No public price history by default (opt-in via membership)
- No price prediction or "best time to buy" features
- No cross-shop price comparison
