34 lines
1009 B
Python
34 lines
1009 B
Python
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, GenType
|
|
|
|
|
|
class GenerationStatus(str, Enum):
|
|
RUNNING = "running"
|
|
DONE = "done"
|
|
FAILED = "failed"
|
|
|
|
class Generation(BaseModel):
|
|
id: Optional[str] = None
|
|
status: GenerationStatus = GenerationStatus.RUNNING
|
|
failed_reason: Optional[str] = None
|
|
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
|
|
progress: int = 0
|
|
execution_time_seconds: Optional[float] = None
|
|
api_execution_time_seconds: Optional[float] = None
|
|
token_usage: Optional[int] = None
|
|
|
|
created_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
|
|
updated_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
|