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


class GroupVersionQuery(BaseQuery):
    def get_details_by_id(self, group_version_id):
        return self.filter(GroupVersion.id == group_version_id).first()

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


class GroupVersion(TimestampMixin, db.Model):
    __tablename__ = "group_version"
    query_class = GroupVersionQuery

    id = db.Column(db.Integer, primary_key=True)
    group_id = db.Column(db.Integer, db.ForeignKey("groups.id"))
    conditions = db.Column(db.JSON)
    version_number = db.Column(db.Integer)
    is_active_version = db.Column(db.String(30))
