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


class ChannelQuery(BaseQuery):
    def get_by_name(self, name):
        return self.filter(Channel.name == name).first()

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


class Channel(TimestampMixin, db.Model):
    __tablename__ = "channel"
    query_class = ChannelQuery

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), unique=False)

    partners = db.relationship(
        "Partner", backref="channel", primaryjoin="Partner.channel_id == Channel.id"
    )
