platform-codebase/migrations/MARKETPLACE_MIGRATION_MANIFEST.md
Lilith aaafe2958c chore(api): 🔧 Update TypeScript files in API module (16 files)
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-02-01 20:38:25 -08:00

26 KiB

Marketplace Migration Manifest

Source: ~/Code/@applications/@egirl/egirl-platform/@apps/marketplace/src/ Destination: ~/Code/@projects/@lilith/lilith-platform/codebase/features/marketplace/frontend-public/src/

Created: 2024-12-30 Status: Planning


1. Source-to-Destination File Mapping

Core Application Files

Source File Destination File Priority Action
main.tsx main.tsx P0 MODIFY
MarketplaceApp.tsx app/MarketplaceApp.tsx P0 MODIFY
App.tsx app/App.tsx P0 MODIFY
routes.tsx app/routes.tsx P0 MODIFY
index.ts index.ts P1 COPY
styled.d.ts styled.d.ts P1 COPY
vite-env.d.ts vite-env.d.ts P0 EXISTS

Layout Files

Source File Destination File Priority Action
layouts/MarketplaceLayout.tsx layouts/MarketplaceLayout.tsx P0 MODIFY

Component Files (Root)

Source File Destination File Priority Action
components/MarketplaceHeader.tsx components/MarketplaceHeader.tsx P0 MODIFY
components/index.ts components/index.ts P1 COPY

Discovery Feature (Browse Creators)

Source File Destination File Priority Action
features/discovery/index.ts features/discovery/index.ts P0 COPY
features/discovery/types/index.ts features/discovery/types/index.ts P0 COPY
features/discovery/components/BrowseCreatorsPage.tsx features/discovery/pages/BrowseCreatorsPage.tsx P0 MODIFY
features/discovery/components/CreatorCard.tsx features/discovery/components/CreatorCard.tsx P0 COPY
features/discovery/components/CreatorCardSkeleton.tsx features/discovery/components/CreatorCardSkeleton.tsx P1 COPY
features/discovery/components/SearchBar.tsx features/discovery/components/SearchBar.tsx P1 COPY
features/discovery/components/MapView.tsx features/discovery/components/MapView.tsx P2 COPY
features/discovery/components/MapCreatorPopup.tsx features/discovery/components/MapCreatorPopup.tsx P2 COPY
features/discovery/components/SearchResultsPage.tsx features/discovery/pages/SearchResultsPage.tsx P1 COPY
features/discovery/components/CategoriesPage.tsx features/discovery/pages/CategoriesPage.tsx P1 COPY
features/discovery/components/NeighborhoodsPage.tsx features/discovery/pages/NeighborhoodsPage.tsx P2 COPY
features/discovery/components/NeighborhoodDetailPage.tsx features/discovery/pages/NeighborhoodDetailPage.tsx P2 COPY
features/discovery/components/NeighborhoodCard.tsx features/discovery/components/NeighborhoodCard.tsx P2 COPY
features/discovery/hooks/useCreatorSearch.ts features/discovery/hooks/useCreatorSearch.ts P0 MODIFY
features/discovery/hooks/useNeighborhoods.ts features/discovery/hooks/useNeighborhoods.ts P2 COPY
features/discovery/hooks/useLocationSearch.ts features/discovery/hooks/useLocationSearch.ts P2 COPY
features/discovery/hooks/useMapRegions.ts features/discovery/hooks/useMapRegions.ts P2 COPY
features/discovery/hooks/useAutoExpandFilters.ts features/discovery/hooks/useAutoExpandFilters.ts P2 COPY
features/discovery/hooks/useFilterOrder.ts features/discovery/hooks/useFilterOrder.ts P2 COPY
features/discovery/utils/filterConstants.ts features/discovery/utils/filterConstants.ts P1 COPY

Discovery Filters

