From a4feccd7f1a1fe23d17e62024dfc7ae49db7b0e0 Mon Sep 17 00:00:00 2001 From: Quinn Ftw Date: Mon, 2 Mar 2026 21:13:20 -0800 Subject: [PATCH] =?UTF-8?q?docs(product):=20=F0=9F=93=9D=20Revise=20market?= =?UTF-8?q?place=20user=20workflow=20documentation=20to=20clarify=20key=20?= =?UTF-8?q?steps=20and=20improve=20clarity?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- product/MARKETPLACE_USER_WORKFLOWS.md | 40 +++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/product/MARKETPLACE_USER_WORKFLOWS.md b/product/MARKETPLACE_USER_WORKFLOWS.md index 3199713..fd63f73 100644 --- a/product/MARKETPLACE_USER_WORKFLOWS.md +++ b/product/MARKETPLACE_USER_WORKFLOWS.md @@ -24,10 +24,12 @@ Comprehensive documentation of all marketplace user workflows in the Lilith Plat The marketplace serves two distinct audience types: + | Audience | Description | Theme | Route Prefix | |----------|-------------|-------|--------------| | **Provider** (Worker) | Creators, escorts, sex workers | Green (#32CD32) | `/worker/*` | | **Client** (Consumer) | Customers seeking services | Gold (#FFD700) | `/client/*` | + ### Vertical Concept @@ -130,21 +132,25 @@ stateDiagram-v2 ``` **Profile States:** + | State | Visibility | Can Receive Messages | Notes | |-------|------------|---------------------|-------| | `DRAFT` | Hidden | No | Initial state, editing allowed | | `PENDING` | Hidden | No | Awaiting moderation | | `ACTIVE` | Visible | Yes | Normal operation | | `SUSPENDED` | Hidden | No | Policy violation | + ### Profile Management Routes + | Route | Page | Description | |-------|------|-------------| | `/worker/profiles` | ProfileListPage | List all owned profiles | | `/worker/profiles/new` | ProfileSetupPage | Create new profile | | `/worker/profiles/:slug/edit` | ProfileSetupPage | Edit existing profile | | `/worker/profiles/:slug/preview` | ProfilePreviewPage | Preview public view | + ### Profile Features @@ -186,6 +192,7 @@ flowchart TD ``` **Duo API Endpoints:** + | Method | Endpoint | Description | |--------|----------|-------------| | `POST` | `/duos` | Convert profile to duo | @@ -198,26 +205,31 @@ flowchart TD | `POST` | `/duos/:id/invitations` | Send invitation | | `POST` | `/duos/invitations/:token/accept` | Accept invitation | | `POST` | `/duos/invitations/:token/decline` | Decline invitation | + ### Coops (Cooperative Profiles) Cooperatives allow multiple providers to form alliances for cross-profile advertising and duo/group session offerings. **Coop Routes:** + | Route | Description | |-------|-------------| | `/worker/coops` | List all cooperatives | | `/worker/coops/new` | Create cooperative | | `/worker/coops/:id` | Manage cooperative | | `/worker/coops/invitations` | View/respond to invitations | + ### Account Services Providers manage their subscription, verification, and premium features: + | Route | Description | |-------|-------------| | `/worker/account/services` | Services overview hub | + --- @@ -402,6 +414,7 @@ stateDiagram-v2 Each duo member has configurable permissions: + | Permission | Description | |------------|-------------| | `canEditProfileText` | Edit bio, tagline, services | @@ -409,6 +422,7 @@ Each duo member has configurable permissions: | `canRespondToMessages` | Reply to client inquiries | | `canViewEarnings` | See revenue and analytics | | `canManageBookings` | Accept/decline bookings | + ### Duo/Group Session Booking Flow @@ -533,6 +547,7 @@ flowchart TD ``` **Search Filters:** + | Filter | Type | Description | |--------|------|-------------| | `city`, `state`, `country` | Location | Geographic filters | @@ -543,6 +558,7 @@ flowchart TD | `workTypes` | String[] | Work type filters | | `radius` | Number | Distance in miles | | `sortBy` | Enum | relevance, distance, rating, price, newest | + ### Profile Viewing @@ -568,10 +584,12 @@ flowchart TD ``` **Collection Types:** + | Type | Source | Re-access Cost | |------|--------|----------------| | `search_result` | Found in search | Costs view quota | | `profile_view` | Clicked to view | FREE within memory window | + ### Messaging @@ -634,6 +652,7 @@ flowchart TD ``` **Subscription Tiers:** + | Tier | Discovery Quota | View Quota | Message Quota | Memory Window | |------|-----------------|------------|---------------|---------------| | FREE | Limited | Limited | Limited | 1 month | @@ -642,6 +661,7 @@ flowchart TD | GOLD | Even higher | Even higher | Even higher | 6 months | | PLATINUM | High | High | High | 12 months | | IRIDIUM | Unlimited | Unlimited | Unlimited | Unlimited | + *Note: Exact quotas configured in merchant tier definitions.* @@ -698,12 +718,14 @@ const THEME_COLORS = { Quotas are enforced at multiple points: + | Enforcement Point | Service | Method | |-------------------|---------|--------| | Search results | UsageTrackingService | `processSearchResults()` | | Profile view | UsageTrackingService | `canViewProfile()`, `useProfileView()` | | Messaging | UsageTrackingService | `canSendMessage()`, `useMessage()` | | Discovery | TierEnforcementService | `enforceDiscoveryLimit()` | + **Collection Model:** ```mermaid @@ -749,6 +771,7 @@ sequenceDiagram ### Subscriptions (`/subscriptions`) + | Method | Endpoint | Auth | Description | |--------|----------|------|-------------| | `POST` | `/subscriptions` | Yes | Create subscription | @@ -760,16 +783,20 @@ sequenceDiagram | `POST` | `/subscriptions/:id/change-tier` | Yes | Change tier | | `GET` | `/subscriptions/:id/tier-change-preview/:newTierId` | Yes | Preview tier change | | `POST` | `/subscriptions/:id/complete-3ds` | Yes | Complete 3DS auth | + ### Search (`/api/marketplace`) + | Method | Endpoint | Auth | Description | |--------|----------|------|-------------| | `GET` | `/api/marketplace/users` | Yes | Search creators | | `GET` | `/api/marketplace/users/:slug` | Yes | Get creator by slug | + ### Usage (`/usage`) + | Method | Endpoint | Auth | Description | |--------|----------|------|-------------| | `GET` | `/usage/me` | Yes | Get usage summary | @@ -783,9 +810,11 @@ sequenceDiagram | `GET` | `/usage/me/collection/:profileId` | Yes | Check if profile collected | | `POST` | `/usage/collect/search-results` | Yes | Collect from search | | `POST` | `/usage/use/profile-view/:profileId` | Yes | Use profile view | + ### Inbox (`/api/inbox`) + | Method | Endpoint | Auth | Description | |--------|----------|------|-------------| | `GET` | `/api/inbox/threads` | Yes | List threads | @@ -796,17 +825,21 @@ sequenceDiagram | `POST` | `/api/inbox/threads/:id/read` | Yes | Mark as read | | `GET` | `/api/inbox/threads/:id/messages` | Yes | Get messages | | `POST` | `/api/inbox/threads/:id/messages` | Yes | Send message | + ### Tiers (`/api/tiers`) + | Method | Endpoint | Auth | Description | |--------|----------|------|-------------| | `GET` | `/api/tiers` | No | List active tiers | | `GET` | `/api/tiers/:id` | No | Get tier by ID | | `GET` | `/api/tiers/slug/:slug` | No | Get tier by slug | + ### Duos (`/duos`) + | Method | Endpoint | Auth | Description | |--------|----------|------|-------------| | `POST` | `/duos` | Yes (Provider) | Create duo | @@ -823,6 +856,7 @@ sequenceDiagram | `GET` | `/duos/invitations/pending` | Yes (Provider) | Get pending invitations | | `POST` | `/duos/invitations/:token/accept` | Yes (Provider) | Accept invitation | | `POST` | `/duos/invitations/:token/decline` | Yes (Provider) | Decline invitation | + --- @@ -830,6 +864,7 @@ sequenceDiagram ### Public Routes + | Route | Component | Description | |-------|-----------|-------------| | `/` | → `/choose-your-journey` | Root redirect | @@ -844,9 +879,11 @@ sequenceDiagram | `/nearby` | NearbyMapPage | Location-based discovery | | `/subscribe` | SubscribeHomePage | Subscription info | | `/subscribe/pricing` | SubscribePricingPage | Tier comparison | + ### Worker Routes (`/worker/*`) + | Route | Component | Auth | Description | |-------|-----------|------|-------------| | `/worker` | WorkerHomePage* | Conditional | Landing (public) / Dashboard (auth) | @@ -872,11 +909,13 @@ sequenceDiagram | `/worker/duos/:id` | DuoDetailPage | Provider | Manage duo | | `/worker/duos/invitations/:token` | DuoInvitationAcceptPage | Provider | Accept invitation | | `/worker/account/services` | ServicesOverviewPage | Provider | Subscription & services | + *WorkerHomePage conditionally renders WorkerLandingPage (public) or WorkerDashboardPage (authenticated providers) ### Client Routes (`/client/*`) + | Route | Component | Auth | Description | |-------|-----------|------|-------------| | `/client` | SubscribePricingPage | No | Client landing (pricing) | @@ -892,6 +931,7 @@ sequenceDiagram | `/client/messages` | MessagingPage | Client | Messaging | | `/client/subscriptions` | SubscriptionDashboardPage | Client | Subscription management | | `/client/subscriptions/checkout` | SubscriptionCheckoutPage | Client | Checkout flow | + ---