"""点赞/收藏模型""" from sqlalchemy import Column, Integer, DateTime, ForeignKey, UniqueConstraint from sqlalchemy.sql import func from database import Base class Like(Base): __tablename__ = "likes" id = Column(Integer, primary_key=True, index=True) post_id = Column(Integer, ForeignKey("posts.id"), nullable=False, index=True) user_id = Column(Integer, ForeignKey("users.id"), nullable=False) created_at = Column(DateTime(timezone=True), server_default=func.now()) __table_args__ = ( UniqueConstraint("post_id", "user_id", name="uq_like_post_user"), ) class Collect(Base): __tablename__ = "collects" id = Column(Integer, primary_key=True, index=True) post_id = Column(Integer, ForeignKey("posts.id"), nullable=False, index=True) user_id = Column(Integer, ForeignKey("users.id"), nullable=False) created_at = Column(DateTime(timezone=True), server_default=func.now()) __table_args__ = ( UniqueConstraint("post_id", "user_id", name="uq_collect_post_user"), ) class ProjectCollect(Base): """开源项目收藏""" __tablename__ = "project_collects" id = Column(Integer, primary_key=True, index=True) project_id = Column(Integer, ForeignKey("projects.id"), nullable=False, index=True) user_id = Column(Integer, ForeignKey("users.id"), nullable=False) created_at = Column(DateTime(timezone=True), server_default=func.now()) __table_args__ = ( UniqueConstraint("project_id", "user_id", name="uq_project_collect_user"), )