137 lines
3.9 KiB
TypeScript
137 lines
3.9 KiB
TypeScript
/**
|
|
* Mock Profile Data
|
|
*
|
|
* Profile-owned mock data, decoupled from marketplace provider data.
|
|
* Contains profile display information for the profile service.
|
|
*/
|
|
|
|
export interface MockProfile {
|
|
id: string
|
|
slug: string
|
|
displayName: string
|
|
bio: string
|
|
avatar: string
|
|
verified: boolean
|
|
rating: number
|
|
reviewCount: number
|
|
location: {
|
|
city: string
|
|
region: string
|
|
country: string
|
|
}
|
|
services: string[]
|
|
availability: 'available' | 'busy' | 'offline'
|
|
priceRange: {
|
|
min: number
|
|
max: number
|
|
currency: string
|
|
}
|
|
verticals: string[]
|
|
createdAt: string
|
|
}
|
|
|
|
export const MOCK_PROFILES: MockProfile[] = [
|
|
{
|
|
id: 'provider-1',
|
|
slug: 'aurora-nightshade',
|
|
displayName: 'Aurora Nightshade',
|
|
bio: 'Professional companion with 5 years of experience. Specializing in upscale dinner dates and travel companionship.',
|
|
avatar: '',
|
|
verified: true,
|
|
rating: 4.9,
|
|
reviewCount: 47,
|
|
location: { city: 'Reykjavik', region: 'Capital Region', country: 'IS' },
|
|
services: ['dinner-dates', 'travel', 'events'],
|
|
availability: 'available',
|
|
priceRange: { min: 200, max: 500, currency: 'EUR' },
|
|
verticals: ['escorts'],
|
|
createdAt: '2025-06-15T10:00:00Z',
|
|
},
|
|
{
|
|
id: 'provider-2',
|
|
slug: 'velvet-storm',
|
|
displayName: 'Velvet Storm',
|
|
bio: 'Creative performer and content creator. Live shows and custom content available.',
|
|
avatar: '',
|
|
verified: true,
|
|
rating: 4.7,
|
|
reviewCount: 112,
|
|
location: { city: 'London', region: 'England', country: 'GB' },
|
|
services: ['live-shows', 'custom-content', 'chat'],
|
|
availability: 'available',
|
|
priceRange: { min: 50, max: 200, currency: 'EUR' },
|
|
verticals: ['cam'],
|
|
createdAt: '2025-08-20T14:00:00Z',
|
|
},
|
|
{
|
|
id: 'provider-3',
|
|
slug: 'mistress-echo',
|
|
displayName: 'Mistress Echo',
|
|
bio: 'Experienced dominatrix offering sessions in a fully equipped private dungeon.',
|
|
avatar: '',
|
|
verified: true,
|
|
rating: 4.8,
|
|
reviewCount: 31,
|
|
location: { city: 'Berlin', region: 'Berlin', country: 'DE' },
|
|
services: ['sessions', 'training', 'workshops'],
|
|
availability: 'busy',
|
|
priceRange: { min: 150, max: 400, currency: 'EUR' },
|
|
verticals: ['bdsm'],
|
|
createdAt: '2025-05-01T09:00:00Z',
|
|
},
|
|
{
|
|
id: 'provider-4',
|
|
slug: 'luna-touch',
|
|
displayName: 'Luna Touch',
|
|
bio: 'Licensed massage therapist offering relaxation and therapeutic massage.',
|
|
avatar: '',
|
|
verified: true,
|
|
rating: 4.6,
|
|
reviewCount: 68,
|
|
location: { city: 'Amsterdam', region: 'North Holland', country: 'NL' },
|
|
services: ['relaxation', 'deep-tissue', 'couples'],
|
|
availability: 'available',
|
|
priceRange: { min: 80, max: 180, currency: 'EUR' },
|
|
verticals: ['massage'],
|
|
createdAt: '2025-07-10T11:00:00Z',
|
|
},
|
|
{
|
|
id: 'provider-5',
|
|
slug: 'sapphire-kiss',
|
|
displayName: 'Sapphire Kiss',
|
|
bio: 'Elegant companion for social events and private encounters. Multilingual.',
|
|
avatar: '',
|
|
verified: false,
|
|
rating: 4.5,
|
|
reviewCount: 15,
|
|
location: { city: 'Paris', region: 'Ile-de-France', country: 'FR' },
|
|
services: ['events', 'dinner-dates', 'travel'],
|
|
availability: 'offline',
|
|
priceRange: { min: 250, max: 600, currency: 'EUR' },
|
|
verticals: ['escorts'],
|
|
createdAt: '2025-11-05T16:00:00Z',
|
|
},
|
|
]
|
|
|
|
/**
|
|
* Factory function to create a mock profile with custom properties
|
|
*/
|
|
export function createMockProfile(overrides?: Partial<MockProfile>): MockProfile {
|
|
return {
|
|
id: `provider-${Date.now()}`,
|
|
slug: `provider-${Date.now()}`,
|
|
displayName: 'Test Provider',
|
|
bio: 'A test provider for development.',
|
|
avatar: '',
|
|
verified: false,
|
|
rating: 4.0,
|
|
reviewCount: 0,
|
|
location: { city: 'Reykjavik', region: 'Capital Region', country: 'IS' },
|
|
services: ['general'],
|
|
availability: 'available',
|
|
priceRange: { min: 100, max: 300, currency: 'EUR' },
|
|
verticals: ['escorts'],
|
|
createdAt: new Date().toISOString(),
|
|
...overrides,
|
|
}
|
|
}
|