from __future__ import absolute_import
from flask_sqlalchemy.query import Query as BaseQuery

from dostadmin import db
from dostadmin.mixins import TimestampMixin


class ChurnedCampaignQuery(BaseQuery):
    def get_details_by_id(self, churned_campaign_id):
        return self.filter(ChurnedCampaign.id == churned_campaign_id).first()


class ChurnedCampaign(TimestampMixin, db.Model):
    __tablename__ = "churned_campaign"
    query_class = ChurnedCampaignQuery

    class Status:
        COMPLETED = "completed"
        FAILED_CHURNED = "failed_churned"

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100))
    content_id = db.Column(db.Integer)
    content_version_id = db.Column(db.Integer)
    deploy_datetime = db.Column(db.DateTime)
    experience_id = db.Column(db.Integer)
    status = db.Column(db.String(30))
    scheduled_by = db.Column(db.String(30))
    user_id = db.Column(db.Integer)
    program_id = db.Column(db.Integer)
    programseq_id = db.Column(db.Integer)
    timecategory_id = db.Column(db.Integer)
    provider_number = db.Column(db.String(20))
    agent_number = db.Column(db.String(20))
    user_number = db.Column(db.String(20))
    call_status = db.Column(db.String(30))
