"""This module contains the managers for the ``questionnaires`` app"""

from polymorphic.managers import PolymorphicManager, PolymorphicQuerySet

from mtp.discrete_apps.versionable.managers import (
    PolymorphicManagerForDependency,
    PolymorphicQuerySetForDependency,
)

from mtp.apps.sync.managers import SyncableManager, SyncableQuerySet


class DependencyQuestionQuerySet(SyncableQuerySet, PolymorphicQuerySetForDependency):
    """QuerySet for the ``Question`` model"""

    pass


class DependencyQuestionManager(SyncableManager, PolymorphicManagerForDependency):
    """Manager for the ``Question`` model"""

    pass


class DependencyChoiceQuerySet(SyncableQuerySet):
    """QuerySet for the ``Choice`` model"""

    pass


class DependencyChoiceManager(SyncableManager):
    """Manager for the ``Choice`` model"""

    pass


class AnswerQuerySet(SyncableQuerySet, PolymorphicQuerySet):
    """QuerySet for the ``Answer`` model"""

    pass


class AnswerManager(SyncableManager, PolymorphicManager):
    """Manager for the ``Answer`` model"""

    pass
