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:
parent
a42ee06382
commit
a4feccd7f1
1 changed files with 40 additions and 0 deletions
|
|
@ -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 -->
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue