Третий стрим
This commit is contained in:
9
app/models/__init__.py
Normal file
9
app/models/__init__.py
Normal file
@ -0,0 +1,9 @@
|
||||
from .base import Base
|
||||
from .user import User
|
||||
from .favorites import Favorites
|
||||
|
||||
__all__ = [
|
||||
"Base",
|
||||
"User",
|
||||
"Favorites",
|
||||
]
|
7
app/models/base.py
Normal file
7
app/models/base.py
Normal file
@ -0,0 +1,7 @@
|
||||
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
|
||||
|
||||
|
||||
class Base(DeclarativeBase):
|
||||
__abstract__ = True
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
|
17
app/models/favorites.py
Normal file
17
app/models/favorites.py
Normal file
@ -0,0 +1,17 @@
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import String, ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
|
||||
from app.models.base import Base
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .user import User
|
||||
|
||||
|
||||
class Favorites(Base):
|
||||
__tablename__ = "favorites"
|
||||
|
||||
command: Mapped[str] = mapped_column(String(200), nullable=False)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("user.id"))
|
||||
user: Mapped["User"] = relationship("User", back_populates="favorites")
|
18
app/models/user.py
Normal file
18
app/models/user.py
Normal file
@ -0,0 +1,18 @@
|
||||
from datetime import datetime
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import BigInteger, func
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
|
||||
from app.models.base import Base
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .favorites import Favorites
|
||||
|
||||
|
||||
class User(Base):
|
||||
__tablename__ = "user"
|
||||
|
||||
telegram_id: Mapped[int] = mapped_column(BigInteger, nullable=False)
|
||||
added_at: Mapped[datetime] = mapped_column(server_default=func.now(), default=datetime.now)
|
||||
favorites: Mapped["Favorites"] = relationship("Favorites", back_populates="user")
|
Reference in New Issue
Block a user