"""Favorite (saved listing). One row per user+listing pair.""" from datetime import datetime from app.extensions import db class Favorite(db.Model): __tablename__ = "favorites" __table_args__ = ( db.UniqueConstraint("user_id", "listing_id", name="uq_fav_user_listing"), ) id = db.Column(db.BigInteger().with_variant(db.Integer, "sqlite"), primary_key=True, autoincrement=True) user_id = db.Column(db.BigInteger().with_variant(db.Integer, "sqlite"), db.ForeignKey("users.id"), nullable=False, index=True) listing_id = db.Column(db.BigInteger().with_variant(db.Integer, "sqlite"), db.ForeignKey("listings.id"), nullable=False, index=True) created_at = db.Column(db.DateTime, default=datetime.utcnow, nullable=False) user = db.relationship("User", backref=db.backref("favorites", lazy="dynamic")) listing = db.relationship("Listing", backref=db.backref("favorited_by", lazy="dynamic")) def __repr__(self): return f""