MotorSignal-App/website/lib/club-fixtures.ts

171 lines
5.0 KiB
TypeScript

import {
Club,
ClubMember,
ClubUpcomingRide,
ClubMetrics,
ClubActivityItem,
} from '../components/founder-portal/types';
/**
* Isolated development & test fixtures based on Stitch Founder Overview reference.
* STRICT ISOLATION: Must NEVER be imported by production runtime loaders.
*/
export const FIXTURE_FOUNDER_CLUB: Club = {
id: 'fixture-ms-atl-01',
name: 'MotorSignal Riders Atlanta',
slug: 'motorsignal-atlanta',
description: 'Premier sport and touring motorcycle syndicate based in northern Georgia. Focused on precision street pacing, group radar safety, and track day telemetry.',
visibility: 'public',
admissionPolicy: 'request',
ownerUid: 'usr-marcus-vance',
memberCount: 126,
createdAt: '2023-03-15T00:00:00.000Z',
updatedAt: '2026-09-08T00:00:00.000Z',
archivedAt: null,
homeRegion: 'Atlanta, Georgia',
motorcycleFocus: 'Sport / Touring',
founderName: 'Marcus Vance',
founderHandle: '@telemetry-marcus',
founderRank: 'President',
foundedYear: '2023',
};
export const FIXTURE_METRICS: ClubMetrics = {
members: 126,
membersActivePercent: null,
membersDeltaMonth: null,
roadMarshalsCount: null,
pendingApplications: 3,
upcomingRidesCount: 2,
confirmedRidersTotal: 38,
nextRideDate: 'Oct 25',
clubMilesThisMonth: null,
completedClubRidesCount: 0,
clubMilesAvailable: false,
};
export const FIXTURE_UPCOMING_RIDES: ClubUpcomingRide[] = [
{
id: 'ride-ms-atl-882',
rideIdentifier: 'MS-ATL-882',
title: 'Blood Mountain & Wolf Pen Gap',
scheduledStartAt: 'Oct 25 · 7:30 AM',
distanceMiles: 142,
durationString: '3h 45m',
paceClassification: 'Brisk Paceline',
roadCaptainName: 'Dave K.',
roadCaptainMotorcycle: 'Yamaha MT-09 SP',
confirmedCount: 24,
pendingCount: 3,
capacity: 28,
briefingTime: '7:15 AM',
routeId: 'rt-blood-mtn-01',
},
{
id: 'ride-ms-atl-883',
rideIdentifier: 'MS-ATL-883',
title: 'Chattahoochee River & Foothills Sweep',
scheduledStartAt: 'Nov 02 · 9:00 AM',
distanceMiles: 88,
durationString: '2h 20m',
paceClassification: 'Scenic Pace',
roadCaptainName: 'Elena Rostova',
roadCaptainMotorcycle: 'Triumph Tiger 900',
sweepStatus: 'needs_assignment',
confirmedCount: 14,
pendingCount: 0,
capacity: 20,
routeId: 'rt-chattahoochee-02',
},
];
export const FIXTURE_PENDING_APPLICATIONS: ClubMember[] = [
{
uid: 'app-david-cho',
clubId: 'fixture-ms-atl-01',
status: 'requested',
role: 'member',
displayName: 'David Cho',
handle: '@davidcho',
motorcycle: 'BMW R1250GS',
location: 'Atlanta, GA',
note: 'Interested in weekend ADV and touring rides.',
updatedAt: '2026-09-08T12:00:00Z',
requestedAt: '2026-09-08T12:00:00Z',
},
{
uid: 'app-elena-rostova',
clubId: 'fixture-ms-atl-01',
status: 'requested',
role: 'member',
displayName: 'Elena Rostova',
handle: '@erostova',
motorcycle: 'Street Triple RS',
location: 'Decatur, GA',
note: 'Looking for spirited mountain group rides.',
updatedAt: '2026-09-08T10:00:00Z',
requestedAt: '2026-09-08T10:00:00Z',
},
{
uid: 'app-marcus-thorne',
clubId: 'fixture-ms-atl-01',
status: 'requested',
role: 'member',
displayName: 'Marcus Thorne',
handle: '@mthorne',
motorcycle: 'Multistrada V4',
location: 'Roswell, GA',
note: 'Sport touring enthusiast, joined via Atlanta riders.',
updatedAt: '2026-09-07T18:00:00Z',
requestedAt: '2026-09-07T18:00:00Z',
},
];
export const FIXTURE_PAST_RIDES: ClubUpcomingRide[] = [
{
id: 'ride-ms-atl-880',
rideIdentifier: 'MS-ATL-880',
title: 'Russell-Brasstown Scenic Byway Loop',
scheduledStartAt: 'Oct 11 · 8:00 AM',
distanceMiles: 118,
durationString: '3h 10m',
paceClassification: 'Brisk Paceline',
roadCaptainName: 'Dave K.',
roadCaptainMotorcycle: 'Yamaha MT-09 SP',
sweepName: 'Marcus Vance',
sweepStatus: 'assigned',
confirmedCount: 22,
pendingCount: 0,
capacity: 25,
routeId: 'rt-russell-brasstown-01',
status: 'completed',
description: 'Crisp autumn run across the highest gap in Georgia with sweep radar coordination.',
},
{
id: 'ride-ms-atl-879',
rideIdentifier: 'MS-ATL-879',
title: 'Suches & Wolf Pen Shakedown',
scheduledStartAt: 'Sep 27 · 8:30 AM',
distanceMiles: 95,
durationString: '2h 30m',
paceClassification: 'Sport Pace',
roadCaptainName: 'Marcus Vance',
roadCaptainMotorcycle: 'Ducati Panigale V4',
sweepName: 'Elena Rostova',
sweepStatus: 'assigned',
confirmedCount: 18,
pendingCount: 0,
capacity: 20,
routeId: 'rt-suches-wolf-pen-02',
status: 'completed',
description: 'Technical mountain shakedown ride testing sensor fusion lean angle and paceline spacing.',
},
];
export const CANONICAL_FOUNDER_CLUB = FIXTURE_FOUNDER_CLUB;
export const CANONICAL_METRICS = FIXTURE_METRICS;
export const CANONICAL_UPCOMING_RIDES = FIXTURE_UPCOMING_RIDES;
export const CANONICAL_PAST_RIDES = FIXTURE_PAST_RIDES;
export const CANONICAL_PENDING_APPLICATIONS = FIXTURE_PENDING_APPLICATIONS;