mirror of
https://github.com/wowlikon/LibraryAPI.git
synced 2025-12-11 21:30:46 +00:00
31 lines
1.2 KiB
Python
31 lines
1.2 KiB
Python
from sqlmodel import SQLModel, Field
|
|
from typing import List
|
|
|
|
from library_service.models.dto.author import AuthorRead
|
|
from library_service.models.dto.book import BookRead
|
|
from library_service.models.dto.genre import GenreRead
|
|
|
|
class AuthorBookLink(SQLModel, table=True):
|
|
author_id: int | None = Field(default=None, foreign_key="author.id", primary_key=True)
|
|
book_id: int | None = Field(default=None, foreign_key="book.id", primary_key=True)
|
|
|
|
class GenreBookLink(SQLModel, table=True):
|
|
genre_id: int | None = Field(default=None, foreign_key="genre.id", primary_key=True)
|
|
book_id: int | None = Field(default=None, foreign_key="book.id", primary_key=True)
|
|
|
|
class AuthorWithBooks(AuthorRead):
|
|
books: List[BookRead] = Field(default_factory=list)
|
|
|
|
class BookWithAuthors(BookRead):
|
|
authors: List[AuthorRead] = Field(default_factory=list)
|
|
|
|
class BookWithGenres(BookRead):
|
|
genres: List[GenreRead] = Field(default_factory=list)
|
|
|
|
class GenreWithBooks(GenreRead):
|
|
books: List[BookRead] = Field(default_factory=list)
|
|
|
|
class BookWithAuthorsAndGenres(BookRead):
|
|
authors: List[AuthorRead] = Field(default_factory=list)
|
|
genres: List[GenreRead] = Field(default_factory=list)
|