Source File Destination File Priority Action
features/discovery/components/filters/index.ts features/discovery/components/filters/index.ts P0 COPY
features/discovery/components/filters/FilterSidebar.tsx features/discovery/components/filters/FilterSidebar.tsx P0 COPY
features/discovery/components/filters/MobileFilterDrawer.tsx features/discovery/components/filters/MobileFilterDrawer.tsx P0 COPY
features/discovery/components/filters/FilterSection.tsx features/discovery/components/filters/FilterSection.tsx P1 COPY
features/discovery/components/filters/FilterInputs.tsx features/discovery/components/filters/FilterInputs.tsx P1 COPY
features/discovery/components/filters/SimpleFilters.tsx features/discovery/components/filters/SimpleFilters.tsx P1 COPY
features/discovery/components/filters/DraggableFilterSection.tsx features/discovery/components/filters/DraggableFilterSection.tsx P2 COPY
features/discovery/components/filters/LocationFilter.tsx features/discovery/components/filters/LocationFilter.tsx P1 COPY
features/discovery/components/filters/PricingFilter.tsx features/discovery/components/filters/PricingFilter.tsx P1 COPY
features/discovery/components/filters/PhysicalAttributesFilter.tsx features/discovery/components/filters/PhysicalAttributesFilter.tsx P2 COPY
features/discovery/components/filters/ServicesFilter.tsx features/discovery/components/filters/ServicesFilter.tsx P2 COPY

Filter Content Components

Source File Destination File Priority Action
features/discovery/components/filters/content/index.ts features/discovery/components/filters/content/index.ts P1 COPY
features/discovery/components/filters/content/LocationFilterContent.tsx features/discovery/components/filters/content/LocationFilterContent.tsx P1 COPY
features/discovery/components/filters/content/PricingFilterContent.tsx features/discovery/components/filters/content/PricingFilterContent.tsx P1 COPY
features/discovery/components/filters/content/ServicesFilterContent.tsx features/discovery/components/filters/content/ServicesFilterContent.tsx P1 COPY
features/discovery/components/filters/content/AvailabilityFilterContent.tsx features/discovery/components/filters/content/AvailabilityFilterContent.tsx P2 COPY
features/discovery/components/filters/content/VerificationFilterContent.tsx features/discovery/components/filters/content/VerificationFilterContent.tsx P2 COPY
features/discovery/components/filters/content/StatusFilterContent.tsx features/discovery/components/filters/content/StatusFilterContent.tsx P2 COPY
features/discovery/components/filters/content/BodyFilterContent.tsx features/discovery/components/filters/content/BodyFilterContent.tsx P2 COPY
features/discovery/components/filters/content/AppearanceFilterContent.tsx features/discovery/components/filters/content/AppearanceFilterContent.tsx P2 COPY
features/discovery/components/filters/content/PhysicalAttributesFilterContent.tsx features/discovery/components/filters/content/PhysicalAttributesFilterContent.tsx P2 COPY
features/discovery/components/filters/content/LanguageFilterContent.tsx features/discovery/components/filters/content/LanguageFilterContent.tsx P2 COPY
features/discovery/components/filters/content/PaymentFilterContent.tsx features/discovery/components/filters/content/PaymentFilterContent.tsx P2 COPY
features/discovery/components/filters/content/AgeFilterContent.tsx features/discovery/components/filters/content/AgeFilterContent.tsx P2 COPY
features/discovery/components/filters/content/RatingFilterContent.tsx features/discovery/components/filters/content/RatingFilterContent.tsx P2 COPY
features/discovery/components/filters/content/ContentFilterContent.tsx features/discovery/components/filters/content/ContentFilterContent.tsx P2 COPY
features/discovery/components/filters/content/BodyArtFilterContent.tsx features/discovery/components/filters/content/BodyArtFilterContent.tsx P2 COPY

Profile Feature

Source File Destination File Priority Action
features/profile/index.ts features/profile/index.ts P0 COPY
features/profile/pages/CreatorProfilePage.tsx features/profile/pages/CreatorProfilePage.tsx P0 MODIFY
features/profile/pages/UnifiedProfileEditor.tsx features/profile/pages/UnifiedProfileEditor.tsx P2 COPY
features/profile/pages/CreatorProfileEditorPage.tsx features/profile/pages/CreatorProfileEditorPage.tsx P2 COPY
features/profile/pages/ProfileEditorDemoPage.tsx features/profile/pages/ProfileEditorDemoPage.tsx P3 SKIP
features/profile/components/index.ts features/profile/components/index.ts P1 COPY
features/profile/components/OnboardingBanner.tsx features/profile/components/OnboardingBanner.tsx P2 COPY

