blob: ce25287dc5ac82dab03ff0191fdd331dff4d3b7e [file] [log] [blame] [edit]
# models/comment.py
from extensions import db
from datetime import datetime
class Comment(db.Model):
__tablename__ = 'comments'
id = db.Column(db.Integer, primary_key=True)
post_id = db.Column(db.Integer, db.ForeignKey('posts.id', ondelete='CASCADE'), nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey('users.id', ondelete='CASCADE'), nullable=False)
parent_id = db.Column(db.Integer, db.ForeignKey('comments.id', ondelete='CASCADE'))
content = db.Column(db.Text, nullable=False)
status = db.Column(db.Enum('active', 'deleted'), default='active', nullable=False)
created_at = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
updated_at = db.Column(db.DateTime, default=datetime.utcnow,
onupdate=datetime.utcnow, nullable=False)
# self-referential replies
replies = db.relationship(
'Comment',
backref=db.backref('parent', remote_side=[id]),
lazy='dynamic',
cascade='all, delete-orphan'
)