35 lines
862 B
TypeScript
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>;
|
|
} |