import type { Profile, CruisingSpot } from "@/types"; import { distanceMiles } from "@/lib/profile-stats"; const DEFAULT_LAT = parseFloat(process.env.NEXT_PUBLIC_DEFAULT_LAT || "26.1224"); const DEFAULT_LNG = parseFloat(process.env.NEXT_PUBLIC_DEFAULT_LNG || "-80.1373"); function jitter(base: number, range: number) { return base + (Math.random() - 0.5) * range; } function withDistance(p: Omit): Profile { const lat = p.lat ?? DEFAULT_LAT; const lng = p.lng ?? DEFAULT_LNG; return { ...p, distance_miles: distanceMiles(DEFAULT_LAT, DEFAULT_LNG, lat, lng), }; } export const MOCK_PROFILES: Profile[] = [ withDistance({ id: "1", username: "ftl_top", display_name: "Mike", age: 31, position: "top", bio: "Hosting tonight near Wilton Drive. HMU.", avatar_url: "https://images.unsplash.com/photo-1568602471122-7832951cc4c5?w=200&h=200&fit=crop", status: "hosting", is_anonymous: false, is_verified: true, kinks: ["oral", "rimming", "daddy", "exhibitionism"], sti_status: "Negative, On PrEP", on_prep: true, last_active: new Date().toISOString(), lat: jitter(DEFAULT_LAT, 0.02), lng: jitter(DEFAULT_LNG, 0.02), city: "Fort Lauderdale", state: "FL", id_verified: true, id_verified_at: new Date().toISOString(), vanilla_mode: false, created_at: new Date().toISOString(), height_in: 74, weight_lb: 180, body_type: "average", endowment: `7" cut`, orientation: "gay", headline: "No Pic, No Chat", into_public: ["Outdoors", "Parks"], fetishes: ["Armpits", "Ass", "Feet", "Jockstraps"], practices: ["Bareback Only"], interaction: ["Anonymous", "Cum and Go"], hiv_status: "Negative, On PrEP", hiv_tested: "May 1, 2026", sti_tested: "May 1, 2026", safeguards: ["COVID Vaccinated", "Mpox Vaccinated / Immune"], comfort_levels: ["No Tobacco", "No Alcohol", "No PnP"], carries: ["Lube"], hosting: "Can host", gallery: [ { url: "https://images.unsplash.com/photo-1568602471122-7832951cc4c5?w=400&h=500&fit=crop", is_explicit: false }, { url: "https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=400&h=500&fit=crop", is_explicit: false }, { url: "https://placehold.co/400x500/1a1220/ff2d6b?text=Explicit", is_explicit: true }, { url: "https://placehold.co/400x500/1a1220/8b2fc9?text=Explicit", is_explicit: true }, ], }), withDistance({ id: "2", username: null, display_name: null, age: 28, position: "bottom", bio: "At the beach. Looking now.", avatar_url: "https://images.unsplash.com/photo-1506794778202-cad84cf45f1d?w=200&h=200&fit=crop", status: "looking", is_anonymous: true, is_verified: false, kinks: ["anon", "oral", "group", "gloryholes"], sti_status: null, on_prep: false, last_active: new Date(Date.now() - 120000).toISOString(), lat: jitter(DEFAULT_LAT, 0.03), lng: jitter(DEFAULT_LNG, 0.03), city: "Fort Lauderdale", state: "FL", id_verified: false, id_verified_at: null, vanilla_mode: false, created_at: new Date().toISOString(), height_in: 69, weight_lb: 165, body_type: "fit", endowment: `8" uncut`, orientation: "gay", headline: "Into guys around my age", into_public: ["Parks", "Gyms"], fetishes: ["Socks"], practices: [], interaction: ["Anonymous"], hosting: "Can travel", gallery: [ { url: "https://images.unsplash.com/photo-1506794778202-cad84cf45f1d?w=400&h=500&fit=crop", is_explicit: false }, { url: "https://placehold.co/400x500/1a1220/ff2d6b?text=Explicit", is_explicit: true }, ], }), withDistance({ id: "3", username: "vers_bear", display_name: "Jake", age: 45, position: "vers", bio: "Bear. Leather friendly. Gym rat.", avatar_url: "https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=200&h=200&fit=crop", status: "online", is_anonymous: false, is_verified: true, kinks: ["leather", "bdsm", "oral", "fisting"], sti_status: "Negative", on_prep: true, last_active: new Date(Date.now() - 300000).toISOString(), lat: jitter(DEFAULT_LAT, 0.025), lng: jitter(DEFAULT_LNG, 0.025), city: "Fort Lauderdale", state: "FL", id_verified: true, id_verified_at: null, vanilla_mode: false, created_at: new Date().toISOString(), height_in: 71, weight_lb: 210, body_type: "stocky", endowment: `6.5" cut`, orientation: "gay", headline: "Leather & beer", fetishes: ["Leather", "Bondage"], practices: ["Condoms OK"], interaction: ["Drop Pants"], hiv_status: "Negative, On PrEP", hiv_tested: "Jan 2026", sti_tested: "Jan 2026", safeguards: ["COVID Vaccinated"], comfort_levels: ["No PnP"], gallery: [ { url: "https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=400&h=500&fit=crop", is_explicit: false }, ], }), withDistance({ id: "4", username: "pup_play", display_name: "Rex", age: 26, position: "side", bio: "Pup scene. Woof.", avatar_url: "https://images.unsplash.com/photo-1519085360753-af0119f7cbe7?w=200&h=200&fit=crop", status: "looking", is_anonymous: false, is_verified: false, kinks: ["pup", "bondage", "roleplay"], sti_status: null, on_prep: true, last_active: new Date(Date.now() - 60000).toISOString(), lat: jitter(DEFAULT_LAT, 0.015), lng: jitter(DEFAULT_LNG, 0.015), city: "Fort Lauderdale", state: "FL", id_verified: false, id_verified_at: null, vanilla_mode: false, created_at: new Date().toISOString(), height_in: 68, weight_lb: 155, body_type: "slim", orientation: "gay", headline: "Woof", hosting: "Can travel", gallery: [ { url: "https://images.unsplash.com/photo-1519085360753-af0119f7cbe7?w=400&h=500&fit=crop", is_explicit: false }, ], }), withDistance({ id: "5", username: "traveler_mia", display_name: "Alex", age: 35, position: "vers", bio: "Visiting from Miami. Here till Sunday.", avatar_url: "https://images.unsplash.com/photo-1492562080023-ab3db95bfbce?w=200&h=200&fit=crop", status: "traveling", is_anonymous: false, is_verified: true, kinks: ["cruising", "anon", "oral"], sti_status: "Negative · tested Dec 2025", on_prep: true, last_active: new Date(Date.now() - 180000).toISOString(), lat: jitter(DEFAULT_LAT, 0.01), lng: jitter(DEFAULT_LNG, 0.01), city: "Fort Lauderdale", state: "FL", id_verified: false, id_verified_at: null, vanilla_mode: false, created_at: new Date().toISOString(), height_in: 72, weight_lb: 175, body_type: "athletic", endowment: `7.5" cut`, orientation: "gay", headline: "Miami visitor", hosting: "Can travel", gallery: [ { url: "https://images.unsplash.com/photo-1492562080023-ab3db95bfbce?w=400&h=500&fit=crop", is_explicit: false }, { url: "https://placehold.co/400x500/1a1220/ff2d6b?text=Explicit", is_explicit: true }, ], }), withDistance({ id: "6", username: "gym_sauna", display_name: "Chris", age: 33, position: "bottom", bio: "LA Fitness sauna regular.", avatar_url: "https://images.unsplash.com/photo-1539571696357-5a90c39a553c?w=200&h=200&fit=crop", status: "online", is_anonymous: false, is_verified: false, kinks: ["oral", "underwear", "cruising"], sti_status: null, on_prep: true, last_active: new Date(Date.now() - 45000).toISOString(), lat: jitter(DEFAULT_LAT, 0.018), lng: jitter(DEFAULT_LNG, 0.022), city: "Fort Lauderdale", state: "FL", id_verified: false, id_verified_at: null, vanilla_mode: false, created_at: new Date().toISOString(), height_in: 70, weight_lb: 170, body_type: "fit", orientation: "gay", gallery: [ { url: "https://images.unsplash.com/photo-1539571696357-5a90c39a553c?w=400&h=500&fit=crop", is_explicit: false }, ], }), withDistance({ id: "7", username: "beach_vers", display_name: "Danny", age: 29, position: "vers", bio: "Sebastian beach afternoons.", avatar_url: "https://images.unsplash.com/photo-1504257432389-52343af06da3?w=200&h=200&fit=crop", status: "looking", is_anonymous: false, is_verified: true, kinks: ["anon", "oral", "exhibitionism"], sti_status: "Negative", on_prep: false, last_active: new Date(Date.now() - 90000).toISOString(), lat: jitter(DEFAULT_LAT, 0.028), lng: jitter(DEFAULT_LNG, 0.012), city: "Fort Lauderdale", state: "FL", id_verified: true, id_verified_at: null, vanilla_mode: false, created_at: new Date().toISOString(), height_in: 69, weight_lb: 160, body_type: "average", orientation: "gay", into_public: ["Outdoors", "Beaches"], gallery: [ { url: "https://images.unsplash.com/photo-1504257432389-52343af06da3?w=400&h=500&fit=crop", is_explicit: false }, { url: "https://placehold.co/400x500/1a1220/ff2d6b?text=Explicit", is_explicit: true }, ], }), ]; export const MOCK_SPOTS: CruisingSpot[] = [ { id: "s1", name: "Hugh Taylor Birch State Park", description: "Popular trails behind the nature center. Active after dark.", category: "park", lat: 26.1452, lng: -80.1048, city: "Fort Lauderdale", rating: 4.2, active_count: 8, is_popular: true, created_at: new Date().toISOString(), }, { id: "s2", name: "Sebastian Street Beach", description: "Gay beach section. Day and night action.", category: "beach", lat: 26.1175, lng: -80.1042, city: "Fort Lauderdale", rating: 4.5, active_count: 12, is_popular: true, created_at: new Date().toISOString(), }, { id: "s3", name: "LA Fitness — Oakland Park", description: "Locker room and sauna. Peak hours 5-8pm.", category: "gym", lat: 26.1723, lng: -80.1317, city: "Fort Lauderdale", rating: 3.8, active_count: 4, is_popular: false, created_at: new Date().toISOString(), }, { id: "s4", name: "Ramrod Bar", description: "Back bar area. Weekend nights.", category: "club", lat: 26.1603, lng: -80.1389, city: "Fort Lauderdale", rating: 3.5, active_count: 2, is_popular: false, created_at: new Date().toISOString(), }, { id: "s5", name: "Eagle Ft Lauderdale", description: "Leather bar. Active weekends.", category: "club", lat: 26.1588, lng: -80.1412, city: "Fort Lauderdale", rating: 4.1, active_count: 6, is_popular: true, created_at: new Date().toISOString(), }, { id: "s6", name: "Hunter's Bar", description: "Neighborhood gay bar.", category: "club", lat: 26.1555, lng: -80.1365, city: "Wilton Manors", rating: 4.0, active_count: 5, is_popular: true, created_at: new Date().toISOString(), }, { id: "s7", name: "Triple Crown Bookstore", description: "Adult bookstore with viewing booths.", category: "bookstore", lat: 26.1912, lng: -80.1534, city: "Oakland Park", rating: 4.0, active_count: 6, is_popular: true, created_at: new Date().toISOString(), }, ];