from __future__ import annotations import functools from datetime import UTC, datetime from typing import Literal from beanie import Document from pydantic import BaseModel, Field MediaType = Literal["video", "animation"] utc_now = functools.partial(datetime.now, UTC) class Quality(BaseModel): name: str resolution: tuple[int, int] file_id: str class Video(Document): file_id: str file_unique_id: str okru_id: str okru_delete_id: int qualities: list[Quality] = [] media_type: MediaType = "video" created_at: datetime = Field(default_factory=utc_now)