import { Driver } from '@core/racing/domain/entities/Driver'; import { Race } from '@core/racing/domain/entities/Race'; import { Result as RaceResult } from '@core/racing/domain/entities/result/Result'; export class RacingResultFactory { create(drivers: Driver[], races: Race[]): RaceResult[] { const results: RaceResult[] = []; const completed = races.filter((r) => r.status === 'completed'); for (const race of completed) { const participants = drivers.slice(0, Math.min(16, drivers.length)); for (let idx = 0; idx < participants.length; idx++) { const driver = participants[idx]!; const position = idx + 1; const startPosition = ((idx + 3) % participants.length) + 1; results.push( RaceResult.create({ id: `${race.id}:${driver.id}`, raceId: race.id, driverId: driver.id, position, startPosition, fastestLap: 88_000 + idx * 120, incidents: idx % 4 === 0 ? 2 : 0, }), ); } } return results; } }