41 lines
1.7 KiB
Python
41 lines
1.7 KiB
Python
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") # ← 就加了这一行 |