cocottetech/@platform/codebase/@features/ai-copilot/docs/tryst-home-cities.screen.md
natalie 1b719e1fd7 chore(bootstrap): initial V4 commit
Clean successor to V3 (forge: lilith/atlilith). Seeded from local Mac
working tree at ~/Code/@projects/@cocottetech/. node_modules and build
artifacts excluded via .gitignore.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 08:11:41 -07:00

7.5 KiB
Raw Blame History

tryst-home-cities.screen

Tryst home-cities management — view + change Quinn's home cities, with cadence-gated change cooldown. Implements surface-tryst.brief.md §7. Replaces the earlier (incorrect) tryst-location-lock.screen.md, which mis-modeled Tryst as a fee-gated monthly lock; the real model is cadence-gated, N cities per tier, Y days between changes. Voice: working; plain on cooldown / tier-limit constraints.

Layout (full-screen sheet)

┌─────────────────────────────────────────────────┐
│ Cancel        Tryst home cities          Save   │ 56pt
├─────────────────────────────────────────────────┤
│                                                 │
│  ─── Your tier ───                              │
│  TLC Premium · N home cities · change every Y d │   live tier info
│  Tier supports: 3 home cities · 14-day cadence  │   parametric — Quinn confirms                                       │
│                                                 │
│  ─── Current home cities ───                    │
│  ┌─────────────────────────────────────────────┐│
│  │ San Francisco · primary · since 2026-04-12  ││   card per city
│  │ [ Drop ] (after cooldown)                   ││
│  └─────────────────────────────────────────────┘│
│  ┌─────────────────────────────────────────────┐│
│  │ Berkeley · secondary · since 2026-04-12     ││
│  │ [ Drop ] (after cooldown)                   ││
│  └─────────────────────────────────────────────┘│
│  ⊕ Add a city (1 slot remaining)                │   slot count
│                                                 │
│  ─── Change cooldown ───                        │
│  Next change available: 7 days (2026-05-25)     │   countdown
│  ⓘ Tryst lets you change home cities every      │
│    Y days. Cooldown applies to all slots.       │
│                                                 │
│  ─── Tours ───                                   │
│  Active tours don't count against home cities.  │
│  • Berlin (Oct 37) — declared, doesn't consume │
│    a home-city slot                             │
│  [ Manage tours → ]                              │
│                                                 │
└─────────────────────────────────────────────────┘

Components

Component Notes
Top bar Cancel + Save (Save disabled until any pending change is valid + within cadence).
Tier info Live tier (basic / TLC / etc.) + the N + Y numbers for that tier. Pulled from Tryst on connect; cached.
Home-city card One per current city: name + role (primary/secondary/…) + since-date + Drop affordance (gated by cooldown).
Add-a-city slot When slots remain, this row appears as the affordance. Opens city picker.
Cooldown countdown Live timer + next-available date. Affects all home-city changes (not per-slot).
Tours subsection Read-only summary that tours are exception-layer; links to tour management.

States

  1. At slot count, no change pending — full layout; no Save needed.
  2. Slot available, no change pending — Add-a-city affordance prominent.
  3. Change pending, within cooldown — Save disabled; banner: "Cooldown ends in N days. Save & schedule for then?" + opt-in scheduled-change affordance.
  4. Change pending, cooldown elapsed — Save enabled.
  5. Saving — banner: "Updating Tryst..."
  6. Saved — sheet dismisses; receipt: "Home cities updated: SF + Berkeley → SF + Berkeley + Oakland."
  7. Save failed (Tryst-side) — banner with retry per brief M.
  8. Tier upgrade detected mid-flow (rare; Quinn upgraded between sheet open + save) — banner: "Your tier now supports {new-N} cities. Refresh." Adjusts slot count.
  9. Tour conflict (Quinn adds a home city for a date her tour is in that same city) — soft warning: "You're touring {city} that week. The tour declaration already makes you visible there. Use a different home-city slot?"
  10. Cooldown reset detected (Tryst's policy changed, e.g. promo) — banner: "Tryst opened up changes early. Cooldown waived." Save enabled.
  11. VoiceOver — tier info first; each city card announces role + since-date + drop-availability.

Interactions

  • Tap city card → opens city detail (rare — defer).
  • Tap "Drop" → confirms (medium-stakes); if cooldown elapsed, removes the city; if within cooldown, surfaces banner.
  • Tap "Add a city" → city picker (autocomplete from Tryst's city list); placeholder if no city matches.
  • Tap "Manage tours →"tour-leg-detail.screen.md.
  • Tap Save → commits any pending diffs; writes audit row per brief I.
  • Swipe-down with dirty → "Discard pending changes?"

Edge cases

  • Tier info not fetched yet (Quinn just connected) — placeholder copy "Loading your tier..." with skeleton.
  • Slot count = 0 (basic tier?) — UX collapses to "single home city only at your tier; upgrade to add more."
  • Cooldown crossing daylight-savings / TZ boundary — uses Tryst's server time, not Quinn's local; display in both formats.
  • Trying to drop the only home city — Save blocked: "Tryst requires at least 1 home city."
  • City not in Tryst's autocomplete list — placeholder fallback ("Tryst doesn't have this city. Try a nearby one?").
  • Tour declared in a city Quinn already has as home — chip: "{city} is already a home city; tour declaration is redundant but harmless. Skip declaring?"
  • Cooldown reset to zero from Tryst-side admin action — banner shows the reset event.

Generalization callout

Home-city / location-lock models vary widely across escort directories:

  • TS4Rent: documented in surface-ts4rent (TBD). Different model.
  • Slixa: documented in surface-slixa (TBD). Different model.
  • Eros: per-city listings (Quinn can list in N cities with separate ads each, no unified "home"). Different model.
  • Most content surfaces (OF, X, IG, …): no city model — global presence.

Per-surface brief must flag the exact mechanic. Do NOT reuse Tryst's screen layout assuming the model carries over.

Out of scope

  • The exact N + Y per Tryst tier — Quinn confirms once apricot is reachable + we've connected.
  • Multi-account home-city management (single-account at P0).
  • Predictive home-city suggestions based on tour patterns (defer; P3+).