export type Maybe = T | null; export type InputMaybe = Maybe; 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 }; export type MakeEmpty = { [_ in K]?: never }; export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { ID: { input: string; output: string; } String: { input: string; output: string; } Boolean: { input: boolean; output: boolean; } Int: { input: number; output: number; } Float: { input: number; output: number; } /** An ISO 8601-encoded date */ ISO8601Date: { input: any; output: any; } /** An ISO 8601-encoded datetime */ ISO8601DateTime: { input: any; output: any; } }; export type Axis = { __typename?: 'Axis'; id: Scalars['ID']['output']; name: Scalars['String']['output']; subjects: Array; }; export type Category = { __typename?: 'Category'; id: Scalars['ID']['output']; name: Scalars['String']['output']; subjects: Array; }; /** The connection type for Category. */ export type CategoryConnection = { __typename?: 'CategoryConnection'; /** A list of edges. */ edges: Array; /** A list of nodes. */ nodes: Array; /** Information to aid in pagination. */ pageInfo: PageInfo; totalCount: Scalars['Int']['output']; }; /** An edge in a connection. */ export type CategoryEdge = { __typename?: 'CategoryEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']['output']; /** The item at the end of the edge. */ node?: Maybe; }; /** Autogenerated input type of CreateQuestion */ export type CreateQuestionInput = { /** A unique identifier for the client performing the mutation. */ clientMutationId?: InputMaybe; question: QuestionCreateInput; }; /** 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 = { /** A unique identifier for the client performing the mutation. */ clientMutationId?: InputMaybe; message: ReviewMessageInput; }; /** 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 = { endAt: Scalars['ISO8601Date']['input']; startAt: Scalars['ISO8601Date']['input']; }; /** Autogenerated input type of DestroyQuestion */ export type DestroyQuestionInput = { /** A unique identifier for the client performing the mutation. */ clientMutationId?: InputMaybe; questionId: Scalars['ID']['input']; }; /** 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 = { /** A unique identifier for the client performing the mutation. */ clientMutationId?: InputMaybe; questionId: Scalars['ID']['input']; }; /** 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']['output']; }; /** 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']['output']; /** When paginating backwards, are there more items? */ hasPreviousPage: Scalars['Boolean']['output']; /** When paginating backwards, the cursor to continue. */ startCursor?: Maybe; }; export type Query = { __typename?: 'Query'; categories: CategoryConnection; currentUser?: Maybe; /** Fetches an object given its ID. */ node?: Maybe; /** Fetches a list of objects given a list of IDs. */ nodes: Array>; questionFilterOptions: QuestionFilterOptions; questions: QuestionConnection; reviewers: UserConnection; subjects: SubjectConnection; }; export type QueryCategoriesArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; export type QueryNodeArgs = { id: Scalars['ID']['input']; }; export type QueryNodesArgs = { ids: Array; }; export type QueryQuestionsArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; where?: InputMaybe; }; export type QueryReviewersArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; export type QuerySubjectsArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; export type Question = Node & { __typename?: 'Question'; alternatives: Array; authorship?: Maybe; authorshipYear?: Maybe; bloomTaxonomy?: Maybe; body?: Maybe; checkType?: Maybe; createdAt: Scalars['ISO8601DateTime']['output']; difficulty?: Maybe; explanation?: Maybe; id: Scalars['ID']['output']; instruction?: Maybe; intention?: Maybe; references?: Maybe; reviewMessages: ReviewMessageConnection; reviewer?: Maybe; status: QuestionStatus; subject?: Maybe; support?: Maybe; updatedAt: Scalars['ISO8601DateTime']['output']; user: User; }; export type QuestionReviewMessagesArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; export type QuestionAlternative = { __typename?: 'QuestionAlternative'; correct: Scalars['Boolean']['output']; text?: Maybe; }; export type QuestionAlternativeInput = { correct?: InputMaybe; text?: InputMaybe; }; export enum QuestionBloomTaxonomy { Analyze = 'ANALYZE', Apply = 'APPLY', Create = 'CREATE', Evaluate = 'EVALUATE', Remember = 'REMEMBER', Understand = 'UNDERSTAND' } export enum QuestionCheckType { AssertionAndReason = 'ASSERTION_AND_REASON', Association = 'ASSOCIATION', ConstantAlternatives = 'CONSTANT_ALTERNATIVES', Gap = 'GAP', IncompleteAffirmation = 'INCOMPLETE_AFFIRMATION', Interpretation = 'INTERPRETATION', MultipleAnswer = 'MULTIPLE_ANSWER', NegativeFocus = 'NEGATIVE_FOCUS', OrderingOrRanking = 'ORDERING_OR_RANKING', UniqueAnswer = 'UNIQUE_ANSWER' } /** 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']['output']; }; export type QuestionCreateInput = { alternatives: Array; authorship: Scalars['String']['input']; authorshipYear: Scalars['String']['input']; bloomTaxonomy?: InputMaybe; body: Scalars['String']['input']; checkType?: InputMaybe; difficulty?: InputMaybe; explanation: Scalars['String']['input']; instruction: Scalars['String']['input']; intention?: InputMaybe; references: Scalars['String']['input']; reviewerUserId?: InputMaybe; status: QuestionStatus; subjectId?: InputMaybe; support: Scalars['String']['input']; }; export enum QuestionDifficulty { Easy = 'EASY', Hard = 'HARD', Medium = 'MEDIUM' } /** An edge in a connection. */ export type QuestionEdge = { __typename?: 'QuestionEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']['output']; /** The item at the end of the edge. */ node?: Maybe; }; export type QuestionFilterOptions = { __typename?: 'QuestionFilterOptions'; years: Array; }; export enum QuestionStatus { Approved = 'APPROVED', Draft = 'DRAFT', Registered = 'REGISTERED', WaitingReview = 'WAITING_REVIEW', WithRequestedChanges = 'WITH_REQUESTED_CHANGES' } export type QuestionUpdateInput = { alternatives: Array; authorship: Scalars['String']['input']; authorshipYear: Scalars['String']['input']; bloomTaxonomy?: InputMaybe; body: Scalars['String']['input']; checkType?: InputMaybe; difficulty?: InputMaybe; explanation: Scalars['String']['input']; id: Scalars['ID']['input']; instruction: Scalars['String']['input']; intention?: InputMaybe; references: Scalars['String']['input']; reviewerUserId?: InputMaybe; status: QuestionStatus; subjectId?: InputMaybe; support: Scalars['String']['input']; }; export type QuestionWhereInput = { authorshipYear?: InputMaybe>; bloomTaxonomy?: InputMaybe>; checkType?: InputMaybe>; createDate?: InputMaybe; difficulty?: InputMaybe>; status?: InputMaybe>; subjectId?: InputMaybe; unifesoAuthorship?: InputMaybe; userId?: InputMaybe; }; export type ReviewMessage = { __typename?: 'ReviewMessage'; createdAt: Scalars['ISO8601DateTime']['output']; feedbackType: ReviewMessageFeedbackType; id: Scalars['ID']['output']; question: Question; text: Scalars['String']['output']; updatedAt: Scalars['ISO8601DateTime']['output']; 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']['output']; }; /** An edge in a connection. */ export type ReviewMessageEdge = { __typename?: 'ReviewMessageEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']['output']; /** The item at the end of the edge. */ node?: Maybe; }; export enum ReviewMessageFeedbackType { Answer = 'ANSWER', Approve = 'APPROVE', RequestChanges = 'REQUEST_CHANGES' } export type ReviewMessageInput = { feedbackType: ReviewMessageFeedbackType; questionId: Scalars['ID']['input']; text: Scalars['String']['input']; }; export type ReviewRequest = { __typename?: 'ReviewRequest'; answered: Scalars['Boolean']['output']; id: Scalars['ID']['output']; 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']['output']; }; /** An edge in a connection. */ export type ReviewRequestEdge = { __typename?: 'ReviewRequestEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']['output']; /** The item at the end of the edge. */ node?: Maybe; }; export type Subject = { __typename?: 'Subject'; axis: Axis; category: Category; id: Scalars['ID']['output']; name: Scalars['String']['output']; questions: QuestionConnection; }; export type SubjectQuestionsArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; where?: InputMaybe; }; /** 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']['output']; }; /** An edge in a connection. */ export type SubjectEdge = { __typename?: 'SubjectEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']['output']; /** The item at the end of the edge. */ node?: Maybe; }; /** Autogenerated input type of UpdateQuestion */ export type UpdateQuestionInput = { /** A unique identifier for the client performing the mutation. */ clientMutationId?: InputMaybe; question: QuestionUpdateInput; }; /** 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']['output']; id: Scalars['ID']['output']; inactiveReviewRequests: ReviewRequestConnection; name: Scalars['String']['output']; roles: Array; }; export type UserActiveReviewRequestsArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; export type UserInactiveReviewRequestsArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; /** 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']['output']; }; /** An edge in a connection. */ export type UserEdge = { __typename?: 'UserEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']['output']; /** The item at the end of the edge. */ node?: Maybe; }; export enum UserRole { Admin = 'ADMIN', CenterDirector = 'CENTER_DIRECTOR', Coordinator = 'COORDINATOR', Nde = 'NDE', ProRector = 'PRO_RECTOR', Teacher = 'TEACHER' }