import graphene

from vbv_lernwelt.assignment.graphql.mutations import AssignmentMutation
from vbv_lernwelt.assignment.graphql.queries import AssignmentQuery
from vbv_lernwelt.competence.graphql.queries import CompetenceCertificateQuery
from vbv_lernwelt.course.graphql.queries import CourseQuery
from vbv_lernwelt.course_session.graphql.mutations import CourseSessionMutation
from vbv_lernwelt.course_session.graphql.queries import CourseSessionQuery
from vbv_lernwelt.dashboard.graphql.queries import DashboardQuery
from vbv_lernwelt.feedback.graphql.mutations import FeedbackMutation
from vbv_lernwelt.learnpath.graphql.queries import LearningPathQuery


class Query(
    AssignmentQuery,
    CompetenceCertificateQuery,
    CourseQuery,
    CourseSessionQuery,
    LearningPathQuery,
    DashboardQuery,
    graphene.ObjectType,
):
    pass


class Mutation(
    AssignmentMutation, CourseSessionMutation, FeedbackMutation, graphene.ObjectType
):
    pass


schema = graphene.Schema(query=Query, mutation=Mutation, auto_camelcase=False)