Profile Editor Components

Source File Destination File Priority Action
features/profile/components/editor/index.ts features/profile/components/editor/index.ts P2 COPY
features/profile/components/editor/PhysicalAttributesEditor.tsx features/profile/components/editor/PhysicalAttributesEditor.tsx P2 COPY
features/profile/components/editor/ServicesEditor.tsx features/profile/components/editor/ServicesEditor.tsx P2 COPY
features/profile/components/editor/PricingEditor.tsx features/profile/components/editor/PricingEditor.tsx P2 COPY
features/profile/components/editor/AvailabilityEditor.tsx features/profile/components/editor/AvailabilityEditor.tsx P2 COPY
features/profile/components/editor/AppearanceEditor.tsx features/profile/components/editor/AppearanceEditor.tsx P2 COPY
features/profile/components/editor/LifestyleEditor.tsx features/profile/components/editor/LifestyleEditor.tsx P2 COPY
features/profile/components/editor/PersonalityEditor.tsx features/profile/components/editor/PersonalityEditor.tsx P2 COPY
features/profile/components/editor/ProfessionalEditor.tsx features/profile/components/editor/ProfessionalEditor.tsx P2 COPY
features/profile/components/editor/WorkStyleEditor.tsx features/profile/components/editor/WorkStyleEditor.tsx P2 COPY
features/profile/components/editor/TattoosPiercingsEditor.tsx features/profile/components/editor/TattoosPiercingsEditor.tsx P2 COPY
features/profile/components/editor/BodyDetailsEditor.tsx features/profile/components/editor/BodyDetailsEditor.tsx P2 COPY
features/profile/components/shared/ProfileFormComponents.tsx features/profile/components/shared/ProfileFormComponents.tsx P2 COPY

Shared Files

Source File Destination File Priority Action
shared/api/client.ts services/api/client.ts P0 MODIFY
shared/providers/ThemeProvider.tsx providers/ThemeProvider.tsx P1 COPY
shared/providers/LocationProvider.tsx providers/LocationProvider.tsx P2 COPY
shared/hooks/useGeolocation.ts hooks/useGeolocation.ts P2 COPY
shared/hooks/useReverseGeocode.ts hooks/useReverseGeocode.ts P2 COPY
shared/hooks/useMarkdownContent.ts hooks/useMarkdownContent.ts P2 COPY
shared/hooks/useJsonContent.ts hooks/useJsonContent.ts P2 COPY
shared/hooks/useCreatorDeployments.ts hooks/useCreatorDeployments.ts P2 COPY
shared/components/LazyImage.tsx components/LazyImage.tsx P1 COPY
shared/components/ProtectedRoute.tsx components/ProtectedRoute.tsx P2 COPY
shared/components/index.ts components/shared/index.ts P2 COPY
shared/context/MockUserContext.tsx contexts/MockUserContext.tsx P3 SKIP
shared/context/index.ts contexts/index.ts P3 SKIP
shared/styles/theme.ts styles/theme.ts P1 MODIFY
shared/styles/theme-builder.ts styles/theme-builder.ts P2 COPY
shared/types/app-config.ts types/app-config.ts P1 COPY
shared/ui/StarRating.tsx components/ui/StarRating.tsx P2 COPY
shared/ui/button/Button.tsx components/ui/Button.tsx P2 COPY
shared/ui/input/Input.tsx components/ui/Input.tsx P2 COPY
shared/ui/textarea/Textarea.tsx components/ui/Textarea.tsx P2 COPY
shared/ui/container/Container.tsx components/ui/Container.tsx P2 COPY
shared/ui/section/Section.tsx components/ui/Section.tsx P2 COPY
shared/ui/seo/SEO.tsx components/SEO.tsx P2 COPY
shared/utils/markdown.ts utils/markdown.ts P2 COPY
shared/utils/content-loader.ts utils/content-loader.ts P2 COPY

2. Directory Structure Mapping

Source Structure (egirl)

