/
outthevoid
/
python_microblogging_service_project
Обзор
Документация
Войти
/
outthevoid
/
python_microblogging_service_project
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
app/models/like_model.py
56 строк
2 KB
VladimirChukavin
Revert "Вернул проект в исходное состояние."
07 апр 2026, 14:01
07 апр 2026, 14:01
7531b60
Код
Авторство
О чём код?
from typing import TYPE_CHECKING from sqlalchemy import ForeignKey, UniqueConstraint from sqlalchemy.orm import Mapped, mapped_column, relationship from app.database.base import Base if TYPE_CHECKING: from app.models.tweet_model import Tweet from app.models.user_model import User class Like(Base): """ ORM-модель отметки «нравится» для твита. Класс представляет связь «лайк» между пользователем и твитом, обеспечивая уникальность пары пользователь–твит и каскадное удаление связанных записей. :ivar id: Уникальный идентификатор лайка. :vartype id: int :ivar user_id: Идентификатор пользователя, поставившего лайк. :vartype user_id: int :ivar tweet_id: Идентификатор твита, которому поставлен лайк. :vartype tweet_id: int :ivar user: Связанный объект пользователя. :vartype user: app.models.user_model.User :ivar tweet: Связанный объект твита. :vartype tweet: app.models.tweet_model.Tweet """ id: Mapped[int] = mapped_column(primary_key=True) user_id: Mapped[int] = mapped_column(ForeignKey("users.id", ondelete="CASCADE")) tweet_id: Mapped[int] = mapped_column(ForeignKey("tweets.id", ondelete="CASCADE")) __table_args__ = ( UniqueConstraint("user_id", "tweet_id", name="unique_tweet_like_pair"), ) user: Mapped["User"] = relationship("User", back_populates="likes") tweet: Mapped["Tweet"] = relationship("Tweet", back_populates="likes") def __repr__(self): """ Возвращает строковое представление объекта лайка. :returns: Строка с идентификаторами лайка, пользователя и твита. :rtype: str """ return ( f"Tweet(id={self.id}, " f"user_id={self.user_id}, " f"tweet_id={self.tweet_id})" )