/* eslint-disable */
import { gql } from '@apollo/client';
import * as ApolloReactCommon from '@apollo/react-common';
import * as ApolloReactHooks from '@apollo/client';
export type Maybe<T> = T | null;

/** All built-in and custom scalars, mapped to their actual values */
export type Scalars = {
  ID: string,
  String: string,
  Boolean: boolean,
  Int: number,
  Float: number,
  DateTime: any,
};

export type BaseExercise = Node & {
   __typename?: 'BaseExercise',
  id: Scalars['ID'],
  name: Scalars['String'],
  variations?: Maybe<Array<Exercise>>,
};


export type BaseExerciseVariationsArgs = {
  where?: Maybe<ExerciseWhereInput>,
  orderBy?: Maybe<ExerciseOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};

export type BaseExerciseWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<BaseExerciseWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<BaseExerciseWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<BaseExerciseWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  name?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  name_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  name_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  name_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  name_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  name_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  name_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  name_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  name_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  name_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  name_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  name_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  name_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  name_not_ends_with?: Maybe<Scalars['String']>,
  variations_every?: Maybe<ExerciseWhereInput>,
  variations_some?: Maybe<ExerciseWhereInput>,
  variations_none?: Maybe<ExerciseWhereInput>,
};

export type Block = Node & {
   __typename?: 'Block',
  id: Scalars['ID'],
  sequence: Scalars['Int'],
  title: Scalars['String'],
  duration: Scalars['Int'],
  variation?: Maybe<Scalars['String']>,
  format?: Maybe<Format>,
  tracks?: Maybe<Array<Track>>,
  exercises?: Maybe<Array<Exercise>>,
  description: Scalars['String'],
};


export type BlockTracksArgs = {
  where?: Maybe<TrackWhereInput>,
  orderBy?: Maybe<TrackOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type BlockExercisesArgs = {
  where?: Maybe<ExerciseWhereInput>,
  orderBy?: Maybe<ExerciseOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};

export enum BlockOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  SequenceAsc = 'sequence_ASC',
  SequenceDesc = 'sequence_DESC',
  TitleAsc = 'title_ASC',
  TitleDesc = 'title_DESC',
  DurationAsc = 'duration_ASC',
  DurationDesc = 'duration_DESC',
  VariationAsc = 'variation_ASC',
  VariationDesc = 'variation_DESC',
  DescriptionAsc = 'description_ASC',
  DescriptionDesc = 'description_DESC'
}

export type BlockWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<BlockWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<BlockWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<BlockWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  sequence?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  sequence_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  sequence_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  sequence_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  sequence_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  sequence_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  sequence_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  sequence_gte?: Maybe<Scalars['Int']>,
  title?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  title_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  title_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  title_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  title_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  title_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  title_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  title_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  title_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  title_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  title_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  title_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  title_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  title_not_ends_with?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  duration_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  duration_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  duration_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  duration_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  duration_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  duration_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  duration_gte?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  variation_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  variation_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  variation_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  variation_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  variation_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  variation_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  variation_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  variation_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  variation_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  variation_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  variation_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  variation_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  variation_not_ends_with?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  description_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  description_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  description_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  description_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  description_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  description_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  description_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  description_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  description_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  description_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  description_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  description_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  description_not_ends_with?: Maybe<Scalars['String']>,
  format?: Maybe<FormatWhereInput>,
  tracks_every?: Maybe<TrackWhereInput>,
  tracks_some?: Maybe<TrackWhereInput>,
  tracks_none?: Maybe<TrackWhereInput>,
  exercises_every?: Maybe<ExerciseWhereInput>,
  exercises_some?: Maybe<ExerciseWhereInput>,
  exercises_none?: Maybe<ExerciseWhereInput>,
};

export type Comment = Node & {
   __typename?: 'Comment',
  id: Scalars['ID'],
  text: Scalars['String'],
  author: User,
  createdAt: Scalars['DateTime'],
};

export type CommentCreateManyWithoutAuthorInput = {
  create?: Maybe<Array<CommentCreateWithoutAuthorInput>>,
  connect?: Maybe<Array<CommentWhereUniqueInput>>,
};

export type CommentCreateWithoutAuthorInput = {
  id?: Maybe<Scalars['ID']>,
  text: Scalars['String'],
};

export enum CommentOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  TextAsc = 'text_ASC',
  TextDesc = 'text_DESC',
  CreatedAtAsc = 'createdAt_ASC',
  CreatedAtDesc = 'createdAt_DESC'
}

