from datetime import datetime, UTC from enum import Enum from typing import List, Optional from pydantic import BaseModel, Field from models.Asset import Asset from models.enums import AspectRatios, Quality class GenerationStatus(str, Enum): RUNNING = "running" DONE = "done" FAILED = "failed" class Generation(BaseModel): id: Optional[str] = None status: GenerationStatus = GenerationStatus.RUNNING linked_character_id: Optional[str] = None aspect_ratio: AspectRatios quality: Quality prompt: str tech_prompt: Optional[str] = None assets_list: List[str] result: Optional[str] = None created_at: datetime = Field(default_factory=lambda: datetime.now(UTC)) updated_at: datetime = Field(default_factory=lambda: datetime.now(UTC))