more seeds

This commit is contained in:
2025-12-27 10:43:55 +01:00
parent 58d9a1c762
commit 91612e4256
16 changed files with 1713 additions and 72 deletions

View File

@@ -7,7 +7,12 @@ import { Result as RaceResult } from '@core/racing/domain/entities/result/Result
import { Standing } from '@core/racing/domain/entities/Standing';
import { Team } from '@core/racing/domain/entities/Team';
import { Track } from '@core/racing/domain/entities/Track';
import type { TeamMembership } from '@core/racing/domain/types/TeamMembership';
import { JoinRequest } from '@core/racing/domain/entities/JoinRequest';
import { SponsorshipRequest } from '@core/racing/domain/entities/SponsorshipRequest';
import { Sponsor } from '@core/racing/domain/entities/sponsor/Sponsor';
import { Season } from '@core/racing/domain/entities/season/Season';
import { SeasonSponsorship } from '@core/racing/domain/entities/season/SeasonSponsorship';
import type { TeamJoinRequest, TeamMembership } from '@core/racing/domain/types/TeamMembership';
import type { FeedItem } from '@core/social/domain/types/FeedItem';
import { RacingDriverFactory } from './RacingDriverFactory';
import { RacingFeedFactory } from './RacingFeedFactory';
@@ -19,6 +24,10 @@ import { RacingResultFactory } from './RacingResultFactory';
import { RacingStandingFactory } from './RacingStandingFactory';
import { RacingTeamFactory } from './RacingTeamFactory';
import { RacingTrackFactory } from './RacingTrackFactory';
import { RacingSponsorFactory } from './RacingSponsorFactory';
import { RacingSeasonSponsorshipFactory } from './RacingSeasonSponsorshipFactory';
import { RacingLeagueWalletFactory } from './RacingLeagueWalletFactory';
import { RacingStewardingFactory } from './RacingStewardingFactory';
export type Friendship = {
driverId: string;
@@ -28,13 +37,23 @@ export type Friendship = {
export type RacingSeed = {
drivers: Driver[];
leagues: League[];
seasons: Season[];
seasonSponsorships: SeasonSponsorship[];
sponsorshipRequests: SponsorshipRequest[];
leagueWallets: import('@core/racing/domain/entities/league-wallet/LeagueWallet').LeagueWallet[];
leagueWalletTransactions: import('@core/racing/domain/entities/league-wallet/Transaction').Transaction[];
protests: import('@core/racing/domain/entities/Protest').Protest[];
penalties: import('@core/racing/domain/entities/penalty/Penalty').Penalty[];
races: Race[];
results: RaceResult[];
standings: Standing[];
leagueMemberships: LeagueMembership[];
leagueJoinRequests: JoinRequest[];
raceRegistrations: RaceRegistration[];
teams: Team[];
teamMemberships: TeamMembership[];
teamJoinRequests: TeamJoinRequest[];
sponsors: Sponsor[];
tracks: Track[];
friendships: Friendship[];
feedEvents: FeedItem[];
@@ -68,6 +87,9 @@ class RacingSeedFactory {
const resultFactory = new RacingResultFactory();
const standingFactory = new RacingStandingFactory();
const membershipFactory = new RacingMembershipFactory(this.baseDate);
const sponsorFactory = new RacingSponsorFactory(this.baseDate);
const seasonSponsorshipFactory = new RacingSeasonSponsorshipFactory(this.baseDate);
const leagueWalletFactory = new RacingLeagueWalletFactory(this.baseDate);
const friendshipFactory = new RacingFriendshipFactory();
const feedFactory = new RacingFeedFactory(this.baseDate);
@@ -75,27 +97,51 @@ class RacingSeedFactory {
const tracks = trackFactory.create();
const leagueFactory = new RacingLeagueFactory(this.baseDate, drivers);
const leagues = leagueFactory.create();
const teamFactory = new RacingTeamFactory(this.baseDate, drivers, leagues);
const teams = teamFactory.createTeams();
const sponsors = sponsorFactory.create();
const seasons = seasonSponsorshipFactory.createSeasons(leagues);
const seasonSponsorships = seasonSponsorshipFactory.createSeasonSponsorships(seasons, sponsors);
const sponsorshipRequests = seasonSponsorshipFactory.createSponsorshipRequests(seasons, sponsors);
const leagueMemberships = membershipFactory.createLeagueMemberships(drivers, leagues);
const leagueJoinRequests = membershipFactory.createLeagueJoinRequests(drivers, leagues, leagueMemberships);
const { wallets: leagueWallets, transactions: leagueWalletTransactions } = leagueWalletFactory.create(leagues);
const teamFactory = new RacingTeamFactory(this.baseDate);
const teams = teamFactory.createTeams(drivers, leagues);
const races = raceFactory.create(leagues, tracks);
const results = resultFactory.create(drivers, races);
const standings = standingFactory.create(leagues, races, results);
const leagueMemberships = membershipFactory.createLeagueMemberships(drivers, leagues);
const raceRegistrations = membershipFactory.createRaceRegistrations(races);
const raceRegistrations = membershipFactory.createRaceRegistrations(races, drivers, leagueMemberships);
const teamMemberships = teamFactory.createTeamMemberships(drivers, teams);
const teamJoinRequests = teamFactory.createTeamJoinRequests(drivers, teams, teamMemberships);
const stewardingFactory = new RacingStewardingFactory(this.baseDate);
const { protests, penalties } = stewardingFactory.create(races, drivers, leagueMemberships);
const friendships = friendshipFactory.create(drivers);
const feedEvents = feedFactory.create(drivers, friendships, races, leagues);
return {
drivers,
leagues,
seasons,
seasonSponsorships,
sponsorshipRequests,
leagueWallets,
leagueWalletTransactions,
protests,
penalties,
races,
results,
standings,
leagueMemberships,
leagueJoinRequests,
raceRegistrations,
teams,
teamMemberships,
teamJoinRequests,
sponsors,
tracks,
friendships,
feedEvents,