31 lines
934 B
TypeScript
31 lines
934 B
TypeScript
import type { ImageServicePort } from '@gridpilot/media';
|
|
|
|
export class DemoImageServiceAdapter implements ImageServicePort {
|
|
getDriverAvatar(driverId: string): string {
|
|
const seed = stableHash(driverId);
|
|
return `https://picsum.photos/seed/driver-${seed}/128/128`;
|
|
}
|
|
|
|
getTeamLogo(teamId: string): string {
|
|
const seed = stableHash(teamId);
|
|
return `https://picsum.photos/seed/team-${seed}/256/256`;
|
|
}
|
|
|
|
getLeagueCover(leagueId: string): string {
|
|
const seed = stableHash(leagueId);
|
|
return `https://picsum.photos/seed/league-cover-${seed}/1200/280?blur=2`;
|
|
}
|
|
|
|
getLeagueLogo(leagueId: string): string {
|
|
const seed = stableHash(leagueId);
|
|
return `https://picsum.photos/seed/league-logo-${seed}/160/160`;
|
|
}
|
|
}
|
|
|
|
function stableHash(value: string): number {
|
|
let hash = 0;
|
|
for (let i = 0; i < value.length; i++) {
|
|
hash = (hash * 31 + value.charCodeAt(i)) | 0;
|
|
}
|
|
return Math.abs(hash);
|
|
} |