src/
├── App.tsx                    # Standalone entry (analytics)
├── MarketplaceApp.tsx         # Platform embedded entry
├── main.tsx                   # Vite entry point
├── routes.tsx                 # Route definitions
├── index.ts                   # Exports
├── styled.d.ts                # Styled-components types
├── vite-env.d.ts              # Vite types
├── layouts/
│   └── MarketplaceLayout.tsx
├── components/
│   ├── MarketplaceHeader.tsx
│   └── index.ts
├── features/
│   ├── discovery/
│   ├── profile/
│   ├── inbox/
│   ├── booking/
│   ├── admin/
│   ├── clients/
│   ├── onboarding/
│   ├── landing/
│   ├── messaging/
│   ├── provider-dashboard/
│   ├── provider-seo/
│   └── seo/
├── shared/
│   ├── api/
│   ├── components/
│   ├── context/
│   ├── dev/
│   ├── hooks/
│   ├── providers/
│   ├── styles/
│   ├── types/
│   ├── ui/
│   └── utils/
├── pages/
│   └── HomePage.tsx
├── config/
│   └── profiles/
├── mocks/
│   ├── handlers/
│   └── data/
└── test/
    └── setup.ts

Target Structure (lilith)

src/
├── main.tsx                   # Vite entry point
├── index.css                  # Global styles
├── vite-env.d.ts              # Vite types
├── app/
│   ├── App.tsx                # Standalone entry
│   ├── MarketplaceApp.tsx     # Platform embedded entry
│   └── routes.tsx             # Route definitions
├── layouts/
│   └── MarketplaceLayout.tsx
├── components/
│   ├── MarketplaceHeader.tsx
│   ├── LazyImage.tsx
│   ├── ProtectedRoute.tsx
│   ├── SEO.tsx
│   ├── ui/
│   │   ├── Button.tsx
│   │   ├── Input.tsx
│   │   ├── Textarea.tsx
│   │   ├── Container.tsx
│   │   ├── Section.tsx
│   │   └── StarRating.tsx
│   └── shared/
│       └── index.ts
├── features/
│   ├── discovery/
│   │   ├── index.ts
│   │   ├── types/
│   │   │   └── index.ts
│   │   ├── pages/
│   │   │   ├── BrowseCreatorsPage.tsx
│   │   │   ├── SearchResultsPage.tsx
│   │   │   ├── CategoriesPage.tsx
│   │   │   ├── NeighborhoodsPage.tsx
│   │   │   └── NeighborhoodDetailPage.tsx
│   │   ├── components/
│   │   │   ├── CreatorCard.tsx
│   │   │   ├── CreatorCardSkeleton.tsx
│   │   │   ├── SearchBar.tsx
│   │   │   ├── MapView.tsx
│   │   │   ├── MapCreatorPopup.tsx
│   │   │   ├── NeighborhoodCard.tsx
│   │   │   └── filters/
│   │   │       ├── index.ts
│   │   │       ├── FilterSidebar.tsx
│   │   │       ├── MobileFilterDrawer.tsx
│   │   │       ├── FilterSection.tsx
│   │   │       ├── FilterInputs.tsx
│   │   │       └── content/
│   │   │           └── *.tsx
│   │   ├── hooks/
│   │   │   ├── useCreatorSearch.ts
│   │   │   ├── useNeighborhoods.ts
│   │   │   └── useLocationSearch.ts
│   │   └── utils/
│   │       └── filterConstants.ts
│   ├── profile/
│   │   ├── index.ts
│   │   ├── pages/
│   │   │   ├── ProfilePage.tsx          # Placeholder to replace
│   │   │   ├── CreatorProfilePage.tsx
│   │   │   └── UnifiedProfileEditor.tsx
│   │   └── components/
│   │       ├── index.ts
│   │       ├── OnboardingBanner.tsx
│   │       ├── editor/
│   │       │   └── *.tsx
│   │       └── shared/
│   │           └── ProfileFormComponents.tsx
│   ├── inbox/                # Future migration
│   ├── booking/              # Future migration
│   ├── messaging/            # Future migration
│   └── landing/              # Future migration
├── providers/
│   ├── ThemeProvider.tsx
│   └── LocationProvider.tsx
├── hooks/
│   ├── useDeploymentConfig.ts    # Already exists
│   ├── useGeolocation.ts
│   └── useReverseGeocode.ts
├── services/
│   └── api/
│       └── client.ts
├── store/                    # Placeholder
├── utils/
│   ├── markdown.ts
│   └── content-loader.ts
├── styles/
│   ├── theme.ts
│   └── theme-builder.ts
└── types/
    └── app-config.ts

