Files
gridpilot.gg/packages/media/application/ports/AvatarGenerationPort.ts
2025-12-08 23:52:36 +01:00

35 lines
862 B
TypeScript

/**
* Port: AvatarGenerationPort
*
* Defines the contract for AI-powered avatar generation.
*/
import type { RacingSuitColor, AvatarStyle } from '../../domain/entities/AvatarGenerationRequest';
export interface AvatarGenerationOptions {
facePhotoUrl: string;
prompt: string;
suitColor: RacingSuitColor;
style: AvatarStyle;
count: number;
}
export interface GeneratedAvatar {
url: string;
thumbnailUrl?: string;
}
export interface AvatarGenerationResult {
success: boolean;
avatars: GeneratedAvatar[];
errorMessage?: string;
}
export interface AvatarGenerationPort {
/**
* Generate racing avatars from a face photo
* @param options Generation options including face photo and styling preferences
* @returns Generated avatar URLs
*/
generateAvatars(options: AvatarGenerationOptions): Promise<AvatarGenerationResult>;
}