+ api
This commit is contained in:
@@ -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
27
models/Generation.py
Normal 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)
|
||||
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user