39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
/**
|
|
* Shared media asset configuration
|
|
* This file defines the paths for all media assets used across the application
|
|
*/
|
|
|
|
export interface MediaAssetConfig {
|
|
avatars: {
|
|
male: string;
|
|
female: string;
|
|
neutral: string;
|
|
};
|
|
api: {
|
|
avatar: (driverId: string) => string;
|
|
teamLogo: (teamId: string) => string;
|
|
trackImage: (trackId: string) => string;
|
|
sponsorLogo: (sponsorId: string) => string;
|
|
categoryIcon: (categoryId: string) => string;
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Shared media asset paths configuration
|
|
* Used by both seed data generation and frontend components
|
|
*/
|
|
export const mediaAssetConfig: MediaAssetConfig = {
|
|
avatars: {
|
|
male: '/images/avatars/male-default-avatar.jpg',
|
|
female: '/images/avatars/female-default-avatar.jpeg',
|
|
neutral: '/images/avatars/neutral-default-avatar.jpeg',
|
|
},
|
|
|
|
api: {
|
|
avatar: (driverId: string) => `/api/media/avatar/${driverId}`,
|
|
teamLogo: (teamId: string) => `/api/media/teams/${teamId}/logo`,
|
|
trackImage: (trackId: string) => `/api/media/tracks/${trackId}/image`,
|
|
sponsorLogo: (sponsorId: string) => `/api/media/sponsors/${sponsorId}/logo`,
|
|
categoryIcon: (categoryId: string) => `/api/media/categories/${categoryId}/icon`,
|
|
},
|
|
} as const; |