This commit is contained in:
2025-12-04 23:31:55 +01:00
parent 9fa21a488a
commit fb509607c1
96 changed files with 5839 additions and 1609 deletions

View File

@@ -1,3 +1,5 @@
import { faker } from '../faker/faker';
const DRIVER_AVATARS = [
'/images/avatars/avatar-1.svg',
'/images/avatars/avatar-2.svg',
@@ -44,4 +46,20 @@ export function getLeagueBanner(leagueId: string): string {
return LEAGUE_BANNERS[index];
}
export interface LeagueCoverImage {
url: string;
alt: string;
}
export function getLeagueCoverImage(leagueId: string): LeagueCoverImage {
const seed = hashString(leagueId);
faker.seed(seed);
const alt = faker.lorem.words(3);
const url = `https://picsum.photos/seed/${seed}/1200/280?blur=2`;
return { url, alt };
}
export { DRIVER_AVATARS, TEAM_LOGOS, LEAGUE_BANNERS };

View File

@@ -103,12 +103,32 @@ function createLeagues(ownerIds: string[]): League[] {
const name = leagueNames[i] ?? faker.company.name();
const ownerId = pickOne(ownerIds);
const maxDriversOptions = [24, 32, 48, 64];
const settings = {
pointsSystem: faker.helpers.arrayElement(['f1-2024', 'indycar']),
sessionDuration: faker.helpers.arrayElement([45, 60, 90, 120]),
qualifyingFormat: faker.helpers.arrayElement(['open', 'single-lap']),
maxDrivers: faker.helpers.arrayElement(maxDriversOptions),
};
const socialLinks =
i === 0
? {
discordUrl: 'https://discord.gg/gridpilot-demo',
youtubeUrl: 'https://youtube.com/@gridpilot-demo',
websiteUrl: 'https://gridpilot-demo.example.com',
}
: i === 1
? {
discordUrl: 'https://discord.gg/gridpilot-endurance',
youtubeUrl: 'https://youtube.com/@gridpilot-endurance',
}
: i === 2
? {
websiteUrl: 'https://virtual-touring.example.com',
}
: undefined;
leagues.push(
League.create({
id,
@@ -117,6 +137,7 @@ function createLeagues(ownerIds: string[]): League[] {
ownerId,
settings,
createdAt: faker.date.past(),
socialLinks,
}),
);
}