import type { IImageServicePort } from '@core/racing/application/ports/IImageServicePort'; import type { Logger } from '@core/shared/application'; export class InMemoryImageServiceAdapter implements IImageServicePort { constructor(private readonly logger: Logger) { this.logger.info('InMemoryImageServiceAdapter initialized.'); } getDriverAvatar(driverId: string): string { this.logger.debug(`[InMemoryImageServiceAdapter] Getting avatar for driver: ${driverId}`); const driverNumber = Number(driverId.replace('driver-', '')); const index = Number.isFinite(driverNumber) ? driverNumber % 3 : 0; const avatars = [ '/images/avatars/male-default-avatar.jpg', '/images/avatars/female-default-avatar.jpeg', '/images/avatars/neutral-default-avatar.jpeg', ] as const; return avatars[index] ?? avatars[0]; } getTeamLogo(teamId: string): string { this.logger.debug(`[InMemoryImageServiceAdapter] Getting logo for team: ${teamId}`); const teamNumber = Number(teamId.replace('team-', '')); const index = Number.isFinite(teamNumber) ? teamNumber % 6 : 0; const logos = [ '/images/ff1600.jpeg', '/images/header.jpeg', '/images/avatars/male-default-avatar.jpg', '/images/avatars/female-default-avatar.jpeg', '/images/avatars/neutral-default-avatar.jpeg', '/images/leagues/placeholder-cover.svg', ] as const; return logos[index] ?? logos[0]; } getLeagueCover(leagueId: string): string { this.logger.debug(`[InMemoryImageServiceAdapter] Getting cover for league: ${leagueId}`); return '/images/header.jpeg'; } getLeagueLogo(leagueId: string): string { this.logger.debug(`[InMemoryImageServiceAdapter] Getting logo for league: ${leagueId}`); return '/images/ff1600.jpeg'; } }