wip
This commit is contained in:
@@ -96,7 +96,8 @@ export function createLeagues(ownerIds: string[]): League[] {
|
||||
for (let i = 0; i < leagueCount; i++) {
|
||||
const id = `league-${i + 1}`;
|
||||
const name = leagueNames[i] ?? faker.company.name();
|
||||
const ownerId = pickOne(ownerIds);
|
||||
// Ensure league-5 (demo league with running race) is owned by driver-1
|
||||
const ownerId = i === 4 ? 'driver-1' : pickOne(ownerIds);
|
||||
|
||||
const maxDriversOptions = [24, 32, 48, 64];
|
||||
let settings = {
|
||||
@@ -209,6 +210,7 @@ export function createMemberships(
|
||||
teamsByLeague.set(team.primaryLeagueId, list);
|
||||
});
|
||||
|
||||
|
||||
drivers.forEach((driver) => {
|
||||
// Each driver participates in 1–3 leagues
|
||||
const leagueSampleSize = faker.number.int({ min: 1, max: Math.min(3, leagues.length) });
|
||||
@@ -264,10 +266,24 @@ export function createRaces(leagues: League[]): Race[] {
|
||||
|
||||
for (let i = 0; i < raceCount; i++) {
|
||||
const id = `race-${i + 1}`;
|
||||
const league = pickOne(leagues);
|
||||
let league = pickOne(leagues);
|
||||
const offsetDays = faker.number.int({ min: -30, max: 45 });
|
||||
const scheduledAt = new Date(baseDate.getTime() + offsetDays * 24 * 60 * 60 * 1000);
|
||||
const status = scheduledAt.getTime() < baseDate.getTime() ? 'completed' : 'scheduled';
|
||||
let status: 'scheduled' | 'completed' | 'running' = scheduledAt.getTime() < baseDate.getTime() ? 'completed' : 'scheduled';
|
||||
let strengthOfField: number | undefined;
|
||||
|
||||
// Special case: Make race-1 a running race in league-5 (user's admin league)
|
||||
if (i === 0) {
|
||||
const league5 = leagues.find(l => l.id === 'league-5');
|
||||
if (league5) {
|
||||
league = league5;
|
||||
status = 'running';
|
||||
// Calculate SOF for the running race (simulate 12-20 drivers with average rating ~1500)
|
||||
const participantCount = faker.number.int({ min: 12, max: 20 });
|
||||
const averageRating = 1500 + faker.number.int({ min: -200, max: 300 });
|
||||
strengthOfField = Math.round(averageRating);
|
||||
}
|
||||
}
|
||||
|
||||
races.push(
|
||||
Race.create({
|
||||
@@ -278,6 +294,8 @@ export function createRaces(leagues: League[]): Race[] {
|
||||
car: faker.helpers.arrayElement(cars),
|
||||
sessionType: 'race',
|
||||
status,
|
||||
...(strengthOfField !== undefined ? { strengthOfField } : {}),
|
||||
...(status === 'running' ? { registeredCount: faker.number.int({ min: 12, max: 20 }) } : {}),
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user