export type CommentScalarWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<CommentScalarWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<CommentScalarWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<CommentScalarWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  text?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  text_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  text_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  text_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  text_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  text_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  text_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  text_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  text_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  text_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  text_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  text_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  text_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  text_not_ends_with?: Maybe<Scalars['String']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
};

export type CommentUpdateManyDataInput = {
  text?: Maybe<Scalars['String']>,
};

export type CommentUpdateManyWithoutAuthorInput = {
  create?: Maybe<Array<CommentCreateWithoutAuthorInput>>,
  connect?: Maybe<Array<CommentWhereUniqueInput>>,
  set?: Maybe<Array<CommentWhereUniqueInput>>,
  disconnect?: Maybe<Array<CommentWhereUniqueInput>>,
  delete?: Maybe<Array<CommentWhereUniqueInput>>,
  update?: Maybe<Array<CommentUpdateWithWhereUniqueWithoutAuthorInput>>,
  updateMany?: Maybe<Array<CommentUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<CommentScalarWhereInput>>,
  upsert?: Maybe<Array<CommentUpsertWithWhereUniqueWithoutAuthorInput>>,
};

export type CommentUpdateManyWithWhereNestedInput = {
  where: CommentScalarWhereInput,
  data: CommentUpdateManyDataInput,
};

export type CommentUpdateWithoutAuthorDataInput = {
  text?: Maybe<Scalars['String']>,
};

export type CommentUpdateWithWhereUniqueWithoutAuthorInput = {
  where: CommentWhereUniqueInput,
  data: CommentUpdateWithoutAuthorDataInput,
};

export type CommentUpsertWithWhereUniqueWithoutAuthorInput = {
  where: CommentWhereUniqueInput,
  update: CommentUpdateWithoutAuthorDataInput,
  create: CommentCreateWithoutAuthorInput,
};

export type CommentWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<CommentWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<CommentWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<CommentWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  text?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  text_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  text_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  text_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  text_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  text_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  text_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  text_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  text_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  text_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  text_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  text_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  text_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  text_not_ends_with?: Maybe<Scalars['String']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
  author?: Maybe<UserWhereInput>,
};

export type CommentWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};


export type Exercise = Node & {
   __typename?: 'Exercise',
  id: Scalars['ID'],
  name: Scalars['String'],
  description: Scalars['String'],
  video: Scalars['String'],
  targets: Array<Scalars['String']>,
  baseExercise: BaseExercise,
};

export enum ExerciseOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  NameAsc = 'name_ASC',
  NameDesc = 'name_DESC',
  DescriptionAsc = 'description_ASC',
  DescriptionDesc = 'description_DESC',
  VideoAsc = 'video_ASC',
  VideoDesc = 'video_DESC'
}

export type ExerciseWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<ExerciseWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<ExerciseWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<ExerciseWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  name?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  name_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  name_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  name_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  name_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  name_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  name_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  name_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  name_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  name_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  name_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  name_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  name_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  name_not_ends_with?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  description_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  description_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  description_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  description_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  description_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  description_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  description_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  description_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  description_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  description_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  description_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  description_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  description_not_ends_with?: Maybe<Scalars['String']>,
  video?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  video_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  video_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  video_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  video_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  video_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  video_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  video_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  video_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  video_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  video_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  video_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  video_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  video_not_ends_with?: Maybe<Scalars['String']>,
  baseExercise?: Maybe<BaseExerciseWhereInput>,
};

export type Format = Node & {
   __typename?: 'Format',
  id: Scalars['ID'],
  name: Scalars['String'],
  description: Scalars['String'],
};

export type FormatWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<FormatWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<FormatWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<FormatWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  name?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  name_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  name_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  name_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  name_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  name_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  name_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  name_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  name_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  name_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  name_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  name_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  name_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  name_not_ends_with?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  description_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  description_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  description_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  description_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  description_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  description_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  description_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  description_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  description_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  description_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  description_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  description_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  description_not_ends_with?: Maybe<Scalars['String']>,
};

export type Mutation = {
   __typename?: 'Mutation',
  createUser: User,
  updateUser?: Maybe<User>,
  deleteUser?: Maybe<User>,
  createTraining: Training,
  createTrainingType: TrainingType,
  createBlock: Block,
  login: User,
  logout: Scalars['String'],
  signup: User,
  requestReset: Scalars['String'],
  resetPassword: User,
};


export type MutationCreateUserArgs = {
  data: UserCreateInput
};


