from collaborators.models import Access
from institute.models import Institute
from question.models import Question
from question_bank.models import QuestionBank


def check_user_limitations(model, user):
    if model == Institute:
        if Institute.objects.filter(user=user, sandbox=False).count() >= user.best_max_institutes_per_user:
            return False
    else:
        # TODO critical error
        return False
    return True


def check_institute_limitations(model, institute, question_bank=None):
    if model == Access:
        if Access.objects.filter(institute=institute).count() >= institute.best_max_collaborators_per_institute:
            return False
    elif model == QuestionBank:
        if QuestionBank.objects.filter(institute=institute).count() >= institute.best_max_question_banks_per_institute:
            return False
    elif model == Question:
        if Question.objects.filter(question_bank=question_bank).count() >= institute.best_max_questions_per_question_bank:
            return False
    else:
        # TODO critical error
        return False
    return True
