vnshed/backend/vntypes.py

33 lines
672 B
Python

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]