export type MutationUpdateUserArgs = {
  data: UserUpdateInput,
  where: UserWhereUniqueInput
};


export type MutationDeleteUserArgs = {
  where: UserWhereUniqueInput
};


export type MutationCreateTrainingArgs = {
  title: Scalars['String']
};


export type MutationCreateTrainingTypeArgs = {
  name: Scalars['String'],
  description: Scalars['String']
};


export type MutationCreateBlockArgs = {
  sequence: Scalars['Int'],
  title: Scalars['String'],
  duration: Scalars['Int'],
  variation?: Maybe<Scalars['String']>,
  format?: Maybe<Scalars['ID']>,
  tracks: Array<Maybe<Scalars['ID']>>,
  exercises: Array<Maybe<Scalars['ID']>>,
  description: Scalars['String']
};


export type MutationLoginArgs = {
  email: Scalars['String'],
  password: Scalars['String']
};


export type MutationSignupArgs = {
  name: Scalars['String'],
  email: Scalars['String'],
  password: Scalars['String']
};


export type MutationRequestResetArgs = {
  email: Scalars['String']
};


export type MutationResetPasswordArgs = {
  token: Scalars['String'],
  password: Scalars['String']
};

/** An object with an ID */
export type Node = {
  /** The id of the object. */
  id: Scalars['ID'],
};

export enum Permission {
  Admin = 'ADMIN',
  Instructor = 'INSTRUCTOR'
}

export type Query = {
   __typename?: 'Query',
  users: Array<Maybe<User>>,
  training?: Maybe<Training>,
  trainings: Array<Maybe<Training>>,
  trainingTypes: Array<Maybe<TrainingType>>,
  blocks: Array<Maybe<Block>>,
  me: User,
};


export type QueryUsersArgs = {
  where?: Maybe<UserWhereInput>,
  orderBy?: Maybe<UserOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type QueryTrainingArgs = {
  where: TrainingWhereUniqueInput
};


export type QueryTrainingsArgs = {
  where?: Maybe<TrainingWhereInput>,
  orderBy?: Maybe<TrainingOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type QueryTrainingTypesArgs = {
  where?: Maybe<TrainingTypeWhereInput>,
  orderBy?: Maybe<TrainingTypeOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type QueryBlocksArgs = {
  where?: Maybe<BlockWhereInput>,
  orderBy?: Maybe<BlockOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};

export type Rating = Node & {
   __typename?: 'Rating',
  id: Scalars['ID'],
  user: User,
  value: Scalars['Int'],
  comment: Scalars['String'],
  createdAt: Scalars['DateTime'],
};

export type RatingCreateManyWithoutUserInput = {
  create?: Maybe<Array<RatingCreateWithoutUserInput>>,
  connect?: Maybe<Array<RatingWhereUniqueInput>>,
};

export type RatingCreateWithoutUserInput = {
  id?: Maybe<Scalars['ID']>,
  value: Scalars['Int'],
  comment: Scalars['String'],
};

export enum RatingOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  ValueAsc = 'value_ASC',
  ValueDesc = 'value_DESC',
  CommentAsc = 'comment_ASC',
  CommentDesc = 'comment_DESC',
  CreatedAtAsc = 'createdAt_ASC',
  CreatedAtDesc = 'createdAt_DESC'
}

export type RatingScalarWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<RatingScalarWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<RatingScalarWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<RatingScalarWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  value?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  value_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  value_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  value_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  value_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  value_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  value_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  value_gte?: Maybe<Scalars['Int']>,
  comment?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  comment_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  comment_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  comment_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  comment_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  comment_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  comment_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  comment_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  comment_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  comment_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  comment_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  comment_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  comment_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  comment_not_ends_with?: Maybe<Scalars['String']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
};

export type RatingUpdateManyDataInput = {
  value?: Maybe<Scalars['Int']>,
  comment?: Maybe<Scalars['String']>,
};

export type RatingUpdateManyWithoutUserInput = {
  create?: Maybe<Array<RatingCreateWithoutUserInput>>,
  connect?: Maybe<Array<RatingWhereUniqueInput>>,
  set?: Maybe<Array<RatingWhereUniqueInput>>,
  disconnect?: Maybe<Array<RatingWhereUniqueInput>>,
  delete?: Maybe<Array<RatingWhereUniqueInput>>,
  update?: Maybe<Array<RatingUpdateWithWhereUniqueWithoutUserInput>>,
  updateMany?: Maybe<Array<RatingUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<RatingScalarWhereInput>>,
  upsert?: Maybe<Array<RatingUpsertWithWhereUniqueWithoutUserInput>>,
};

export type RatingUpdateManyWithWhereNestedInput = {
  where: RatingScalarWhereInput,
  data: RatingUpdateManyDataInput,
};

export type RatingUpdateWithoutUserDataInput = {
  value?: Maybe<Scalars['Int']>,
  comment?: Maybe<Scalars['String']>,
};

export type RatingUpdateWithWhereUniqueWithoutUserInput = {
  where: RatingWhereUniqueInput,
  data: RatingUpdateWithoutUserDataInput,
};

export type RatingUpsertWithWhereUniqueWithoutUserInput = {
  where: RatingWhereUniqueInput,
  update: RatingUpdateWithoutUserDataInput,
  create: RatingCreateWithoutUserInput,
};

export type RatingWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<RatingWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<RatingWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<RatingWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  value?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  value_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  value_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  value_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  value_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  value_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  value_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  value_gte?: Maybe<Scalars['Int']>,
  comment?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  comment_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  comment_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  comment_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  comment_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  comment_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  comment_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  comment_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  comment_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  comment_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  comment_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  comment_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  comment_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  comment_not_ends_with?: Maybe<Scalars['String']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
  user?: Maybe<UserWhereInput>,
};