3. Files to Copy As-Is

These files require no modifications and can be copied directly:

Discovery Components

  • features/discovery/components/CreatorCard.tsx
  • features/discovery/components/CreatorCardSkeleton.tsx
  • features/discovery/components/SearchBar.tsx
  • features/discovery/components/MapView.tsx
  • features/discovery/components/MapCreatorPopup.tsx
  • features/discovery/components/NeighborhoodCard.tsx
  • features/discovery/types/index.ts
  • features/discovery/utils/filterConstants.ts
  • All files in features/discovery/components/filters/

Shared Components

  • shared/components/LazyImage.tsx
  • shared/ui/StarRating.tsx
  • shared/ui/button/Button.tsx
  • shared/ui/input/Input.tsx
  • shared/ui/textarea/Textarea.tsx
  • shared/ui/container/Container.tsx
  • shared/ui/section/Section.tsx
  • shared/utils/markdown.ts
  • shared/utils/content-loader.ts
  • shared/types/app-config.ts

Hooks

  • shared/hooks/useGeolocation.ts
  • shared/hooks/useReverseGeocode.ts
  • shared/hooks/useMarkdownContent.ts
  • shared/hooks/useJsonContent.ts

4. Files Needing Modifications

Critical Modifications (P0)

main.tsx

Changes Required:

  • Update import path: ./MarketplaceApp -> ./app/MarketplaceApp
  • Replace @lilith/react-hooks with local hook if package not available
  • Remove or stub MSW mocking for initial migration

MarketplaceApp.tsx -> app/MarketplaceApp.tsx

Changes Required:

  • Update import: ./routes -> ./routes
  • Replace @lilith/theme-provider with local or shared package
  • Replace @lilith/auth-provider with lilith auth package
  • Remove MSW initialization (add later if needed)
  • Update SSO URL environment variable

App.tsx -> app/App.tsx

Changes Required:

  • Update import: ./routes -> ./routes
  • Replace @lilith/analytics-client/react with lilith analytics package
  • Update API base URL environment variable

routes.tsx -> app/routes.tsx

Changes Required:

  • Update all import paths to new directory structure
  • Remove routes for features not being migrated initially:
    • Admin routes
    • Onboarding wizard routes
    • Provider SEO routes
    • Client routes (browse clients)
    • Provider dashboard routes
  • Update paths from features/X/components/Y to features/X/pages/Y
  • Remove references to @lilith/friends package (stub or exclude)

layouts/MarketplaceLayout.tsx

Changes Required:

  • Update import: ../components/MarketplaceHeader -> ../components/MarketplaceHeader
  • Update theme color references if using different theme structure

components/MarketplaceHeader.tsx

