from sqlalchemy import Column, JSON, String, Text, Integer, BigInteger, ForeignKey from sqlalchemy.orm import relationship, Mapped from models.base import AuditBase class Users(AuditBase): name = Column(String(45), nullable=False, comment="昵称") avatar = Column(String(255), nullable=True, comment="头像") records: Mapped[list["Records"]] = relationship("Records", back_populates="user") class Records(AuditBase): user_id = Column(BigInteger, ForeignKey("users.id"), nullable=False, comment="用户id") content = Column(Text, nullable=False, comment="内容") image_list = Column(JSON, nullable=True, default=list, comment="图片") video_list = Column(JSON, nullable=True, default=list, comment="视频") like_count = Column(Integer, nullable=True, default=0, comment="点赞数") comment_count = Column(Integer, nullable=True, default=0, comment="评论数") user: Mapped["Users"] = relationship("Users", back_populates="records") comments: Mapped[list["Comments"]] = relationship( "Comments", back_populates="record", lazy="selectin", ) class Likes(AuditBase): record_id = Column(BigInteger, ForeignKey("records.id"), nullable=False, comment="记录id") user_id = Column(BigInteger, ForeignKey("users.id"), nullable=False, comment="用户id") class Comments(AuditBase): record_id = Column(BigInteger, ForeignKey("records.id"), nullable=False, comment="记录id") user_id = Column(BigInteger, ForeignKey("users.id"), nullable=False, comment="用户id") content = Column(String(255), nullable=False, comment="内容") record: Mapped["Records"] = relationship("Records", back_populates="comments") user: Mapped["Users"] = relationship("Users") # ← 就加了这一行