export type RatingWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};

export type Track = Node & {
   __typename?: 'Track',
  id: Scalars['ID'],
  title: Scalars['String'],
  artist: Scalars['String'],
  duration: Scalars['Int'],
  link: Scalars['String'],
};

export enum TrackOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  TitleAsc = 'title_ASC',
  TitleDesc = 'title_DESC',
  ArtistAsc = 'artist_ASC',
  ArtistDesc = 'artist_DESC',
  DurationAsc = 'duration_ASC',
  DurationDesc = 'duration_DESC',
  LinkAsc = 'link_ASC',
  LinkDesc = 'link_DESC'
}

export type TrackWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<TrackWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<TrackWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<TrackWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  title?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  title_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  title_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  title_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  title_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  title_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  title_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  title_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  title_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  title_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  title_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  title_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  title_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  title_not_ends_with?: Maybe<Scalars['String']>,
  artist?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  artist_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  artist_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  artist_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  artist_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  artist_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  artist_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  artist_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  artist_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  artist_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  artist_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  artist_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  artist_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  artist_not_ends_with?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  duration_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  duration_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  duration_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  duration_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  duration_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  duration_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  duration_gte?: Maybe<Scalars['Int']>,
  link?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  link_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  link_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  link_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  link_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  link_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  link_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  link_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  link_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  link_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  link_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  link_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  link_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  link_not_ends_with?: Maybe<Scalars['String']>,
};

export type Training = Node & {
   __typename?: 'Training',
  id: Scalars['ID'],
  title: Scalars['String'],
  type: TrainingType,
  content?: Maybe<Array<Block>>,
  createdAt: Scalars['DateTime'],
  trainingDate: Scalars['DateTime'],
  location: Scalars['String'],
  registration?: Maybe<Array<User>>,
  attendance: Scalars['Int'],
  ratings?: Maybe<Array<Rating>>,
  published: Scalars['Boolean'],
};


export type TrainingContentArgs = {
  where?: Maybe<BlockWhereInput>,
  orderBy?: Maybe<BlockOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type TrainingRegistrationArgs = {
  where?: Maybe<UserWhereInput>,
  orderBy?: Maybe<UserOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type TrainingRatingsArgs = {
  where?: Maybe<RatingWhereInput>,
  orderBy?: Maybe<RatingOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};

export enum TrainingOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  TitleAsc = 'title_ASC',
  TitleDesc = 'title_DESC',
  CreatedAtAsc = 'createdAt_ASC',
  CreatedAtDesc = 'createdAt_DESC',
  TrainingDateAsc = 'trainingDate_ASC',
  TrainingDateDesc = 'trainingDate_DESC',
  LocationAsc = 'location_ASC',
  LocationDesc = 'location_DESC',
  AttendanceAsc = 'attendance_ASC',
  AttendanceDesc = 'attendance_DESC',
  PublishedAsc = 'published_ASC',
  PublishedDesc = 'published_DESC'
}

export type TrainingType = Node & {
   __typename?: 'TrainingType',
  id: Scalars['ID'],
  name: Scalars['String'],
  description: Scalars['String'],
};

export enum TrainingTypeOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  NameAsc = 'name_ASC',
  NameDesc = 'name_DESC',
  DescriptionAsc = 'description_ASC',
  DescriptionDesc = 'description_DESC'
}

