blob: ce25287dc5ac82dab03ff0191fdd331dff4d3b7e [file] [log] [blame]
TRM-codingd1cbf672025-06-18 15:15:08 +08001# models/comment.py
2from extensions import db
3from datetime import datetime
4
5class Comment(db.Model):
6 __tablename__ = 'comments'
7
8 id = db.Column(db.Integer, primary_key=True)
9 post_id = db.Column(db.Integer, db.ForeignKey('posts.id', ondelete='CASCADE'), nullable=False)
10 user_id = db.Column(db.Integer, db.ForeignKey('users.id', ondelete='CASCADE'), nullable=False)
11 parent_id = db.Column(db.Integer, db.ForeignKey('comments.id', ondelete='CASCADE'))
12 content = db.Column(db.Text, nullable=False)
13 status = db.Column(db.Enum('active', 'deleted'), default='active', nullable=False)
14 created_at = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
15 updated_at = db.Column(db.DateTime, default=datetime.utcnow,
16 onupdate=datetime.utcnow, nullable=False)
17
18 # self-referential replies
19 replies = db.relationship(
20 'Comment',
21 backref=db.backref('parent', remote_side=[id]),
22 lazy='dynamic',
23 cascade='all, delete-orphan'
24 )