This commit is contained in:
xds
2026-02-04 15:10:55 +03:00
parent 11c1f4f7dc
commit 35de8efc56
20 changed files with 566 additions and 135 deletions

View File

@@ -1,6 +1,6 @@
from datetime import datetime, UTC
from enum import Enum
from typing import Optional, Any
from typing import Optional, Any, List
from pydantic import BaseModel, computed_field
@@ -16,8 +16,9 @@ class Asset(BaseModel):
type: AssetType
linked_char_id: Optional[str] = None
data: Optional[bytes] = None
tg_doc_file_id: str
tg_doc_file_id: Optional[str] = None
tg_photo_file_id: Optional[str] = None
tags: List[str] = []
created_at: datetime = datetime.now(UTC)
# --- CALCULATED FIELD ---

27
models/Generation.py Normal file
View File

@@ -0,0 +1,27 @@
from datetime import datetime, UTC
from enum import Enum
from typing import List, Optional
from pydantic import BaseModel
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 = datetime.now(UTC)
updated_at: datetime = datetime.now(UTC)

View File

@@ -1,19 +1,43 @@
from enum import Enum
class AspectRatios(Enum):
NINESIXTEEN = '9:16'
SIXTEENNINE = '16:9'
THREEFOUR = '3:4'
FOURTHREE = '4:3'
class AspectRatios(str, Enum):
NINESIXTEEN = "NINESIXTEEN"
SIXTEENNINE = "SIXTEENNINE"
THREEFOUR = "THREEFOUR"
FOURTHREE = "FOURTHREE"
@property
def value_ratio(self) -> str:
return {
AspectRatios.NINESIXTEEN: "9:16",
AspectRatios.SIXTEENNINE: "16:9",
AspectRatios.THREEFOUR: "3:4",
AspectRatios.FOURTHREE: "4:3",
}[self]
class Quality(Enum):
ONEK = '1K'
TWOK = '2K'
FOURK = '4K'
class Quality(str, Enum):
ONEK = 'ONEK'
TWOK = 'TWOK'
FOURK = 'FOURK'
@property
def value_quality(self) -> str:
return {
Quality.ONEK: '1K',
Quality.TWOK: '2K',
Quality.FOURK: '4K'
}[self]
class GenType(Enum):
class GenType(str, Enum):
TEXT = 'Text'
IMAGE = 'Image'
IMAGE = 'Image'
@property
def value_type(self) -> str:
return {
GenType.TEXT: 'Text',
GenType.IMAGE: 'Image'
}[self]