export type TrainingTypeWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<TrainingTypeWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<TrainingTypeWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<TrainingTypeWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  name?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  name_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  name_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  name_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  name_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  name_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  name_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  name_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  name_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  name_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  name_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  name_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  name_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  name_not_ends_with?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  description_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  description_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  description_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  description_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  description_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  description_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  description_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  description_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  description_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  description_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  description_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  description_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  description_not_ends_with?: Maybe<Scalars['String']>,
};

export type TrainingWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<TrainingWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<TrainingWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<TrainingWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  title?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  title_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  title_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  title_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  title_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  title_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  title_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  title_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  title_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  title_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  title_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  title_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  title_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  title_not_ends_with?: Maybe<Scalars['String']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
  trainingDate?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  trainingDate_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  trainingDate_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  trainingDate_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  trainingDate_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  trainingDate_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  trainingDate_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  trainingDate_gte?: Maybe<Scalars['DateTime']>,
  location?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  location_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  location_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  location_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  location_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  location_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  location_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  location_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  location_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  location_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  location_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  location_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  location_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  location_not_ends_with?: Maybe<Scalars['String']>,
  attendance?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  attendance_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  attendance_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  attendance_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  attendance_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  attendance_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  attendance_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  attendance_gte?: Maybe<Scalars['Int']>,
  published?: Maybe<Scalars['Boolean']>,
  /** All values that are not equal to given value. */
  published_not?: Maybe<Scalars['Boolean']>,
  type?: Maybe<TrainingTypeWhereInput>,
  content_every?: Maybe<BlockWhereInput>,
  content_some?: Maybe<BlockWhereInput>,
  content_none?: Maybe<BlockWhereInput>,
  registration_every?: Maybe<UserWhereInput>,
  registration_some?: Maybe<UserWhereInput>,
  registration_none?: Maybe<UserWhereInput>,
  ratings_every?: Maybe<RatingWhereInput>,
  ratings_some?: Maybe<RatingWhereInput>,
  ratings_none?: Maybe<RatingWhereInput>,
};

export type TrainingWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};

export type User = Node & {
   __typename?: 'User',
  id: Scalars['ID'],
  email: Scalars['String'],
  name: Scalars['String'],
  password: Scalars['String'],
  resetToken?: Maybe<Scalars['String']>,
  resetTokenExpiry?: Maybe<Scalars['Float']>,
  createdAt: Scalars['DateTime'],
  comments?: Maybe<Array<Comment>>,
  ratings?: Maybe<Array<Rating>>,
  permissions: Array<Permission>,
  interests: Array<Scalars['String']>,
};


export type UserCommentsArgs = {
  where?: Maybe<CommentWhereInput>,
  orderBy?: Maybe<CommentOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type UserRatingsArgs = {
  where?: Maybe<RatingWhereInput>,
  orderBy?: Maybe<RatingOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};

export type UserCreateInput = {
  id?: Maybe<Scalars['ID']>,
  email: Scalars['String'],
  name: Scalars['String'],
  password: Scalars['String'],
  resetToken?: Maybe<Scalars['String']>,
  resetTokenExpiry?: Maybe<Scalars['Float']>,
  permissions?: Maybe<UserCreatepermissionsInput>,
  interests?: Maybe<UserCreateinterestsInput>,
  comments?: Maybe<CommentCreateManyWithoutAuthorInput>,
  ratings?: Maybe<RatingCreateManyWithoutUserInput>,
};

export type UserCreateinterestsInput = {
  set?: Maybe<Array<Scalars['String']>>,
};

export type UserCreatepermissionsInput = {
  set?: Maybe<Array<Permission>>,
};

export enum UserOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  EmailAsc = 'email_ASC',
  EmailDesc = 'email_DESC',
  NameAsc = 'name_ASC',
  NameDesc = 'name_DESC',
  PasswordAsc = 'password_ASC',
  PasswordDesc = 'password_DESC',
  ResetTokenAsc = 'resetToken_ASC',
  ResetTokenDesc = 'resetToken_DESC',
  ResetTokenExpiryAsc = 'resetTokenExpiry_ASC',
  ResetTokenExpiryDesc = 'resetTokenExpiry_DESC',
  CreatedAtAsc = 'createdAt_ASC',
  CreatedAtDesc = 'createdAt_DESC'
}

