from __future__ import absolute_import
from flask_sqlalchemy.query import Query as BaseQuery
from dostadmin import db
from dostadmin.mixins import TimestampMixin


class TopicQuery(BaseQuery):
    def get_topic_by_id(self, topic_id):
        return self.filter(TopicQuery.id == topic_id).first()

    def get_all_topic(self):
        return self.all()


class Topic(TimestampMixin, db.Model):
    __tablename__ = "topic"
    query_class = TopicQuery

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100))

    content = db.relationship(
        "Content",
        backref="content",
        primaryjoin="Topic.id == Content.topic_id",
    )
