from datetime import datetime

from model import db


class Posting(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    bvid = db.Column(db.String(255))
    name = db.Column(db.String(255))
    description = db.Column(db.Text)
    state = db.Column(db.SmallInteger, nullable=False, default=0)
    create_time = db.Column(db.DateTime, nullable=False, default=datetime.now)
    update_time = db.Column(db.DateTime, nullable=False, default=datetime.now, onupdate=datetime.now)

    def to_json(self):
        return {
            "id": self.id,
            "bvid": self.bvid,
            "name": self.name,
            "description": self.description,
            "state": self.state,
            "create_time": self.create_time.strftime("%Y/%m/%d %H:%M:%S") if self.create_time else None,
            "update_time": self.update_time.strftime("%Y/%m/%d %H:%M:%S") if self.update_time else None,
            "video_parts": [i.to_json() for i in self.video_parts.all()]
        }