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


class BehaviorQuery(BaseQuery):
    def find_trigger_with_name(self, name):
        return self.filter(func.lower(Behavior.name) == func.lower(name)).first()

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


class Behavior(TimestampMixin, db.Model):
    __tablename__ = "behavior"
    query_class = BehaviorQuery

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80))
    program_id = db.Column(db.Integer, db.ForeignKey("program.id"))
    priority = db.Column(db.SmallInteger)
    threshold = db.Column(db.SmallInteger)
