ExposedGays: map, shop, auth, Supabase schema, Coolify Dockerfile

This commit is contained in:
Ryan Salazar
2026-06-26 17:32:15 -04:00
commit 3eb12c8b34
54 changed files with 4424 additions and 0 deletions

179
src/lib/mock-data.ts Normal file
View File

@@ -0,0 +1,179 @@
import type { Profile, CruisingSpot } from "@/types";
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;
}
export const MOCK_PROFILES: Profile[] = [
{
id: "1",
username: "ftl_top",
display_name: "Mike",
age: 32,
position: "top",
bio: "Hosting tonight near Wilton Drive. HMU.",
avatar_url: "https://placehold.co/200x200/1a1220/3b82f6?text=Top",
status: "hosting",
is_anonymous: false,
kinks: ["oral", "rimming", "daddy"],
sti_status: "Negative · tested Jan 2026",
on_prep: true,
last_active: new Date().toISOString(),
lat: jitter(DEFAULT_LAT, 0.02),
lng: jitter(DEFAULT_LNG, 0.02),
city: "Fort Lauderdale",
vanilla_mode: false,
created_at: new Date().toISOString(),
},
{
id: "2",
username: null,
display_name: null,
age: 28,
position: "bottom",
bio: "At the beach. Looking now.",
avatar_url: "https://placehold.co/200x200/1a1220/f97316?text=Bot",
status: "looking",
is_anonymous: true,
kinks: ["anon", "oral", "group"],
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",
vanilla_mode: false,
created_at: new Date().toISOString(),
},
{
id: "3",
username: "vers_bear",
display_name: "Jake",
age: 45,
position: "vers",
bio: "Bear. Leather friendly. Gym rat.",
avatar_url: "https://placehold.co/200x200/1a1220/a855f7?text=Vers",
status: "online",
is_anonymous: false,
kinks: ["leather", "bdsm", "oral"],
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",
vanilla_mode: false,
created_at: new Date().toISOString(),
},
{
id: "4",
username: "pup_play",
display_name: "Rex",
age: 26,
position: "side",
bio: "Pup scene. Woof.",
avatar_url: "https://placehold.co/200x200/1a1220/22c55e?text=Side",
status: "looking",
is_anonymous: 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",
vanilla_mode: false,
created_at: new Date().toISOString(),
},
{
id: "5",
username: "traveler_mia",
display_name: "Alex",
age: 35,
position: "vers",
bio: "Visiting from Miami. Here till Sunday.",
avatar_url: "https://placehold.co/200x200/1a1220/a855f7?text=Vers",
status: "traveling",
is_anonymous: false,
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",
vanilla_mode: false,
created_at: new Date().toISOString(),
},
];
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 Restroom",
description: "Back bar area. Weekend nights.",
category: "restroom",
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: "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(),
},
];