export type UserUpdateInput = {
  email?: Maybe<Scalars['String']>,
  name?: Maybe<Scalars['String']>,
  password?: Maybe<Scalars['String']>,
  resetToken?: Maybe<Scalars['String']>,
  resetTokenExpiry?: Maybe<Scalars['Float']>,
  permissions?: Maybe<UserUpdatepermissionsInput>,
  interests?: Maybe<UserUpdateinterestsInput>,
  comments?: Maybe<CommentUpdateManyWithoutAuthorInput>,
  ratings?: Maybe<RatingUpdateManyWithoutUserInput>,
};

export type UserUpdateinterestsInput = {
  set?: Maybe<Array<Scalars['String']>>,
};

export type UserUpdatepermissionsInput = {
  set?: Maybe<Array<Permission>>,
};

export type UserWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<UserWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<UserWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<UserWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  email?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  email_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  email_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  email_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  email_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  email_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  email_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  email_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  email_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  email_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  email_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  email_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  email_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  email_not_ends_with?: Maybe<Scalars['String']>,
  name?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  name_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  name_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  name_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  name_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  name_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  name_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  name_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  name_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  name_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  name_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  name_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  name_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  name_not_ends_with?: Maybe<Scalars['String']>,
  password?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  password_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  password_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  password_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  password_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  password_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  password_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  password_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  password_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  password_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  password_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  password_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  password_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  password_not_ends_with?: Maybe<Scalars['String']>,
  resetToken?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  resetToken_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  resetToken_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  resetToken_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  resetToken_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  resetToken_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  resetToken_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  resetToken_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  resetToken_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  resetToken_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  resetToken_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  resetToken_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  resetToken_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  resetToken_not_ends_with?: Maybe<Scalars['String']>,
  resetTokenExpiry?: Maybe<Scalars['Float']>,
  /** All values that are not equal to given value. */
  resetTokenExpiry_not?: Maybe<Scalars['Float']>,
  /** All values that are contained in given list. */
  resetTokenExpiry_in?: Maybe<Array<Scalars['Float']>>,
  /** All values that are not contained in given list. */
  resetTokenExpiry_not_in?: Maybe<Array<Scalars['Float']>>,
  /** All values less than the given value. */
  resetTokenExpiry_lt?: Maybe<Scalars['Float']>,
  /** All values less than or equal the given value. */
  resetTokenExpiry_lte?: Maybe<Scalars['Float']>,
  /** All values greater than the given value. */
  resetTokenExpiry_gt?: Maybe<Scalars['Float']>,
  /** All values greater than or equal the given value. */
  resetTokenExpiry_gte?: Maybe<Scalars['Float']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
  comments_every?: Maybe<CommentWhereInput>,
  comments_some?: Maybe<CommentWhereInput>,
  comments_none?: Maybe<CommentWhereInput>,
  ratings_every?: Maybe<RatingWhereInput>,
  ratings_some?: Maybe<RatingWhereInput>,
  ratings_none?: Maybe<RatingWhereInput>,
};

export type UserWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
  email?: Maybe<Scalars['String']>,
};

export type UsersQueryVariables = {};


export type UsersQuery = (
  { __typename?: 'Query' }
  & { users: Array<Maybe<(
    { __typename?: 'User' }
    & Pick<User, 'id' | 'email' | 'name' | 'permissions' | 'interests'>
  )>> }
);

export type UserSignupMutationVariables = {
  email: Scalars['String'],
  password: Scalars['String'],
  name: Scalars['String']
};


export type UserSignupMutation = (
  { __typename?: 'Mutation' }
  & { signup: (
    { __typename?: 'User' }
    & Pick<User, 'id' | 'email' | 'name'>
  ) }
);

export type UserLoginMutationVariables = {
  email: Scalars['String'],
  password: Scalars['String']
};


export type UserLoginMutation = (
  { __typename?: 'Mutation' }
  & { login: (
    { __typename?: 'User' }
    & Pick<User, 'id' | 'email' | 'name'>
  ) }
);

export type UserLogoutMutationVariables = {};


export type UserLogoutMutation = (
  { __typename?: 'Mutation' }
  & Pick<Mutation, 'logout'>
);

export type CurrentUserQueryVariables = {};


export type CurrentUserQuery = (
  { __typename?: 'Query' }
  & { me: (
    { __typename?: 'User' }
    & Pick<User, 'id' | 'email' | 'name' | 'permissions' | 'interests'>
  ) }
);

export type RequestResetMutationVariables = {
  email: Scalars['String']
};