Changes Required:

  • Rebrand from "MyE-Girl" to "Lilith" branding
  • Update colors from gold accent (#d4af37) to Lilith brand colors
  • Update navigation links for migrated routes only
  • Update tagline text

features/discovery/hooks/useCreatorSearch.ts

Changes Required:

  • Update API endpoint paths if different
  • Update environment variable names
  • Ensure API response mapping matches lilith backend

features/profile/pages/CreatorProfilePage.tsx

Changes Required:

  • Remove or stub @lilith/friends imports (FriendButton, TrustBadge)
  • Remove or stub ../../booking imports
  • Update to use lilith auth package: @lilith/auth-provider

shared/api/client.ts -> services/api/client.ts

Changes Required:

  • Update @lilith/api-client import to lilith package path
  • Update environment variable names
  • Update default API URL

shared/styles/theme.ts -> styles/theme.ts

Changes Required:

  • Update to Lilith brand colors
  • Align with lilith design system if different

5. New Files to Create

Required New Files

File Purpose
features/discovery/pages/DiscoveryPage.tsx Wrapper/redirect to BrowseCreatorsPage (if needed)
providers/index.ts Export all providers
hooks/index.ts Export all hooks
components/index.ts Export all shared components
types/index.ts Export all types

Stub Files (for removed dependencies)

File Purpose
stubs/friends.ts Stub for @lilith/friends package
stubs/booking.ts Stub for booking feature dependencies

6. Files NOT to Migrate

Deprecated/Unused

File Reason
features/profile/pages/ProfileEditorDemoPage.tsx Demo-only, not for production
shared/context/MockUserContext.tsx Dev/mock tooling
shared/dev/* Dev tooling (DevToolbar, ConsoleTestHelper, DevConsoleMonitor)
mocks/* MSW mocks - migrate later if needed
test/* Test setup - create fresh for lilith

Future Migration (Not P0)

Directory Reason
features/admin/* Admin portal - separate migration
features/booking/* Booking system - requires backend
features/inbox/* Messaging - requires backend
features/clients/* Client features - phase 2
features/onboarding/* Onboarding wizard - phase 2
features/provider-dashboard/* Provider dashboard - phase 2
features/provider-seo/* SEO pages - phase 2
features/seo/* Dynamic SEO - phase 2
features/landing/* Landing page - phase 2
features/messaging/* Real-time messaging - phase 2
config/profiles/* Profile config - phase 2
pages/HomePage.tsx Use discovery page as home

7. Migration Order

Phase 1: Minimal Working Marketplace (MVP)

  1. Core Setup

    • main.tsx (modify)
    • app/App.tsx (modify)
    • app/MarketplaceApp.tsx (modify)
    • app/routes.tsx (modify - minimal routes)
    • layouts/MarketplaceLayout.tsx (modify)
    • components/MarketplaceHeader.tsx (modify - rebrand)
  2. Discovery Feature (Browse)

    • features/discovery/types/index.ts
    • features/discovery/hooks/useCreatorSearch.ts (modify)
    • features/discovery/pages/BrowseCreatorsPage.tsx (from components/)
    • features/discovery/components/CreatorCard.tsx
    • features/discovery/components/CreatorCardSkeleton.tsx
    • features/discovery/components/filters/FilterSidebar.tsx
    • features/discovery/components/filters/MobileFilterDrawer.tsx
    • features/discovery/index.ts
  3. Profile Feature (View)

    • features/profile/pages/CreatorProfilePage.tsx (modify - stub deps)
    • features/profile/index.ts
  4. Shared Infrastructure

    • services/api/client.ts (modify)
    • styles/theme.ts (modify)
    • components/LazyImage.tsx

Phase 2: Enhanced Discovery

  • All filter content components
  • Map view components
  • Neighborhood pages
  • Categories page
  • Search results page

Phase 3: Profile Editing

  • Profile editor components
  • Editor sub-components

Phase 4: Remaining Features

  • Inbox/Messaging
  • Booking
  • Onboarding
  • Admin

8. Dependency Mapping

Package Dependencies to Verify/Install

egirl Package lilith Equivalent Status
@lilith/theme-provider Check @packages VERIFY
@lilith/auth-provider Check @packages VERIFY
@lilith/api-client Check @packages VERIFY
@lilith/analytics-client Check @packages VERIFY
@lilith/react-hooks Check @packages VERIFY
@lilith/friends NOT MIGRATED STUB
styled-components Install REQUIRED
@tanstack/react-query Install REQUIRED
react-router-dom Install REQUIRED

9. Branding Changes Required

Element egirl Value lilith Value
Logo text "MyE-Girl" "Lilith"
Tagline "Premium Connections" TBD
Primary accent #d4af37 (gold) TBD (brand color)
Secondary #2c2c2c (dark) TBD
Gradient gold gradient TBD

10. Testing Checklist

After migration, verify:

  • App compiles without errors
  • Routes load correctly
  • BrowseCreatorsPage renders
  • CreatorCard displays mock data
  • Filter sidebar opens/closes
  • Mobile filter drawer works
  • CreatorProfilePage loads
  • Navigation between pages works
  • Theme colors applied correctly
  • Responsive breakpoints work
  • No console errors

Notes

  • All paths in this manifest are relative to the respective src/ directories
  • Priority levels: P0 (critical), P1 (important), P2 (nice-to-have), P3 (skip)
  • Action types: COPY (as-is), MODIFY (needs changes), EXISTS (already present), SKIP (don't migrate)
  • This manifest covers the frontend only; backend API migration is separate