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>
6.6 KiB
6.6 KiB
tryst-profile-editor.screen
The structured profile editor for Tryst — about-me + rates + services + hours + tour cities + photos slot picker. Implements surface-tryst.brief.md §3, §11. Extends brief H §H2 diff-card pattern for tabular fields. Voice: working.
Layout (full-screen, sectioned and scrollable)
┌─────────────────────────────────────────────────┐
│ Cancel Edit Tryst profile Preview │ 56pt
├─────────────────────────────────────────────────┤
│ │
│ ─── About-me ─── │
│ ╭───────────────────────────────────────╮ │
│ │ Independent escort based in the Bay │ │
│ │ Area. Trans, femme, real, no rush. │ │
│ ╰───────────────────────────────────────╯ │
│ 432 / 500 ✓ no banned phrases per K2 │
│ │
│ ─── Rates ─── │
│ Incall 1h: [ $400 ] 2h: [ $700 ] │
│ Outcall 1h: [ $500 ] 2h: [ $850 ] │
│ Overnight: [ $2,500 ] │
│ Currency: [ USD ▼ ] │
│ │
│ ─── Services ─── │
│ [☑ GFE] [☑ Companionship] [☐ Couples] │
│ [☑ Tours] [☐ Overnight] [☑ Multi-hour] │
│ (chips from Tryst-side taxonomy) │
│ │
│ ─── Hours ─── │
│ Mon: [ 10:00–02:00 ] Tue: [ closed ] │
│ Wed: [ 12:00–22:00 ] … │
│ │
│ ─── Tour cities (next 14d) ─── │
│ • Berlin (Oct 3–7) · pending publish │
│ [ Edit tours → ] │ routes to H §H3
│ │
│ ─── Photos ─── │
│ [ Manage photos → ] │ routes to tryst-photo-manager
│ │
└─────────────────────────────────────────────────┘
Components
| Component | Notes |
|---|---|
| About-me | Free-text with char count + K2 phrase-blocklist check (per brief K §K2). Tabular fields below. |
| Rates | Per-tier numeric inputs with currency picker. Validates positive integers. |
| Services | Multi-select chips from Tryst's fixed taxonomy. |
| Hours | Per-weekday time-range pickers; "closed" toggle per day. |
| Tour cities | Read-only summary; edits route to H §H3 multi-surface fan-out. |
| Photos | Read-only count; edits route to tryst-photo-manager.screen.md. |
States
- Loaded (no edits) — current values shown; Preview disabled, Cancel = Done.
- Editing — at least one field changed; Preview enabled (route to tryst-profile-preview.screen.md); Cancel warns "Discard?"
- K2 phrase hit — yellow chip inline: "Your about-me contains 'real name' (per your blocklist). Edit or override?"
- Validation error — rate ≤ 0, time-range invalid, etc. Inline.
- Saving (after Preview → Approve) — banner: "Pushing to Tryst..."
- Save success — sheet dismisses; receipt: "Tryst profile updated. Live in ~2 minutes."
- Save failed — per brief M: banner with retry.
- Conflict (concurrent edit from another device) — per M §M7 3-way diff.
- Tryst-side rejection (photo / phrase / format) — inline error on the affected field.
- VoiceOver — sections read in declared order; rates announce as table rows.
Interactions
- Tap any field → opens its editor.
- Tap "Preview" → tryst-profile-preview.screen.md with the proposed state.
- Tap "Edit tours →" → tour-leg-detail.screen.md or H §H3 compose.
- Tap "Manage photos →" → tryst-photo-manager.screen.md.
- Swipe-down → "Discard?" if dirty.
Edge cases
- Tryst's taxonomy changes (new service added / removed) — chip set re-pulled at sheet-open; deprecated chips greyed.
- Currency mismatch (Quinn's setting says USD but Tryst's market is EUR) — inline warning.
- K2 blocklist phrase appearing only after edit — chip pulses to draw attention before save.
- Multi-tier rate inconsistency (overnight cheaper than 2h) — inline warning: "Your overnight is less than 2h. Confirm?"
- Profile too short (about-me < 50 chars) — Tryst-side rejection; warn before save.
Generalization callout
Other directories' profile editors are structurally similar but with different field sets:
- TS4Rent: rates table similar; adds Sumsub-verified-name handling.
- Slixa: simpler rates (no incall/outcall split).
- Eros: city-tier rates (per neighborhood).
- OnlyFans: subscription tiers + PPV pricing (totally different schema; profile-editor variant is much more involved).
Per-surface brief documents the schema; this screen pattern generalizes to any tabular profile editor.
Related
- surface-tryst.brief.md §3, §11 — parent.
- tryst-profile-preview.screen.md — preview/approve target.
- tryst-photo-manager.screen.md — photos sub-editor.
- Brief H §H2 — diff-card pattern parent.
- Brief K §K2 — phrase blocklist enforcement.
- Brief M §M7 — conflict resolution.
- Brief I — every save = audit row.
Out of scope
- Photo upload UX (separate screen).
- Tour compose (H §H3 / tour-leg-detail).
- A/B-testing variants of profile copy (P3+).