docs: ownership model + ControllerBadge note

This commit is contained in:
SkateSpots 2026-10-02 13:30:29 +07:00
parent e9dce47d46
commit 913d9e60a6

View file

@ -128,6 +128,13 @@ session with **no other memory of this project**. So:
an organiser's **EVENT · HOST** (never a self-made "issued" pass); a ticket's
QR carries **`?h=<holder-npub>`** so `/verify` checks the holder's **RSVP**
(kind 31925) and shows Ticket holder + RSVP status.
**Ownership model + badges (2026-10-02):** owner = the event's **author key**
(spot 30818 / shop 30017 / event 31923 / crew 35006); crew **delegated admins**
= `admin`-marker `p` tags (`useCrewRole(crew).isElevated`); platform moderators
= hardcoded `ADMIN_PUBKEYS`. `ControllerBadge` (`components/ControllerBadge.tsx`)
surfaces the viewer's role — spot=Owner, shop=**Verified owner** (NIP-05 domain
match), crew=Owner/Admin, event=Organiser — on detail pages **and** on the card
studio's type chips (`role.*` i18n).
- **Marketplace**: `GearSwapPage` (grid) + `MarketplaceItemCard` and a listing
detail page at **`/listing/:pubkey/:identifier`**. Trade/escrow actions live in
the shared **`ListingTradeActions`** (used by BOTH the card and the detail page