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


class UserExperimentQuery(BaseQuery):
    def get_by_id(self, user_experiment_id):
        return self.filter(UserExperiment.id == user_experiment_id).first()

    def get_by_experience_id(self, experience_id):
        return self.filter(UserExperiment.experience_id == experience_id).first()

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


class UserExperiment(TimestampMixin, db.Model):
    __tablename__ = "user_experiment"
    query_class = UserExperimentQuery

    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, nullable=False)
    experience_id = db.Column(db.Integer, nullable=False)
    phone = db.Column(db.String(20), nullable=False)
    experiment_name = db.Column(db.String(100))
    experiment_group_name = db.Column(db.String(100))