export type RequestResetMutation = (
  { __typename?: 'Mutation' }
  & Pick<Mutation, 'requestReset'>
);

export type ResetPasswordMutationVariables = {
  token: Scalars['String'],
  password: Scalars['String']
};


export type ResetPasswordMutation = (
  { __typename?: 'Mutation' }
  & { resetPassword: (
    { __typename?: 'User' }
    & Pick<User, 'id' | 'name'>
  ) }
);


export const UsersDocument = gql`
    query Users {
  users {
    id
    email
    name
    permissions
    interests
  }
}
    `;

/**
 * __useUsersQuery__
 *
 * To run a query within a React component, call `useUsersQuery` and pass it any options that fit your needs.
 * When your component renders, `useUsersQuery` returns an object from Apollo Client that contains loading, error, and data properties 
 * you can use to render your UI.
 *
 * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
 *
 * @example
 * const { data, loading, error } = useUsersQuery({
 *   variables: {
 *   },
 * });
 */
export function useUsersQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<UsersQuery, UsersQueryVariables>) {
        return ApolloReactHooks.useQuery<UsersQuery, UsersQueryVariables>(UsersDocument, baseOptions);
      }
export function useUsersLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<UsersQuery, UsersQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<UsersQuery, UsersQueryVariables>(UsersDocument, baseOptions);
        }
export type UsersQueryHookResult = ReturnType<typeof useUsersQuery>;
export type UsersLazyQueryHookResult = ReturnType<typeof useUsersLazyQuery>;
export type UsersQueryResult = ApolloReactCommon.QueryResult<UsersQuery, UsersQueryVariables>;
export const UserSignupDocument = gql`
    mutation UserSignup($email: String!, $password: String!, $name: String!) {
  signup(email: $email, password: $password, name: $name) {
    id
    email
    name
  }
}
    `;
export type UserSignupMutationFn = ApolloReactCommon.MutationFunction<UserSignupMutation, UserSignupMutationVariables>;

/**
 * __useUserSignupMutation__
 *
 * To run a mutation, you first call `useUserSignupMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useUserSignupMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [userSignupMutation, { data, loading, error }] = useUserSignupMutation({
 *   variables: {
 *      email: // value for 'email'
 *      password: // value for 'password'
 *      name: // value for 'name'
 *   },
 * });
 */
export function useUserSignupMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<UserSignupMutation, UserSignupMutationVariables>) {
        return ApolloReactHooks.useMutation<UserSignupMutation, UserSignupMutationVariables>(UserSignupDocument, baseOptions);
      }
export type UserSignupMutationHookResult = ReturnType<typeof useUserSignupMutation>;
export type UserSignupMutationResult = ApolloReactCommon.MutationResult<UserSignupMutation>;
export type UserSignupMutationOptions = ApolloReactCommon.BaseMutationOptions<UserSignupMutation, UserSignupMutationVariables>;
export const UserLoginDocument = gql`
    mutation UserLogin($email: String!, $password: String!) {
  login(email: $email, password: $password) {
    id
    email
    name
  }
}
    `;
export type UserLoginMutationFn = ApolloReactCommon.MutationFunction<UserLoginMutation, UserLoginMutationVariables>;

/**
 * __useUserLoginMutation__
 *
 * To run a mutation, you first call `useUserLoginMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useUserLoginMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [userLoginMutation, { data, loading, error }] = useUserLoginMutation({
 *   variables: {
 *      email: // value for 'email'
 *      password: // value for 'password'
 *   },
 * });
 */
export function useUserLoginMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<UserLoginMutation, UserLoginMutationVariables>) {
        return ApolloReactHooks.useMutation<UserLoginMutation, UserLoginMutationVariables>(UserLoginDocument, baseOptions);
      }
export type UserLoginMutationHookResult = ReturnType<typeof useUserLoginMutation>;
export type UserLoginMutationResult = ApolloReactCommon.MutationResult<UserLoginMutation>;
export type UserLoginMutationOptions = ApolloReactCommon.BaseMutationOptions<UserLoginMutation, UserLoginMutationVariables>;
export const UserLogoutDocument = gql`
    mutation UserLogout {
  logout
}
    `;
export type UserLogoutMutationFn = ApolloReactCommon.MutationFunction<UserLogoutMutation, UserLogoutMutationVariables>;

/**
 * __useUserLogoutMutation__
 *
 * To run a mutation, you first call `useUserLogoutMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useUserLogoutMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [userLogoutMutation, { data, loading, error }] = useUserLogoutMutation({
 *   variables: {
 *   },
 * });
 */
