export type Maybe = T | null; export type Exact = { [K in keyof T]: T[K] }; export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { ID: string; String: string; Boolean: boolean; Int: number; Float: number; /** An ISO 8601-encoded date */ ISO8601Date: any; /** An ISO 8601-encoded datetime */ ISO8601DateTime: any; }; export type Axis = { __typename?: 'Axis'; id: Scalars['ID']; name: Scalars['String']; subjects: Array; }; export type Category = { __typename?: 'Category'; id: Scalars['ID']; name: Scalars['String']; subjects: Array; }; /** Autogenerated input type of CreateQuestion */ export type CreateQuestionInput = { question: QuestionCreateInput; /** A unique identifier for the client performing the mutation. */ clientMutationId?: Maybe; }; /** Autogenerated return type of CreateQuestion */ export type CreateQuestionPayload = { __typename?: 'CreateQuestionPayload'; /** A unique identifier for the client performing the mutation. */ clientMutationId?: Maybe; /** Errors encountered during execution of the mutation. */ errors: Array; question?: Maybe; }; /** Autogenerated input type of CreateReviewMessage */ export type CreateReviewMessageInput = { message: ReviewMessageInput; /** A unique identifier for the client performing the mutation. */ clientMutationId?: Maybe; }; /** Autogenerated return type of CreateReviewMessage */ export type CreateReviewMessagePayload = { __typename?: 'CreateReviewMessagePayload'; /** A unique identifier for the client performing the mutation. */ clientMutationId?: Maybe; /** Errors encountered during execution of the mutation. */ errors: Array; reviewMessage?: Maybe; }; export type DateRangeInput = { startAt: Scalars['ISO8601Date']; endAt: Scalars['ISO8601Date']; }; /** Autogenerated input type of DestroyQuestion */ export type DestroyQuestionInput = { questionId: Scalars['ID']; /** A unique identifier for the client performing the mutation. */ clientMutationId?: Maybe; }; /** Autogenerated return type of DestroyQuestion */ export type DestroyQuestionPayload = { __typename?: 'DestroyQuestionPayload'; /** A unique identifier for the client performing the mutation. */ clientMutationId?: Maybe; deletedQuestionId?: Maybe; /** Errors encountered during execution of the mutation. */ errors: Array; }; /** Autogenerated input type of FinishQuestion */ export type FinishQuestionInput = { questionId: Scalars['ID']; /** A unique identifier for the client performing the mutation. */ clientMutationId?: Maybe; }; /** Autogenerated return type of FinishQuestion */ export type FinishQuestionPayload = { __typename?: 'FinishQuestionPayload'; /** A unique identifier for the client performing the mutation. */ clientMutationId?: Maybe; /** Errors encountered during execution of the mutation. */ errors: Array; question?: Maybe; }; export type Mutation = { __typename?: 'Mutation'; createQuestion?: Maybe; createReviewMessage?: Maybe; destroyQuestion?: Maybe; finishQuestion?: Maybe; updateQuestion?: Maybe; }; export type MutationCreateQuestionArgs = { input: CreateQuestionInput; }; export type MutationCreateReviewMessageArgs = { input: CreateReviewMessageInput; }; export type MutationDestroyQuestionArgs = { input: DestroyQuestionInput; }; export type MutationFinishQuestionArgs = { input: FinishQuestionInput; }; export type MutationUpdateQuestionArgs = { input: UpdateQuestionInput; }; /** An object with an ID. */ export type Node = { /** ID of the object. */ id: Scalars['ID']; }; /** Information about pagination in a connection. */ export type PageInfo = { __typename?: 'PageInfo'; /** When paginating forwards, the cursor to continue. */ endCursor?: Maybe; /** When paginating forwards, are there more items? */ hasNextPage: Scalars['Boolean']; /** When paginating backwards, are there more items? */ hasPreviousPage: Scalars['Boolean']; /** When paginating backwards, the cursor to continue. */ startCursor?: Maybe; }; export type Query = { __typename?: 'Query'; currentUser?: Maybe; /** Fetches an object given its ID. */ node?: Maybe; /** Fetches a list of objects given a list of IDs. */ nodes: Array>; questions: QuestionConnection; reviewers: UserConnection; subjects: SubjectConnection; }; export type QueryNodeArgs = { id: Scalars['ID']; }; export type QueryNodesArgs = { ids: Array; }; export type QueryQuestionsArgs = { after?: Maybe; before?: Maybe; first?: Maybe; last?: Maybe; where?: Maybe; }; export type QueryReviewersArgs = { after?: Maybe; before?: Maybe; first?: Maybe; last?: Maybe; }; export type QuerySubjectsArgs = { after?: Maybe; before?: Maybe; first?: Maybe; last?: Maybe; }; export type Question = Node & { __typename?: 'Question'; alternatives: Array; authorship?: Maybe; authorshipYear?: Maybe; bloomTaxonomy?: Maybe; body?: Maybe; checkType?: Maybe; createdAt: Scalars['ISO8601DateTime']; difficulty?: Maybe; explanation?: Maybe; id: Scalars['ID']; instruction?: Maybe; intention?: Maybe; references?: Maybe; reviewMessages: ReviewMessageConnection; reviewRequests: Array; reviewer?: Maybe; status?: Maybe; subject?: Maybe; support?: Maybe; updatedAt: Scalars['ISO8601DateTime']; user: User; }; export type QuestionReviewMessagesArgs = { after?: Maybe; before?: Maybe; first?: Maybe; last?: Maybe; }; export type QuestionAlternative = { __typename?: 'QuestionAlternative'; correct: Scalars['Boolean']; text?: Maybe; }; export type QuestionAlternativeInput = { correct?: Maybe; text?: Maybe; }; export enum QuestionBloomTaxonomy { Remember = 'remember', Understand = 'understand', Apply = 'apply', Analyze = 'analyze', Evaluate = 'evaluate', Create = 'create' } export enum QuestionCheckType { UniqueAnswer = 'unique_answer', IncompleteAffirmation = 'incomplete_affirmation', MultipleAnswer = 'multiple_answer', NegativeFocus = 'negative_focus', AssertionAndReason = 'assertion_and_reason', Gap = 'gap', Interpretation = 'interpretation', Association = 'association', OrderingOrRanking = 'ordering_or_ranking', ConstantAlternatives = 'constant_alternatives' } /** The connection type for Question. */ export type QuestionConnection = { __typename?: 'QuestionConnection'; /** A list of edges. */ edges: Array; /** A list of nodes. */ nodes: Array; /** Information to aid in pagination. */ pageInfo: PageInfo; totalCount: Scalars['Int']; }; export type QuestionCreateInput = { instruction: Scalars['String']; support: Scalars['String']; body: Scalars['String']; alternatives: Array; explanation: Scalars['String']; references: Scalars['String']; authorshipYear: Scalars['String']; authorship: Scalars['String']; intention?: Maybe; status: QuestionStatus; checkType?: Maybe; difficulty?: Maybe; bloomTaxonomy?: Maybe; subjectId?: Maybe; reviewerUserId?: Maybe; }; export enum QuestionDifficulty { Easy = 'easy', Medium = 'medium', Hard = 'hard' } /** An edge in a connection. */ export type QuestionEdge = { __typename?: 'QuestionEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']; /** The item at the end of the edge. */ node?: Maybe; }; export enum QuestionStatus { Draft = 'DRAFT', WaitingReview = 'WAITING_REVIEW', WithRequestedChanges = 'WITH_REQUESTED_CHANGES', Approved = 'APPROVED', Registered = 'REGISTERED' } export type QuestionUpdateInput = { instruction: Scalars['String']; support: Scalars['String']; body: Scalars['String']; alternatives: Array; explanation: Scalars['String']; references: Scalars['String']; authorshipYear: Scalars['String']; authorship: Scalars['String']; intention?: Maybe; status: QuestionStatus; checkType?: Maybe; difficulty?: Maybe; bloomTaxonomy?: Maybe; subjectId?: Maybe; reviewerUserId?: Maybe; id: Scalars['ID']; }; export type QuestionWhereInput = { checkType?: Maybe>; status?: Maybe>; difficulty?: Maybe>; bloomTaxonomy?: Maybe>; authorshipYear?: Maybe>; subjectId?: Maybe; userId?: Maybe; createDate?: Maybe; unifesoAuthorship?: Maybe; }; export type ReviewMessage = { __typename?: 'ReviewMessage'; createdAt: Scalars['ISO8601DateTime']; feedbackType: ReviewMessageFeedbackType; id: Scalars['ID']; question: Question; text: Scalars['String']; updatedAt: Scalars['ISO8601DateTime']; user: User; }; /** The connection type for ReviewMessage. */ export type ReviewMessageConnection = { __typename?: 'ReviewMessageConnection'; /** A list of edges. */ edges: Array; /** A list of nodes. */ nodes: Array; /** Information to aid in pagination. */ pageInfo: PageInfo; totalCount: Scalars['Int']; }; /** An edge in a connection. */ export type ReviewMessageEdge = { __typename?: 'ReviewMessageEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']; /** The item at the end of the edge. */ node?: Maybe; }; export enum ReviewMessageFeedbackType { RequestChanges = 'REQUEST_CHANGES', Approve = 'APPROVE', Answer = 'ANSWER' } export type ReviewMessageInput = { feedbackType: ReviewMessageFeedbackType; text: Scalars['String']; questionId: Scalars['ID']; }; export type ReviewRequest = { __typename?: 'ReviewRequest'; answered: Scalars['Boolean']; id: Scalars['ID']; question: Question; user: User; }; /** The connection type for ReviewRequest. */ export type ReviewRequestConnection = { __typename?: 'ReviewRequestConnection'; /** A list of edges. */ edges: Array; /** A list of nodes. */ nodes: Array; /** Information to aid in pagination. */ pageInfo: PageInfo; totalCount: Scalars['Int']; }; /** An edge in a connection. */ export type ReviewRequestEdge = { __typename?: 'ReviewRequestEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']; /** The item at the end of the edge. */ node?: Maybe; }; export type Subject = { __typename?: 'Subject'; axis: Axis; category: Category; id: Scalars['ID']; name: Scalars['String']; questions: QuestionConnection; }; export type SubjectQuestionsArgs = { after?: Maybe; before?: Maybe; first?: Maybe; last?: Maybe; where?: Maybe; }; /** The connection type for Subject. */ export type SubjectConnection = { __typename?: 'SubjectConnection'; /** A list of edges. */ edges: Array; /** A list of nodes. */ nodes: Array; /** Information to aid in pagination. */ pageInfo: PageInfo; totalCount: Scalars['Int']; }; /** An edge in a connection. */ export type SubjectEdge = { __typename?: 'SubjectEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']; /** The item at the end of the edge. */ node?: Maybe; }; /** Autogenerated input type of UpdateQuestion */ export type UpdateQuestionInput = { question: QuestionUpdateInput; /** A unique identifier for the client performing the mutation. */ clientMutationId?: Maybe; }; /** Autogenerated return type of UpdateQuestion */ export type UpdateQuestionPayload = { __typename?: 'UpdateQuestionPayload'; /** A unique identifier for the client performing the mutation. */ clientMutationId?: Maybe; /** Errors encountered during execution of the mutation. */ errors: Array; question?: Maybe; }; export type User = { __typename?: 'User'; activeReviewRequests: ReviewRequestConnection; avatarUrl?: Maybe; email: Scalars['String']; id: Scalars['ID']; inactiveReviewRequests: ReviewRequestConnection; name: Scalars['String']; roles: Array; }; export type UserActiveReviewRequestsArgs = { after?: Maybe; before?: Maybe; first?: Maybe; last?: Maybe; }; export type UserInactiveReviewRequestsArgs = { after?: Maybe; before?: Maybe; first?: Maybe; last?: Maybe; }; /** The connection type for User. */ export type UserConnection = { __typename?: 'UserConnection'; /** A list of edges. */ edges: Array; /** A list of nodes. */ nodes: Array; /** Information to aid in pagination. */ pageInfo: PageInfo; totalCount: Scalars['Int']; }; /** An edge in a connection. */ export type UserEdge = { __typename?: 'UserEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']; /** The item at the end of the edge. */ node?: Maybe; }; export enum UserRole { Admin = 'admin', Teacher = 'teacher', Nde = 'nde', Coordinator = 'coordinator', CenterDirector = 'center_director', ProRector = 'pro_rector' }