from pydantic import BaseModel from datetime import datetime from typing import Literal class Mark(BaseModel): type: Literal["tag", "badge", "genre"] value: str class NovelFile(BaseModel): filename: str platform: Literal["android", "ios", "windows", "linux", "macos"] class Novel(BaseModel): title: str description: str author_id: int vndb: int | None = None hours_to_read: int marks: list[Mark] tg_channel: int # maybe not here tg_post: str | None = None #url::Url post_at: datetime | None = None class FullNovel(BaseModel): data: Novel #upload_queue: list[str] files: list[NovelFile] screenshots: list[str]