изображение книги

This commit is contained in:
2026-02-01 16:55:43 +03:00
parent 4368ee0d3c
commit 80acdceba6
11 changed files with 196 additions and 45 deletions
+3 -1
View File
@@ -1,6 +1,7 @@
"""Модуль DB-моделей книг"""
from typing import TYPE_CHECKING, List
from uuid import UUID
from pgvector.sqlalchemy import Vector
from sqlalchemy import Column, String
@@ -26,7 +27,8 @@ class Book(BookBase, table=True):
sa_column=Column(String, nullable=False, default="active"),
description="Статус",
)
embedding: list[float] | None = Field(sa_column=Column(Vector(1024)))
embedding: list[float] | None = Field(sa_column=Column(Vector(1024)), description="Эмбэдинг для векторного поиска")
preview_id: UUID | None = Field(default=None, unique=True, index=True, description="UUID файла изображения")
authors: List["Author"] = Relationship(
back_populates="books", link_model=AuthorBookLink
)
+1
View File
@@ -46,6 +46,7 @@ class BookRead(BookBase):
id: int = Field(description="Идентификатор")
status: BookStatus = Field(description="Статус")
preview_url: str | None = Field(None, description="URL изображения")
class BookList(SQLModel):
+3
View File
@@ -39,6 +39,7 @@ class BookWithAuthors(SQLModel):
description: str = Field(description="Описание")
page_count: int = Field(description="Количество страниц")
status: BookStatus | None = Field(None, description="Статус")
preview_url: str | None = Field(default=None, description="URL изображения")
authors: List[AuthorRead] = Field(
default_factory=list, description="Список авторов"
)
@@ -52,6 +53,7 @@ class BookWithGenres(SQLModel):
description: str = Field(description="Описание")
page_count: int = Field(description="Количество страниц")
status: BookStatus | None = Field(None, description="Статус")
preview_url: str | None = Field(default=None, description="URL изображения")
genres: List[GenreRead] = Field(default_factory=list, description="Список жанров")
@@ -63,6 +65,7 @@ class BookWithAuthorsAndGenres(SQLModel):
description: str = Field(description="Описание")
page_count: int = Field(description="Количество страниц")
status: BookStatus | None = Field(None, description="Статус")
preview_url: str | None = Field(default=None, description="URL изображения")
authors: List[AuthorRead] = Field(
default_factory=list, description="Список авторов"
)