26 lines
625 B
Python
26 lines
625 B
Python
from pydantic import BaseModel, Field, computed_field
|
|
|
|
|
|
class AnimeCreate(BaseModel):
|
|
anilist_id: int = Field(gt=0)
|
|
custom_name: str | None = Field(default=None, max_length=255)
|
|
|
|
class AnimeRemove(BaseModel):
|
|
anilist_id: int
|
|
|
|
class AnimeEntry(BaseModel):
|
|
name: str
|
|
last_updated: str | None = None
|
|
|
|
class Counts(BaseModel):
|
|
active: int
|
|
inactive: int
|
|
|
|
class AnimeList(BaseModel):
|
|
active: list[AnimeEntry] = Field(default_factory=list)
|
|
inactive: list[AnimeEntry] = Field(default_factory=list)
|
|
|
|
@computed_field
|
|
@property
|
|
def counts(self) -> Counts:
|
|
return Counts(active=len(self.active),inactive=len(self.inactive)) |