|
| 1 | +import sqlalchemy as sa |
| 2 | +import sqlalchemy.orm |
1 | 3 | from datetime import datetime |
2 | 4 | from sqlalchemy import Integer, String, DateTime |
3 | 5 | from marshmallow import fields, Schema |
4 | 6 | from sqlalchemy.sql import func |
5 | | -import sqlalchemy as sa |
6 | | -import sqlalchemy.orm |
7 | | -from sqlalchemy.orm import Mapped, mapped_column |
| 7 | +from typing import List |
| 8 | +from sqlalchemy.orm import Mapped, mapped_column, relationship |
8 | 9 | from quart import Quart |
9 | 10 | from .base import Base |
10 | | -from .BookModel import BookSchema |
| 11 | +from .BookModel import BookModel, BookSchema |
| 12 | +from .base import Base |
11 | 13 | from . import db |
12 | | -class AuthorModel(db.Model): |
| 14 | +class AuthorModel(Base): |
13 | 15 | """ |
14 | 16 | Author Model |
15 | 17 | """ |
16 | 18 | __tablename__ = 'authors' |
17 | | - id = db.Column(db.Integer, primary_key=True) |
18 | | - firstname = db.Column(db.String(128), nullable=False) |
19 | | - lastname = db.Column(db.String(128), nullable=False) |
20 | | - email = db.Column(db.String(255), unique=True, nullable=False, index=True) |
21 | | - phone = db.Column(db.String(15), unique=True, nullable=True, index=True) |
22 | | - created_at = db.Column(db.DateTime(timezone=True)) |
23 | | - modified_at = db.Column(db.DateTime(timezone=True)) |
24 | | - books = db.relationship("BookModel", backref="authors", lazy=True) |
| 19 | + id: Mapped[int] = mapped_column(Integer, primary_key=True) |
| 20 | + firstname: Mapped[str] = mapped_column(String(128), nullable=False) |
| 21 | + lastname: Mapped[str] = mapped_column(String(128), nullable=False) |
| 22 | + email: Mapped[str] = mapped_column(String(255), unique=True, nullable=False, index=True) |
| 23 | + phone: Mapped[str] = mapped_column(String(15), unique=True, nullable=True, index=True) |
| 24 | + created_at: Mapped[DateTime] = mapped_column(DateTime(timezone=True)) |
| 25 | + modified_at: Mapped[DateTime] = mapped_column(DateTime(timezone=True)) |
| 26 | + books: Mapped[List["BookModel"]] = relationship(back_populates="authors", lazy=True) |
25 | 27 | # Class constructor |
26 | 28 | def __init__(self, data): |
27 | 29 | """ |
|
0 commit comments