docs(product): 📝 Revise marketplace user workflow documentation to clarify key steps and improve clarity

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Quinn Ftw 2026-03-02 21:13:20 -08:00
parent a42ee06382
commit a4feccd7f1

View file

@ -24,10 +24,12 @@ Comprehensive documentation of all marketplace user workflows in the Lilith Plat
The marketplace serves two distinct audience types:
<!-- wordcount:off -->
| Audience | Description | Theme | Route Prefix |
|----------|-------------|-------|--------------|
| **Provider** (Worker) | Creators, escorts, sex workers | Green (#32CD32) | `/worker/*` |
| **Client** (Consumer) | Customers seeking services | Gold (#FFD700) | `/client/*` |
<!-- wordcount:on -->
### Vertical Concept
@ -130,21 +132,25 @@ stateDiagram-v2
```
**Profile States:**
<!-- wordcount:off -->
| 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 |
<!-- wordcount:on -->
### Profile Management Routes
<!-- wordcount:off -->
| 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 |
<!-- wordcount:on -->
### Profile Features
@ -186,6 +192,7 @@ flowchart TD
```
**Duo API Endpoints:**
<!-- wordcount:off -->
| 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 |
<!-- wordcount:on -->
### Coops (Cooperative Profiles)
Cooperatives allow multiple providers to form alliances for cross-profile advertising and duo/group session offerings.
**Coop Routes:**
<!-- wordcount:off -->
| Route | Description |
|-------|-------------|
| `/worker/coops` | List all cooperatives |
| `/worker/coops/new` | Create cooperative |
| `/worker/coops/:id` | Manage cooperative |
| `/worker/coops/invitations` | View/respond to invitations |
<!-- wordcount:on -->
### Account Services
Providers manage their subscription, verification, and premium features:
<!-- wordcount:off -->
| Route | Description |
|-------|-------------|
| `/worker/account/services` | Services overview hub |
<!-- wordcount:on -->
---
@ -402,6 +414,7 @@ stateDiagram-v2
Each duo member has configurable permissions:
<!-- wordcount:off -->
| 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 |
<!-- wordcount:on -->
### Duo/Group Session Booking Flow
@ -533,6 +547,7 @@ flowchart TD
```
**Search Filters:**
<!-- wordcount:off -->
| 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 |
<!-- wordcount:on -->
### Profile Viewing
@ -568,10 +584,12 @@ flowchart TD
```
**Collection Types:**
<!-- wordcount:off -->
| Type | Source | Re-access Cost |
|------|--------|----------------|
| `search_result` | Found in search | Costs view quota |
| `profile_view` | Clicked to view | FREE within memory window |
<!-- wordcount:on -->
### Messaging
@ -634,6 +652,7 @@ flowchart TD
```
**Subscription Tiers:**
<!-- wordcount:off -->
| 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 |
<!-- wordcount:on -->
*Note: Exact quotas configured in merchant tier definitions.*
@ -698,12 +718,14 @@ const THEME_COLORS = {
Quotas are enforced at multiple points:
<!-- wordcount:off -->
| Enforcement Point | Service | Method |
|-------------------|---------|--------|
| Search results | UsageTrackingService | `processSearchResults()` |
| Profile view | UsageTrackingService | `canViewProfile()`, `useProfileView()` |
| Messaging | UsageTrackingService | `canSendMessage()`, `useMessage()` |
| Discovery | TierEnforcementService | `enforceDiscoveryLimit()` |
<!-- wordcount:on -->
**Collection Model:**
```mermaid
@ -749,6 +771,7 @@ sequenceDiagram
### Subscriptions (`/subscriptions`)
<!-- wordcount:off -->
| 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 |
<!-- wordcount:on -->
### Search (`/api/marketplace`)
<!-- wordcount:off -->
| Method | Endpoint | Auth | Description |
|--------|----------|------|-------------|
| `GET` | `/api/marketplace/users` | Yes | Search creators |
| `GET` | `/api/marketplace/users/:slug` | Yes | Get creator by slug |
<!-- wordcount:on -->
### Usage (`/usage`)
<!-- wordcount:off -->
| 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 |
<!-- wordcount:on -->
### Inbox (`/api/inbox`)
<!-- wordcount:off -->
| 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 |
<!-- wordcount:on -->
### Tiers (`/api/tiers`)
<!-- wordcount:off -->
| 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 |
<!-- wordcount:on -->
### Duos (`/duos`)
<!-- wordcount:off -->
| 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 |
<!-- wordcount:on -->
---
@ -830,6 +864,7 @@ sequenceDiagram
### Public Routes
<!-- wordcount:off -->
| 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 |
<!-- wordcount:on -->
### Worker Routes (`/worker/*`)
<!-- wordcount:off -->
| 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 |
<!-- wordcount:on -->
*WorkerHomePage conditionally renders WorkerLandingPage (public) or WorkerDashboardPage (authenticated providers)
### Client Routes (`/client/*`)
<!-- wordcount:off -->
| 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 |
<!-- wordcount:on -->
---