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 vndb: int | None = None hours_to_read: int tags: list[str] genres: list[str] badges: list[str] 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]