/**
 * Domain Types: AvatarGenerationRequest
 *
 * Pure type/config definitions used by the AvatarGenerationRequest entity.
 * Kept in domain/types so domain/entities contains only entity classes.
 */

export type RacingSuitColor =
  | 'red'
  | 'blue'
  | 'green'
  | 'yellow'
  | 'orange'
  | 'purple'
  | 'black'
  | 'white'
  | 'pink'
  | 'cyan';

export type AvatarStyle =
  | 'realistic'
  | 'cartoon'
  | 'pixel-art';

export type AvatarGenerationStatus =
  | 'pending'
  | 'validating'
  | 'generating'
  | 'completed'
  | 'failed';

export interface AvatarGenerationRequestProps {
  id: string;
  userId: string;
  facePhotoUrl: string;
  suitColor: RacingSuitColor;
  style: AvatarStyle;
  status: AvatarGenerationStatus;
  generatedAvatarUrls: string[];
  selectedAvatarIndex?: number;
  errorMessage?: string;
  createdAt: Date;
  updatedAt: Date;
}