export function useUserLogoutMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<UserLogoutMutation, UserLogoutMutationVariables>) {
        return ApolloReactHooks.useMutation<UserLogoutMutation, UserLogoutMutationVariables>(UserLogoutDocument, baseOptions);
      }
export type UserLogoutMutationHookResult = ReturnType<typeof useUserLogoutMutation>;
export type UserLogoutMutationResult = ApolloReactCommon.MutationResult<UserLogoutMutation>;
export type UserLogoutMutationOptions = ApolloReactCommon.BaseMutationOptions<UserLogoutMutation, UserLogoutMutationVariables>;
export const CurrentUserDocument = gql`
    query CurrentUser {
  me {
    id
    email
    name
    permissions
    interests
  }
}
    `;

/**
 * __useCurrentUserQuery__
 *
 * To run a query within a React component, call `useCurrentUserQuery` and pass it any options that fit your needs.
 * When your component renders, `useCurrentUserQuery` returns an object from Apollo Client that contains loading, error, and data properties 
 * you can use to render your UI.
 *
 * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
 *
 * @example
 * const { data, loading, error } = useCurrentUserQuery({
 *   variables: {
 *   },
 * });
 */
export function useCurrentUserQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<CurrentUserQuery, CurrentUserQueryVariables>) {
        return ApolloReactHooks.useQuery<CurrentUserQuery, CurrentUserQueryVariables>(CurrentUserDocument, baseOptions);
      }
export function useCurrentUserLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<CurrentUserQuery, CurrentUserQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<CurrentUserQuery, CurrentUserQueryVariables>(CurrentUserDocument, baseOptions);
        }
export type CurrentUserQueryHookResult = ReturnType<typeof useCurrentUserQuery>;
export type CurrentUserLazyQueryHookResult = ReturnType<typeof useCurrentUserLazyQuery>;
export type CurrentUserQueryResult = ApolloReactCommon.QueryResult<CurrentUserQuery, CurrentUserQueryVariables>;
export const RequestResetDocument = gql`
    mutation RequestReset($email: String!) {
  requestReset(email: $email)
}
    `;
export type RequestResetMutationFn = ApolloReactCommon.MutationFunction<RequestResetMutation, RequestResetMutationVariables>;

/**
 * __useRequestResetMutation__
 *
 * To run a mutation, you first call `useRequestResetMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useRequestResetMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [requestResetMutation, { data, loading, error }] = useRequestResetMutation({
 *   variables: {
 *      email: // value for 'email'
 *   },
 * });
 */
export function useRequestResetMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<RequestResetMutation, RequestResetMutationVariables>) {
        return ApolloReactHooks.useMutation<RequestResetMutation, RequestResetMutationVariables>(RequestResetDocument, baseOptions);
      }
export type RequestResetMutationHookResult = ReturnType<typeof useRequestResetMutation>;
export type RequestResetMutationResult = ApolloReactCommon.MutationResult<RequestResetMutation>;
export type RequestResetMutationOptions = ApolloReactCommon.BaseMutationOptions<RequestResetMutation, RequestResetMutationVariables>;
export const ResetPasswordDocument = gql`
    mutation ResetPassword($token: String!, $password: String!) {
  resetPassword(token: $token, password: $password) {
    id
    name
  }
}
    `;
export type ResetPasswordMutationFn = ApolloReactCommon.MutationFunction<ResetPasswordMutation, ResetPasswordMutationVariables>;

/**
 * __useResetPasswordMutation__
 *
 * To run a mutation, you first call `useResetPasswordMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useResetPasswordMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [resetPasswordMutation, { data, loading, error }] = useResetPasswordMutation({
 *   variables: {
 *      token: // value for 'token'
 *      password: // value for 'password'
 *   },
 * });
 */
export function useResetPasswordMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<ResetPasswordMutation, ResetPasswordMutationVariables>) {
        return ApolloReactHooks.useMutation<ResetPasswordMutation, ResetPasswordMutationVariables>(ResetPasswordDocument, baseOptions);
      }
export type ResetPasswordMutationHookResult = ReturnType<typeof useResetPasswordMutation>;
export type ResetPasswordMutationResult = ApolloReactCommon.MutationResult<ResetPasswordMutation>;
export type ResetPasswordMutationOptions = ApolloReactCommon.BaseMutationOptions<ResetPasswordMutation, ResetPasswordMutationVariables>;