mirror of
https://github.com/wowlikon/LiB.git
synced 2026-02-04 20:34:38 +00:00
42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
"""Модуль DTO-моделей авторов"""
|
|
|
|
from typing import List
|
|
|
|
from pydantic import ConfigDict
|
|
from sqlmodel import SQLModel, Field
|
|
|
|
|
|
class AuthorBase(SQLModel):
|
|
"""Базовая модель автора"""
|
|
|
|
name: str = Field(description="Псевдоним")
|
|
|
|
model_config = ConfigDict( # pyright: ignore
|
|
json_schema_extra={"example": {"name": "author_name"}}
|
|
)
|
|
|
|
|
|
class AuthorCreate(AuthorBase):
|
|
"""Модель автора для создания"""
|
|
|
|
pass
|
|
|
|
|
|
class AuthorUpdate(SQLModel):
|
|
"""Модель автора для обновления"""
|
|
|
|
name: str | None = Field(None, description="Псевдоним")
|
|
|
|
|
|
class AuthorRead(AuthorBase):
|
|
"""Модель автора для чтения"""
|
|
|
|
id: int = Field(description="Идентификатор")
|
|
|
|
|
|
class AuthorList(SQLModel):
|
|
"""Список авторов"""
|
|
|
|
authors: List[AuthorRead] = Field(description="Список авторов")
|
|
total: int = Field(description="Количество авторов")
|