/* 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 | undefined;

/** 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 Block = Node & {
  id: Scalars['ID'],
  title: Scalars['String'],
  description?: Maybe<Scalars['String']>,
  videos: Array<Scalars['String']>,
  pictures: Array<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  format: Format,
  rest?: Maybe<Scalars['Int']>,
  tracks?: Maybe<Array<Track>>,
  blocks?: Maybe<Array<BlockInstance>>,
  links?: Maybe<Array<BlockInstance>>,
  exercises?: Maybe<Array<ExerciseInstance>>,
};


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 BlockBlocksArgs = {
  where?: Maybe<BlockInstanceWhereInput>,
  orderBy?: Maybe<BlockInstanceOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type BlockLinksArgs = {
  where?: Maybe<BlockInstanceWhereInput>,
  orderBy?: Maybe<BlockInstanceOrderByInput>,
  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<ExerciseInstanceWhereInput>,
  orderBy?: Maybe<ExerciseInstanceOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};

export type BlockCreateOneWithoutBlocksInput = {
  create?: Maybe<BlockCreateWithoutBlocksInput>,
  connect?: Maybe<BlockWhereUniqueInput>,
};

export type BlockCreateOneWithoutLinksInput = {
  create?: Maybe<BlockCreateWithoutLinksInput>,
  connect?: Maybe<BlockWhereUniqueInput>,
};

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

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

export type BlockCreateWithoutBlocksInput = {
  id?: Maybe<Scalars['ID']>,
  title: Scalars['String'],
  description?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  rest?: Maybe<Scalars['Int']>,
  videos?: Maybe<BlockCreatevideosInput>,
  pictures?: Maybe<BlockCreatepicturesInput>,
  format: FormatCreateOneInput,
  tracks?: Maybe<TrackCreateManyInput>,
  links?: Maybe<BlockInstanceCreateManyWithoutBlockInput>,
  exercises?: Maybe<ExerciseInstanceCreateManyInput>,
};

export type BlockCreateWithoutLinksInput = {
  id?: Maybe<Scalars['ID']>,
  title: Scalars['String'],
  description?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  rest?: Maybe<Scalars['Int']>,
  videos?: Maybe<BlockCreatevideosInput>,
  pictures?: Maybe<BlockCreatepicturesInput>,
  format: FormatCreateOneInput,
  tracks?: Maybe<TrackCreateManyInput>,
  blocks?: Maybe<BlockInstanceCreateManyWithoutParentBlockInput>,
  exercises?: Maybe<ExerciseInstanceCreateManyInput>,
};

export type BlockInstance = Node & {
  id: Scalars['ID'],
  block: Block,
  parentBlock?: Maybe<Block>,
  parentTraining?: Maybe<Training>,
  order: Scalars['Int'],
  rounds?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
};

export type BlockInstanceCreateManyWithoutBlockInput = {
  create?: Maybe<Array<BlockInstanceCreateWithoutBlockInput>>,
  connect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
};

export type BlockInstanceCreateManyWithoutParentBlockInput = {
  create?: Maybe<Array<BlockInstanceCreateWithoutParentBlockInput>>,
  connect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
};

export type BlockInstanceCreateManyWithoutParentTrainingInput = {
  create?: Maybe<Array<BlockInstanceCreateWithoutParentTrainingInput>>,
  connect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
};

export type BlockInstanceCreateWithoutBlockInput = {
  id?: Maybe<Scalars['ID']>,
  order: Scalars['Int'],
  rounds?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  parentBlock?: Maybe<BlockCreateOneWithoutBlocksInput>,
  parentTraining?: Maybe<TrainingCreateOneWithoutBlocksInput>,
};

export type BlockInstanceCreateWithoutParentBlockInput = {
  id?: Maybe<Scalars['ID']>,
  order: Scalars['Int'],
  rounds?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  block: BlockCreateOneWithoutLinksInput,
  parentTraining?: Maybe<TrainingCreateOneWithoutBlocksInput>,
};

export type BlockInstanceCreateWithoutParentTrainingInput = {
  id?: Maybe<Scalars['ID']>,
  order: Scalars['Int'],
  rounds?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  block: BlockCreateOneWithoutLinksInput,
  parentBlock?: Maybe<BlockCreateOneWithoutBlocksInput>,
};

export enum BlockInstanceOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  OrderAsc = 'order_ASC',
  OrderDesc = 'order_DESC',
  RoundsAsc = 'rounds_ASC',
  RoundsDesc = 'rounds_DESC',
  VariationAsc = 'variation_ASC',
  VariationDesc = 'variation_DESC'
}

export type BlockInstanceScalarWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<BlockInstanceScalarWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<BlockInstanceScalarWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<BlockInstanceScalarWhereInput>>,
  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']>,
  order?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  order_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  order_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  order_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  order_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  order_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  order_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  order_gte?: Maybe<Scalars['Int']>,
  rounds?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  rounds_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  rounds_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  rounds_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  rounds_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  rounds_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  rounds_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  rounds_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']>,
};

export type BlockInstanceUpdateManyDataInput = {
  order?: Maybe<Scalars['Int']>,
  rounds?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
};

export type BlockInstanceUpdateManyWithoutBlockInput = {
  create?: Maybe<Array<BlockInstanceCreateWithoutBlockInput>>,
  connect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  set?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  disconnect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  delete?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  update?: Maybe<Array<BlockInstanceUpdateWithWhereUniqueWithoutBlockInput>>,
  updateMany?: Maybe<Array<BlockInstanceUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<BlockInstanceScalarWhereInput>>,
  upsert?: Maybe<Array<BlockInstanceUpsertWithWhereUniqueWithoutBlockInput>>,
};

export type BlockInstanceUpdateManyWithoutParentBlockInput = {
  create?: Maybe<Array<BlockInstanceCreateWithoutParentBlockInput>>,
  connect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  set?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  disconnect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  delete?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  update?: Maybe<Array<BlockInstanceUpdateWithWhereUniqueWithoutParentBlockInput>>,
  updateMany?: Maybe<Array<BlockInstanceUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<BlockInstanceScalarWhereInput>>,
  upsert?: Maybe<Array<BlockInstanceUpsertWithWhereUniqueWithoutParentBlockInput>>,
};

export type BlockInstanceUpdateManyWithoutParentTrainingInput = {
  create?: Maybe<Array<BlockInstanceCreateWithoutParentTrainingInput>>,
  connect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  set?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  disconnect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  delete?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  update?: Maybe<Array<BlockInstanceUpdateWithWhereUniqueWithoutParentTrainingInput>>,
  updateMany?: Maybe<Array<BlockInstanceUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<BlockInstanceScalarWhereInput>>,
  upsert?: Maybe<Array<BlockInstanceUpsertWithWhereUniqueWithoutParentTrainingInput>>,
};

export type BlockInstanceUpdateManyWithWhereNestedInput = {
  where: BlockInstanceScalarWhereInput,
  data: BlockInstanceUpdateManyDataInput,
};

export type BlockInstanceUpdateWithoutBlockDataInput = {
  order?: Maybe<Scalars['Int']>,
  rounds?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  parentBlock?: Maybe<BlockUpdateOneWithoutBlocksInput>,
  parentTraining?: Maybe<TrainingUpdateOneWithoutBlocksInput>,
};

export type BlockInstanceUpdateWithoutParentBlockDataInput = {
  order?: Maybe<Scalars['Int']>,
  rounds?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  block?: Maybe<BlockUpdateOneRequiredWithoutLinksInput>,
  parentTraining?: Maybe<TrainingUpdateOneWithoutBlocksInput>,
};

export type BlockInstanceUpdateWithoutParentTrainingDataInput = {
  order?: Maybe<Scalars['Int']>,
  rounds?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  block?: Maybe<BlockUpdateOneRequiredWithoutLinksInput>,
  parentBlock?: Maybe<BlockUpdateOneWithoutBlocksInput>,
};

export type BlockInstanceUpdateWithWhereUniqueWithoutBlockInput = {
  where: BlockInstanceWhereUniqueInput,
  data: BlockInstanceUpdateWithoutBlockDataInput,
};

export type BlockInstanceUpdateWithWhereUniqueWithoutParentBlockInput = {
  where: BlockInstanceWhereUniqueInput,
  data: BlockInstanceUpdateWithoutParentBlockDataInput,
};

export type BlockInstanceUpdateWithWhereUniqueWithoutParentTrainingInput = {
  where: BlockInstanceWhereUniqueInput,
  data: BlockInstanceUpdateWithoutParentTrainingDataInput,
};

export type BlockInstanceUpsertWithWhereUniqueWithoutBlockInput = {
  where: BlockInstanceWhereUniqueInput,
  update: BlockInstanceUpdateWithoutBlockDataInput,
  create: BlockInstanceCreateWithoutBlockInput,
};

export type BlockInstanceUpsertWithWhereUniqueWithoutParentBlockInput = {
  where: BlockInstanceWhereUniqueInput,
  update: BlockInstanceUpdateWithoutParentBlockDataInput,
  create: BlockInstanceCreateWithoutParentBlockInput,
};

export type BlockInstanceUpsertWithWhereUniqueWithoutParentTrainingInput = {
  where: BlockInstanceWhereUniqueInput,
  update: BlockInstanceUpdateWithoutParentTrainingDataInput,
  create: BlockInstanceCreateWithoutParentTrainingInput,
};

export type BlockInstanceWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<BlockInstanceWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<BlockInstanceWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<BlockInstanceWhereInput>>,
  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']>,
  order?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  order_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  order_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  order_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  order_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  order_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  order_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  order_gte?: Maybe<Scalars['Int']>,
  rounds?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  rounds_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  rounds_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  rounds_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  rounds_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  rounds_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  rounds_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  rounds_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']>,
  block?: Maybe<BlockWhereInput>,
  parentBlock?: Maybe<BlockWhereInput>,
  parentTraining?: Maybe<TrainingWhereInput>,
};

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

export enum BlockOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  TitleAsc = 'title_ASC',
  TitleDesc = 'title_DESC',
  DescriptionAsc = 'description_ASC',
  DescriptionDesc = 'description_DESC',
  DurationAsc = 'duration_ASC',
  DurationDesc = 'duration_DESC',
  RestAsc = 'rest_ASC',
  RestDesc = 'rest_DESC'
}

export type BlockUpdateOneRequiredWithoutLinksInput = {
  create?: Maybe<BlockCreateWithoutLinksInput>,
  connect?: Maybe<BlockWhereUniqueInput>,
  update?: Maybe<BlockUpdateWithoutLinksDataInput>,
  upsert?: Maybe<BlockUpsertWithoutLinksInput>,
};

export type BlockUpdateOneWithoutBlocksInput = {
  create?: Maybe<BlockCreateWithoutBlocksInput>,
  connect?: Maybe<BlockWhereUniqueInput>,
  disconnect?: Maybe<Scalars['Boolean']>,
  delete?: Maybe<Scalars['Boolean']>,
  update?: Maybe<BlockUpdateWithoutBlocksDataInput>,
  upsert?: Maybe<BlockUpsertWithoutBlocksInput>,
};

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

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

export type BlockUpdateWithoutBlocksDataInput = {
  title?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  rest?: Maybe<Scalars['Int']>,
  videos?: Maybe<BlockUpdatevideosInput>,
  pictures?: Maybe<BlockUpdatepicturesInput>,
  format?: Maybe<FormatUpdateOneRequiredInput>,
  tracks?: Maybe<TrackUpdateManyInput>,
  links?: Maybe<BlockInstanceUpdateManyWithoutBlockInput>,
  exercises?: Maybe<ExerciseInstanceUpdateManyInput>,
};

export type BlockUpdateWithoutLinksDataInput = {
  title?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  rest?: Maybe<Scalars['Int']>,
  videos?: Maybe<BlockUpdatevideosInput>,
  pictures?: Maybe<BlockUpdatepicturesInput>,
  format?: Maybe<FormatUpdateOneRequiredInput>,
  tracks?: Maybe<TrackUpdateManyInput>,
  blocks?: Maybe<BlockInstanceUpdateManyWithoutParentBlockInput>,
  exercises?: Maybe<ExerciseInstanceUpdateManyInput>,
};

export type BlockUpsertWithoutBlocksInput = {
  update: BlockUpdateWithoutBlocksDataInput,
  create: BlockCreateWithoutBlocksInput,
};

export type BlockUpsertWithoutLinksInput = {
  update: BlockUpdateWithoutLinksDataInput,
  create: BlockCreateWithoutLinksInput,
};

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']>,
  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']>,
  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']>,
  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']>,
  rest?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  rest_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  rest_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  rest_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  rest_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  rest_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  rest_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  rest_gte?: Maybe<Scalars['Int']>,
  format?: Maybe<FormatWhereInput>,
  tracks_every?: Maybe<TrackWhereInput>,
  tracks_some?: Maybe<TrackWhereInput>,
  tracks_none?: Maybe<TrackWhereInput>,
  blocks_every?: Maybe<BlockInstanceWhereInput>,
  blocks_some?: Maybe<BlockInstanceWhereInput>,
  blocks_none?: Maybe<BlockInstanceWhereInput>,
  links_every?: Maybe<BlockInstanceWhereInput>,
  links_some?: Maybe<BlockInstanceWhereInput>,
  links_none?: Maybe<BlockInstanceWhereInput>,
  exercises_every?: Maybe<ExerciseInstanceWhereInput>,
  exercises_some?: Maybe<ExerciseInstanceWhereInput>,
  exercises_none?: Maybe<ExerciseInstanceWhereInput>,
};

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

export type Comment = Node & {
  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 & {
  id: Scalars['ID'],
  name: Scalars['String'],
  description?: Maybe<Scalars['String']>,
  videos: Array<Scalars['String']>,
  pictures: Array<Scalars['String']>,
  targets: Array<Scalars['String']>,
  baseExercise: Array<Scalars['String']>,
};

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

export type ExerciseCreateInput = {
  id?: Maybe<Scalars['ID']>,
  name: Scalars['String'],
  description?: Maybe<Scalars['String']>,
  videos?: Maybe<ExerciseCreatevideosInput>,
  pictures?: Maybe<ExerciseCreatepicturesInput>,
  targets?: Maybe<ExerciseCreatetargetsInput>,
  baseExercise?: Maybe<ExerciseCreatebaseExerciseInput>,
};

export type ExerciseCreateOneInput = {
  create?: Maybe<ExerciseCreateInput>,
  connect?: Maybe<ExerciseWhereUniqueInput>,
};

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

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

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

export type ExerciseInstance = Node & {
  id: Scalars['ID'],
  exercise: Exercise,
  order: Scalars['Int'],
  repetitions?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
};

export type ExerciseInstanceCreateInput = {
  id?: Maybe<Scalars['ID']>,
  order: Scalars['Int'],
  repetitions?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  exercise: ExerciseCreateOneInput,
};

export type ExerciseInstanceCreateManyInput = {
  create?: Maybe<Array<ExerciseInstanceCreateInput>>,
  connect?: Maybe<Array<ExerciseInstanceWhereUniqueInput>>,
};

export enum ExerciseInstanceOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  OrderAsc = 'order_ASC',
  OrderDesc = 'order_DESC',
  RepetitionsAsc = 'repetitions_ASC',
  RepetitionsDesc = 'repetitions_DESC',
  VariationAsc = 'variation_ASC',
  VariationDesc = 'variation_DESC'
}

export type ExerciseInstanceScalarWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<ExerciseInstanceScalarWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<ExerciseInstanceScalarWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<ExerciseInstanceScalarWhereInput>>,
  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']>,
  order?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  order_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  order_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  order_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  order_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  order_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  order_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  order_gte?: Maybe<Scalars['Int']>,
  repetitions?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  repetitions_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  repetitions_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  repetitions_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  repetitions_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  repetitions_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  repetitions_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  repetitions_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']>,
};

export type ExerciseInstanceUpdateDataInput = {
  order?: Maybe<Scalars['Int']>,
  repetitions?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  exercise?: Maybe<ExerciseUpdateOneRequiredInput>,
};

export type ExerciseInstanceUpdateManyDataInput = {
  order?: Maybe<Scalars['Int']>,
  repetitions?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
};

export type ExerciseInstanceUpdateManyInput = {
  create?: Maybe<Array<ExerciseInstanceCreateInput>>,
  connect?: Maybe<Array<ExerciseInstanceWhereUniqueInput>>,
  set?: Maybe<Array<ExerciseInstanceWhereUniqueInput>>,
  disconnect?: Maybe<Array<ExerciseInstanceWhereUniqueInput>>,
  delete?: Maybe<Array<ExerciseInstanceWhereUniqueInput>>,
  update?: Maybe<Array<ExerciseInstanceUpdateWithWhereUniqueNestedInput>>,
  updateMany?: Maybe<Array<ExerciseInstanceUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<ExerciseInstanceScalarWhereInput>>,
  upsert?: Maybe<Array<ExerciseInstanceUpsertWithWhereUniqueNestedInput>>,
};

export type ExerciseInstanceUpdateManyWithWhereNestedInput = {
  where: ExerciseInstanceScalarWhereInput,
  data: ExerciseInstanceUpdateManyDataInput,
};

export type ExerciseInstanceUpdateWithWhereUniqueNestedInput = {
  where: ExerciseInstanceWhereUniqueInput,
  data: ExerciseInstanceUpdateDataInput,
};

export type ExerciseInstanceUpsertWithWhereUniqueNestedInput = {
  where: ExerciseInstanceWhereUniqueInput,
  update: ExerciseInstanceUpdateDataInput,
  create: ExerciseInstanceCreateInput,
};

export type ExerciseInstanceWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<ExerciseInstanceWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<ExerciseInstanceWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<ExerciseInstanceWhereInput>>,
  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']>,
  order?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  order_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  order_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  order_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  order_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  order_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  order_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  order_gte?: Maybe<Scalars['Int']>,
  repetitions?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  repetitions_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  repetitions_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  repetitions_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  repetitions_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  repetitions_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  repetitions_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  repetitions_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']>,
  exercise?: Maybe<ExerciseWhereInput>,
};

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

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

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

export type ExerciseUpdateDataInput = {
  name?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
  videos?: Maybe<ExerciseUpdatevideosInput>,
  pictures?: Maybe<ExerciseUpdatepicturesInput>,
  targets?: Maybe<ExerciseUpdatetargetsInput>,
  baseExercise?: Maybe<ExerciseUpdatebaseExerciseInput>,
};

export type ExerciseUpdateOneRequiredInput = {
  create?: Maybe<ExerciseCreateInput>,
  connect?: Maybe<ExerciseWhereUniqueInput>,
  update?: Maybe<ExerciseUpdateDataInput>,
  upsert?: Maybe<ExerciseUpsertNestedInput>,
};

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

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

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

export type ExerciseUpsertNestedInput = {
  update: ExerciseUpdateDataInput,
  create: ExerciseCreateInput,
};

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']>,
};

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

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

export type FormatCreateInput = {
  id?: Maybe<Scalars['ID']>,
  name: Scalars['String'],
  description: Scalars['String'],
};

export type FormatCreateOneInput = {
  create?: Maybe<FormatCreateInput>,
  connect?: Maybe<FormatWhereUniqueInput>,
};

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

export type FormatUpdateDataInput = {
  name?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
};

export type FormatUpdateOneRequiredInput = {
  create?: Maybe<FormatCreateInput>,
  connect?: Maybe<FormatWhereUniqueInput>,
  update?: Maybe<FormatUpdateDataInput>,
  upsert?: Maybe<FormatUpsertNestedInput>,
};

export type FormatUpsertNestedInput = {
  update: FormatUpdateDataInput,
  create: FormatCreateInput,
};

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 FormatWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};

export type Mutation = {
  createUser: User,
  updateUser?: Maybe<User>,
  deleteUser?: Maybe<User>,
  createTraining: Training,
  updateTraining: Training,
  createTrainingType: TrainingType,
  createFormat: Format,
  userLogin: User,
  userLogout: Scalars['String'],
  userSignup: User,
  requestReset: Scalars['String'],
  resetPassword: User,
  register: Scalars['String'],
  deregister: Scalars['String'],
};


export type MutationCreateUserArgs = {
  data: UserCreateInput
};


export type MutationUpdateUserArgs = {
  email: Scalars['String'],
  data: UserUpdateInput
};


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


export type MutationCreateTrainingArgs = {
  title: Scalars['String'],
  type: TrainingTypeCreateOneInput,
  trainingDate: Scalars['DateTime'],
  location: Scalars['String'],
  attendance?: Maybe<Scalars['Int']>,
  published: Scalars['Boolean'],
  blocks?: Maybe<BlockInstanceCreateManyWithoutParentTrainingInput>
};


export type MutationUpdateTrainingArgs = {
  where: TrainingWhereUniqueInput,
  data: TrainingUpdateInput
};


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


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


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


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


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


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


export type MutationRegisterArgs = {
  training: Scalars['ID']
};


export type MutationDeregisterArgs = {
  training: Scalars['ID']
};

/** 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 = {
  currentUser: User,
  user?: Maybe<User>,
  users: Array<User>,
  training?: Maybe<Training>,
  trainings: Array<Training>,
  trainingType?: Maybe<TrainingType>,
  trainingTypes: Array<TrainingType>,
  block?: Maybe<Block>,
  blocks: Array<Block>,
  format?: Maybe<Format>,
  formats: Array<Format>,
  exercise?: Maybe<Exercise>,
  exercises: Array<Exercise>,
};


export type QueryUserArgs = {
  where: UserWhereUniqueInput
};


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 = {
  id: Scalars['ID']
};


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 QueryTrainingTypeArgs = {
  where: TrainingTypeWhereUniqueInput
};


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 QueryBlockArgs = {
  where: BlockWhereUniqueInput
};


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 QueryFormatArgs = {
  where: FormatWhereUniqueInput
};


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


export type QueryExerciseArgs = {
  where: ExerciseWhereUniqueInput
};


export type QueryExercisesArgs = {
  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 Rating = Node & {
  id: Scalars['ID'],
  user: User,
  value: Scalars['Int'],
  comment: Scalars['String'],
  createdAt: Scalars['DateTime'],
};

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

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

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 RatingUpdateDataInput = {
  value?: Maybe<Scalars['Int']>,
  comment?: Maybe<Scalars['String']>,
  user?: Maybe<UserUpdateOneRequiredWithoutRatingsInput>,
};

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

export type RatingUpdateManyInput = {
  create?: Maybe<Array<RatingCreateInput>>,
  connect?: Maybe<Array<RatingWhereUniqueInput>>,
  set?: Maybe<Array<RatingWhereUniqueInput>>,
  disconnect?: Maybe<Array<RatingWhereUniqueInput>>,
  delete?: Maybe<Array<RatingWhereUniqueInput>>,
  update?: Maybe<Array<RatingUpdateWithWhereUniqueNestedInput>>,
  updateMany?: Maybe<Array<RatingUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<RatingScalarWhereInput>>,
  upsert?: Maybe<Array<RatingUpsertWithWhereUniqueNestedInput>>,
};

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 RatingUpdateWithWhereUniqueNestedInput = {
  where: RatingWhereUniqueInput,
  data: RatingUpdateDataInput,
};

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

export type RatingUpsertWithWhereUniqueNestedInput = {
  where: RatingWhereUniqueInput,
  update: RatingUpdateDataInput,
  create: RatingCreateInput,
};

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 & {
  id: Scalars['ID'],
  title: Scalars['String'],
  artist: Scalars['String'],
  duration: Scalars['Int'],
  link: Scalars['String'],
};

export type TrackCreateInput = {
  id?: Maybe<Scalars['ID']>,
  title: Scalars['String'],
  artist: Scalars['String'],
  duration: Scalars['Int'],
  link: Scalars['String'],
};

export type TrackCreateManyInput = {
  create?: Maybe<Array<TrackCreateInput>>,
  connect?: Maybe<Array<TrackWhereUniqueInput>>,
};

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 TrackScalarWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<TrackScalarWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<TrackScalarWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<TrackScalarWhereInput>>,
  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 TrackUpdateDataInput = {
  title?: Maybe<Scalars['String']>,
  artist?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  link?: Maybe<Scalars['String']>,
};

export type TrackUpdateManyDataInput = {
  title?: Maybe<Scalars['String']>,
  artist?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  link?: Maybe<Scalars['String']>,
};

export type TrackUpdateManyInput = {
  create?: Maybe<Array<TrackCreateInput>>,
  connect?: Maybe<Array<TrackWhereUniqueInput>>,
  set?: Maybe<Array<TrackWhereUniqueInput>>,
  disconnect?: Maybe<Array<TrackWhereUniqueInput>>,
  delete?: Maybe<Array<TrackWhereUniqueInput>>,
  update?: Maybe<Array<TrackUpdateWithWhereUniqueNestedInput>>,
  updateMany?: Maybe<Array<TrackUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<TrackScalarWhereInput>>,
  upsert?: Maybe<Array<TrackUpsertWithWhereUniqueNestedInput>>,
};

export type TrackUpdateManyWithWhereNestedInput = {
  where: TrackScalarWhereInput,
  data: TrackUpdateManyDataInput,
};

export type TrackUpdateWithWhereUniqueNestedInput = {
  where: TrackWhereUniqueInput,
  data: TrackUpdateDataInput,
};

export type TrackUpsertWithWhereUniqueNestedInput = {
  where: TrackWhereUniqueInput,
  update: TrackUpdateDataInput,
  create: TrackCreateInput,
};

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 TrackWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};

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


export type TrainingRegistrationsArgs = {
  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 type TrainingBlocksArgs = {
  where?: Maybe<BlockInstanceWhereInput>,
  orderBy?: Maybe<BlockInstanceOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};

export type TrainingCreateOneWithoutBlocksInput = {
  create?: Maybe<TrainingCreateWithoutBlocksInput>,
  connect?: Maybe<TrainingWhereUniqueInput>,
};

export type TrainingCreateWithoutBlocksInput = {
  id?: Maybe<Scalars['ID']>,
  title: Scalars['String'],
  trainingDate: Scalars['DateTime'],
  location: Scalars['String'],
  attendance?: Maybe<Scalars['Int']>,
  published: Scalars['Boolean'],
  type: TrainingTypeCreateOneInput,
  registrations?: Maybe<UserCreateManyInput>,
  ratings?: Maybe<RatingCreateManyInput>,
};

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 & {
  id: Scalars['ID'],
  name: Scalars['String'],
  description: Scalars['String'],
};

export type TrainingTypeCreateInput = {
  id?: Maybe<Scalars['ID']>,
  name: Scalars['String'],
  description: Scalars['String'],
};

export type TrainingTypeCreateOneInput = {
  create?: Maybe<TrainingTypeCreateInput>,
  connect?: Maybe<TrainingTypeWhereUniqueInput>,
};

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

export type TrainingTypeUpdateDataInput = {
  name?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
};

export type TrainingTypeUpdateOneRequiredInput = {
  create?: Maybe<TrainingTypeCreateInput>,
  connect?: Maybe<TrainingTypeWhereUniqueInput>,
  update?: Maybe<TrainingTypeUpdateDataInput>,
  upsert?: Maybe<TrainingTypeUpsertNestedInput>,
};

export type TrainingTypeUpsertNestedInput = {
  update: TrainingTypeUpdateDataInput,
  create: TrainingTypeCreateInput,
};

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 TrainingTypeWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
  name?: Maybe<Scalars['String']>,
};

export type TrainingUpdateInput = {
  title?: Maybe<Scalars['String']>,
  trainingDate?: Maybe<Scalars['DateTime']>,
  location?: Maybe<Scalars['String']>,
  attendance?: Maybe<Scalars['Int']>,
  published?: Maybe<Scalars['Boolean']>,
  type?: Maybe<TrainingTypeUpdateOneRequiredInput>,
  registrations?: Maybe<UserUpdateManyInput>,
  ratings?: Maybe<RatingUpdateManyInput>,
  blocks?: Maybe<BlockInstanceUpdateManyWithoutParentTrainingInput>,
};

export type TrainingUpdateOneWithoutBlocksInput = {
  create?: Maybe<TrainingCreateWithoutBlocksInput>,
  connect?: Maybe<TrainingWhereUniqueInput>,
  disconnect?: Maybe<Scalars['Boolean']>,
  delete?: Maybe<Scalars['Boolean']>,
  update?: Maybe<TrainingUpdateWithoutBlocksDataInput>,
  upsert?: Maybe<TrainingUpsertWithoutBlocksInput>,
};

export type TrainingUpdateWithoutBlocksDataInput = {
  title?: Maybe<Scalars['String']>,
  trainingDate?: Maybe<Scalars['DateTime']>,
  location?: Maybe<Scalars['String']>,
  attendance?: Maybe<Scalars['Int']>,
  published?: Maybe<Scalars['Boolean']>,
  type?: Maybe<TrainingTypeUpdateOneRequiredInput>,
  registrations?: Maybe<UserUpdateManyInput>,
  ratings?: Maybe<RatingUpdateManyInput>,
};

export type TrainingUpsertWithoutBlocksInput = {
  update: TrainingUpdateWithoutBlocksDataInput,
  create: TrainingCreateWithoutBlocksInput,
};

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>,
  registrations_every?: Maybe<UserWhereInput>,
  registrations_some?: Maybe<UserWhereInput>,
  registrations_none?: Maybe<UserWhereInput>,
  ratings_every?: Maybe<RatingWhereInput>,
  ratings_some?: Maybe<RatingWhereInput>,
  ratings_none?: Maybe<RatingWhereInput>,
  blocks_every?: Maybe<BlockInstanceWhereInput>,
  blocks_some?: Maybe<BlockInstanceWhereInput>,
  blocks_none?: Maybe<BlockInstanceWhereInput>,
};

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

export type User = Node & {
  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 UserCreateManyInput = {
  create?: Maybe<Array<UserCreateInput>>,
  connect?: Maybe<Array<UserWhereUniqueInput>>,
};

export type UserCreateOneWithoutRatingsInput = {
  create?: Maybe<UserCreateWithoutRatingsInput>,
  connect?: Maybe<UserWhereUniqueInput>,
};

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

export type UserCreateWithoutRatingsInput = {
  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>,
};

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 UserScalarWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<UserScalarWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<UserScalarWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<UserScalarWhereInput>>,
  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']>,
};

export type UserUpdateDataInput = {
  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 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 UserUpdateManyDataInput = {
  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>,
};

export type UserUpdateManyInput = {
  create?: Maybe<Array<UserCreateInput>>,
  connect?: Maybe<Array<UserWhereUniqueInput>>,
  set?: Maybe<Array<UserWhereUniqueInput>>,
  disconnect?: Maybe<Array<UserWhereUniqueInput>>,
  delete?: Maybe<Array<UserWhereUniqueInput>>,
  update?: Maybe<Array<UserUpdateWithWhereUniqueNestedInput>>,
  updateMany?: Maybe<Array<UserUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<UserScalarWhereInput>>,
  upsert?: Maybe<Array<UserUpsertWithWhereUniqueNestedInput>>,
};

export type UserUpdateManyWithWhereNestedInput = {
  where: UserScalarWhereInput,
  data: UserUpdateManyDataInput,
};

export type UserUpdateOneRequiredWithoutRatingsInput = {
  create?: Maybe<UserCreateWithoutRatingsInput>,
  connect?: Maybe<UserWhereUniqueInput>,
  update?: Maybe<UserUpdateWithoutRatingsDataInput>,
  upsert?: Maybe<UserUpsertWithoutRatingsInput>,
};

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

export type UserUpdateWithoutRatingsDataInput = {
  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>,
};

export type UserUpdateWithWhereUniqueNestedInput = {
  where: UserWhereUniqueInput,
  data: UserUpdateDataInput,
};

export type UserUpsertWithoutRatingsInput = {
  update: UserUpdateWithoutRatingsDataInput,
  create: UserCreateWithoutRatingsInput,
};

export type UserUpsertWithWhereUniqueNestedInput = {
  where: UserWhereUniqueInput,
  update: UserUpdateDataInput,
  create: UserCreateInput,
};

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 ExerciseContentFragment = (
  Pick<ExerciseInstance, 'id' | 'order' | 'repetitions' | 'variation'>
  & { exercise: Pick<Exercise, 'id' | 'name' | 'description' | 'videos' | 'pictures' | 'targets' | 'baseExercise'> }
);

export type BlockContentFragment = (
  Pick<Block, 'id' | 'title' | 'description' | 'videos' | 'pictures' | 'duration' | 'rest'>
  & { format: Pick<Format, 'id' | 'name' | 'description'>, blocks: Maybe<Array<(
    Pick<BlockInstance, 'id' | 'order' | 'rounds' | 'variation'>
    & { block: BlockHintFragment }
  )>>, exercises: Maybe<Array<ExerciseContentFragment>> }
);

export type BlockHintFragment = (
  Pick<Block, 'id' | 'title' | 'description' | 'videos' | 'pictures' | 'duration' | 'rest'>
  & { format: Pick<Format, 'id' | 'name' | 'description'>, blocks: Maybe<Array<Pick<BlockInstance, 'id'>>>, exercises: Maybe<Array<ExerciseContentFragment>> }
);

export type SubBlockFragment = (
  Pick<BlockInstance, 'id' | 'order' | 'rounds' | 'variation'>
  & { block: BlockContentFragment }
);

export type SubBlockHintFragment = (
  Pick<BlockInstance, 'id' | 'order' | 'rounds' | 'variation'>
  & { block: BlockHintFragment }
);

export type TrainingQueryVariables = {
  id: Scalars['ID']
};


export type TrainingQuery = { training: Maybe<(
    Pick<Training, 'id' | 'title' | 'createdAt' | 'trainingDate' | 'location' | 'attendance' | 'published'>
    & { type: Pick<TrainingType, 'id' | 'name' | 'description'>, blocks: Maybe<Array<SubBlockFragment>>, registrations: Maybe<Array<Pick<User, 'id' | 'name'>>> }
  )> };

export type TrainingsQueryVariables = {};


export type TrainingsQuery = { trainings: Array<(
    Pick<Training, 'id' | 'title' | 'trainingDate' | 'location' | 'attendance' | 'published'>
    & { type: Pick<TrainingType, 'id' | 'name' | 'description'>, blocks: Maybe<Array<SubBlockHintFragment>>, registrations: Maybe<Array<Pick<User, 'id' | 'name'>>> }
  )> };

export type TrainingTypesQueryVariables = {};


export type TrainingTypesQuery = { trainingTypes: Array<Pick<TrainingType, 'id' | 'name' | 'description'>> };

export type FormatsQueryVariables = {};


export type FormatsQuery = { formats: Array<Pick<Format, 'id' | 'name' | 'description'>> };

export type CreateTrainingMutationVariables = {
  title: Scalars['String'],
  type: TrainingTypeCreateOneInput,
  trainingDate: Scalars['DateTime'],
  location: Scalars['String'],
  attendance: Scalars['Int'],
  published: Scalars['Boolean'],
  blocks?: Maybe<BlockInstanceCreateManyWithoutParentTrainingInput>
};


export type CreateTrainingMutation = { createTraining: Pick<Training, 'id'> };

export type UpdateTrainingMutationVariables = {
  where: TrainingWhereUniqueInput,
  data: TrainingUpdateInput
};


export type UpdateTrainingMutation = { updateTraining: Pick<Training, 'id'> };

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


export type CreateTrainingTypeMutation = { createTrainingType: Pick<TrainingType, 'id'> };

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


export type CreateFormatMutation = { createFormat: Pick<Format, 'id'> };

export type RegisterMutationVariables = {
  training: Scalars['ID']
};


export type RegisterMutation = Pick<Mutation, 'register'>;

export type UsersQueryVariables = {};


export type UsersQuery = { users: Array<Pick<User, 'id' | 'email' | 'name' | 'permissions' | 'interests'>> };

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


export type UserSignupMutation = { userSignup: Pick<User, 'id' | 'email' | 'name'> };

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


export type UserLoginMutation = { userLogin: Pick<User, 'id' | 'email' | 'name'> };

export type UserLogoutMutationVariables = {};


export type UserLogoutMutation = Pick<Mutation, 'userLogout'>;

export type CurrentUserQueryVariables = {};


export type CurrentUserQuery = { currentUser: Pick<User, 'id' | 'email' | 'name' | 'permissions' | 'interests'> };

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


export type RequestResetMutation = Pick<Mutation, 'requestReset'>;

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


export type ResetPasswordMutation = { resetPassword: Pick<User, 'id' | 'name'> };

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


export type UserDeleteMutation = { deleteUser: Maybe<Pick<User, 'id'>> };

export type UserUpdateMutationVariables = {
  email: Scalars['String'],
  data: UserUpdateInput
};


export type UserUpdateMutation = { updateUser: Maybe<Pick<User, 'id' | 'name' | 'email' | 'permissions' | 'interests'>> };

export const ExerciseContentFragmentDoc = gql`
    fragment exerciseContent on ExerciseInstance {
  id
  exercise {
    id
    name
    description
    videos
    pictures
    targets
    baseExercise
  }
  order
  repetitions
  variation
}
    `;
export const BlockHintFragmentDoc = gql`
    fragment blockHint on Block {
  id
  title
  description
  videos
  pictures
  duration
  format {
    id
    name
    description
  }
  rest
  blocks {
    id
  }
  exercises {
    ...exerciseContent
  }
}
    ${ExerciseContentFragmentDoc}`;
export const BlockContentFragmentDoc = gql`
    fragment blockContent on Block {
  id
  title
  description
  videos
  pictures
  duration
  format {
    id
    name
    description
  }
  rest
  blocks {
    id
    block {
      ...blockHint
    }
    order
    rounds
    variation
  }
  exercises {
    ...exerciseContent
  }
}
    ${BlockHintFragmentDoc}
${ExerciseContentFragmentDoc}`;
export const SubBlockFragmentDoc = gql`
    fragment subBlock on BlockInstance {
  id
  block {
    ...blockContent
  }
  order
  rounds
  variation
}
    ${BlockContentFragmentDoc}`;
export const SubBlockHintFragmentDoc = gql`
    fragment subBlockHint on BlockInstance {
  id
  block {
    ...blockHint
  }
  order
  rounds
  variation
}
    ${BlockHintFragmentDoc}`;
export const TrainingDocument = gql`
    query training($id: ID!) {
  training(id: $id) {
    id
    title
    type {
      id
      name
      description
    }
    createdAt
    trainingDate
    location
    attendance
    published
    blocks {
      ...subBlock
    }
    registrations {
      id
      name
    }
  }
}
    ${SubBlockFragmentDoc}`;

/**
 * __useTrainingQuery__
 *
 * To run a query within a React component, call `useTrainingQuery` and pass it any options that fit your needs.
 * When your component renders, `useTrainingQuery` 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 } = useTrainingQuery({
 *   variables: {
 *      id: // value for 'id'
 *   },
 * });
 */
export function useTrainingQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<TrainingQuery, TrainingQueryVariables>) {
        return ApolloReactHooks.useQuery<TrainingQuery, TrainingQueryVariables>(TrainingDocument, baseOptions);
      }
export function useTrainingLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<TrainingQuery, TrainingQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<TrainingQuery, TrainingQueryVariables>(TrainingDocument, baseOptions);
        }
export type TrainingQueryHookResult = ReturnType<typeof useTrainingQuery>;
export type TrainingLazyQueryHookResult = ReturnType<typeof useTrainingLazyQuery>;
export type TrainingQueryResult = ApolloReactCommon.QueryResult<TrainingQuery, TrainingQueryVariables>;
export const TrainingsDocument = gql`
    query trainings {
  trainings {
    id
    title
    type {
      id
      name
      description
    }
    trainingDate
    location
    attendance
    published
    blocks {
      ...subBlockHint
    }
    registrations {
      id
      name
    }
  }
}
    ${SubBlockHintFragmentDoc}`;

/**
 * __useTrainingsQuery__
 *
 * To run a query within a React component, call `useTrainingsQuery` and pass it any options that fit your needs.
 * When your component renders, `useTrainingsQuery` 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 } = useTrainingsQuery({
 *   variables: {
 *   },
 * });
 */
export function useTrainingsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<TrainingsQuery, TrainingsQueryVariables>) {
        return ApolloReactHooks.useQuery<TrainingsQuery, TrainingsQueryVariables>(TrainingsDocument, baseOptions);
      }
export function useTrainingsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<TrainingsQuery, TrainingsQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<TrainingsQuery, TrainingsQueryVariables>(TrainingsDocument, baseOptions);
        }
export type TrainingsQueryHookResult = ReturnType<typeof useTrainingsQuery>;
export type TrainingsLazyQueryHookResult = ReturnType<typeof useTrainingsLazyQuery>;
export type TrainingsQueryResult = ApolloReactCommon.QueryResult<TrainingsQuery, TrainingsQueryVariables>;
export const TrainingTypesDocument = gql`
    query trainingTypes {
  trainingTypes {
    id
    name
    description
  }
}
    `;

/**
 * __useTrainingTypesQuery__
 *
 * To run a query within a React component, call `useTrainingTypesQuery` and pass it any options that fit your needs.
 * When your component renders, `useTrainingTypesQuery` 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 } = useTrainingTypesQuery({
 *   variables: {
 *   },
 * });
 */
export function useTrainingTypesQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<TrainingTypesQuery, TrainingTypesQueryVariables>) {
        return ApolloReactHooks.useQuery<TrainingTypesQuery, TrainingTypesQueryVariables>(TrainingTypesDocument, baseOptions);
      }
export function useTrainingTypesLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<TrainingTypesQuery, TrainingTypesQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<TrainingTypesQuery, TrainingTypesQueryVariables>(TrainingTypesDocument, baseOptions);
        }
export type TrainingTypesQueryHookResult = ReturnType<typeof useTrainingTypesQuery>;
export type TrainingTypesLazyQueryHookResult = ReturnType<typeof useTrainingTypesLazyQuery>;
export type TrainingTypesQueryResult = ApolloReactCommon.QueryResult<TrainingTypesQuery, TrainingTypesQueryVariables>;
export const FormatsDocument = gql`
    query formats {
  formats {
    id
    name
    description
  }
}
    `;

/**
 * __useFormatsQuery__
 *
 * To run a query within a React component, call `useFormatsQuery` and pass it any options that fit your needs.
 * When your component renders, `useFormatsQuery` 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 } = useFormatsQuery({
 *   variables: {
 *   },
 * });
 */
export function useFormatsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<FormatsQuery, FormatsQueryVariables>) {
        return ApolloReactHooks.useQuery<FormatsQuery, FormatsQueryVariables>(FormatsDocument, baseOptions);
      }
export function useFormatsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<FormatsQuery, FormatsQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<FormatsQuery, FormatsQueryVariables>(FormatsDocument, baseOptions);
        }
export type FormatsQueryHookResult = ReturnType<typeof useFormatsQuery>;
export type FormatsLazyQueryHookResult = ReturnType<typeof useFormatsLazyQuery>;
export type FormatsQueryResult = ApolloReactCommon.QueryResult<FormatsQuery, FormatsQueryVariables>;
export const CreateTrainingDocument = gql`
    mutation createTraining($title: String!, $type: TrainingTypeCreateOneInput!, $trainingDate: DateTime!, $location: String!, $attendance: Int!, $published: Boolean!, $blocks: BlockInstanceCreateManyWithoutParentTrainingInput) {
  createTraining(title: $title, type: $type, trainingDate: $trainingDate, location: $location, attendance: $attendance, published: $published, blocks: $blocks) {
    id
  }
}
    `;
export type CreateTrainingMutationFn = ApolloReactCommon.MutationFunction<CreateTrainingMutation, CreateTrainingMutationVariables>;

/**
 * __useCreateTrainingMutation__
 *
 * To run a mutation, you first call `useCreateTrainingMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useCreateTrainingMutation` 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 [createTrainingMutation, { data, loading, error }] = useCreateTrainingMutation({
 *   variables: {
 *      title: // value for 'title'
 *      type: // value for 'type'
 *      trainingDate: // value for 'trainingDate'
 *      location: // value for 'location'
 *      attendance: // value for 'attendance'
 *      published: // value for 'published'
 *      blocks: // value for 'blocks'
 *   },
 * });
 */
export function useCreateTrainingMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<CreateTrainingMutation, CreateTrainingMutationVariables>) {
        return ApolloReactHooks.useMutation<CreateTrainingMutation, CreateTrainingMutationVariables>(CreateTrainingDocument, baseOptions);
      }
export type CreateTrainingMutationHookResult = ReturnType<typeof useCreateTrainingMutation>;
export type CreateTrainingMutationResult = ApolloReactCommon.MutationResult<CreateTrainingMutation>;
export type CreateTrainingMutationOptions = ApolloReactCommon.BaseMutationOptions<CreateTrainingMutation, CreateTrainingMutationVariables>;
export const UpdateTrainingDocument = gql`
    mutation updateTraining($where: TrainingWhereUniqueInput!, $data: TrainingUpdateInput!) {
  updateTraining(where: $where, data: $data) {
    id
  }
}
    `;
export type UpdateTrainingMutationFn = ApolloReactCommon.MutationFunction<UpdateTrainingMutation, UpdateTrainingMutationVariables>;

/**
 * __useUpdateTrainingMutation__
 *
 * To run a mutation, you first call `useUpdateTrainingMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useUpdateTrainingMutation` 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 [updateTrainingMutation, { data, loading, error }] = useUpdateTrainingMutation({
 *   variables: {
 *      where: // value for 'where'
 *      data: // value for 'data'
 *   },
 * });
 */
export function useUpdateTrainingMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<UpdateTrainingMutation, UpdateTrainingMutationVariables>) {
        return ApolloReactHooks.useMutation<UpdateTrainingMutation, UpdateTrainingMutationVariables>(UpdateTrainingDocument, baseOptions);
      }
export type UpdateTrainingMutationHookResult = ReturnType<typeof useUpdateTrainingMutation>;
export type UpdateTrainingMutationResult = ApolloReactCommon.MutationResult<UpdateTrainingMutation>;
export type UpdateTrainingMutationOptions = ApolloReactCommon.BaseMutationOptions<UpdateTrainingMutation, UpdateTrainingMutationVariables>;
export const CreateTrainingTypeDocument = gql`
    mutation createTrainingType($name: String!, $description: String!) {
  createTrainingType(name: $name, description: $description) {
    id
  }
}
    `;
export type CreateTrainingTypeMutationFn = ApolloReactCommon.MutationFunction<CreateTrainingTypeMutation, CreateTrainingTypeMutationVariables>;

/**
 * __useCreateTrainingTypeMutation__
 *
 * To run a mutation, you first call `useCreateTrainingTypeMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useCreateTrainingTypeMutation` 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 [createTrainingTypeMutation, { data, loading, error }] = useCreateTrainingTypeMutation({
 *   variables: {
 *      name: // value for 'name'
 *      description: // value for 'description'
 *   },
 * });
 */
export function useCreateTrainingTypeMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<CreateTrainingTypeMutation, CreateTrainingTypeMutationVariables>) {
        return ApolloReactHooks.useMutation<CreateTrainingTypeMutation, CreateTrainingTypeMutationVariables>(CreateTrainingTypeDocument, baseOptions);
      }
export type CreateTrainingTypeMutationHookResult = ReturnType<typeof useCreateTrainingTypeMutation>;
export type CreateTrainingTypeMutationResult = ApolloReactCommon.MutationResult<CreateTrainingTypeMutation>;
export type CreateTrainingTypeMutationOptions = ApolloReactCommon.BaseMutationOptions<CreateTrainingTypeMutation, CreateTrainingTypeMutationVariables>;
export const CreateFormatDocument = gql`
    mutation createFormat($name: String!, $description: String!) {
  createFormat(name: $name, description: $description) {
    id
  }
}
    `;
export type CreateFormatMutationFn = ApolloReactCommon.MutationFunction<CreateFormatMutation, CreateFormatMutationVariables>;

/**
 * __useCreateFormatMutation__
 *
 * To run a mutation, you first call `useCreateFormatMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useCreateFormatMutation` 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 [createFormatMutation, { data, loading, error }] = useCreateFormatMutation({
 *   variables: {
 *      name: // value for 'name'
 *      description: // value for 'description'
 *   },
 * });
 */
export function useCreateFormatMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<CreateFormatMutation, CreateFormatMutationVariables>) {
        return ApolloReactHooks.useMutation<CreateFormatMutation, CreateFormatMutationVariables>(CreateFormatDocument, baseOptions);
      }
export type CreateFormatMutationHookResult = ReturnType<typeof useCreateFormatMutation>;
export type CreateFormatMutationResult = ApolloReactCommon.MutationResult<CreateFormatMutation>;
export type CreateFormatMutationOptions = ApolloReactCommon.BaseMutationOptions<CreateFormatMutation, CreateFormatMutationVariables>;
export const RegisterDocument = gql`
    mutation register($training: ID!) {
  register(training: $training)
}
    `;
export type RegisterMutationFn = ApolloReactCommon.MutationFunction<RegisterMutation, RegisterMutationVariables>;

/**
 * __useRegisterMutation__
 *
 * To run a mutation, you first call `useRegisterMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useRegisterMutation` 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 [registerMutation, { data, loading, error }] = useRegisterMutation({
 *   variables: {
 *      training: // value for 'training'
 *   },
 * });
 */
export function useRegisterMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<RegisterMutation, RegisterMutationVariables>) {
        return ApolloReactHooks.useMutation<RegisterMutation, RegisterMutationVariables>(RegisterDocument, baseOptions);
      }
export type RegisterMutationHookResult = ReturnType<typeof useRegisterMutation>;
export type RegisterMutationResult = ApolloReactCommon.MutationResult<RegisterMutation>;
export type RegisterMutationOptions = ApolloReactCommon.BaseMutationOptions<RegisterMutation, RegisterMutationVariables>;
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!) {
  userSignup(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!) {
  userLogin(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 {
  userLogout
}
    `;
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 {
  currentUser {
    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>;
export const UserDeleteDocument = gql`
    mutation UserDelete($email: String!) {
  deleteUser(email: $email) {
    id
  }
}
    `;
export type UserDeleteMutationFn = ApolloReactCommon.MutationFunction<UserDeleteMutation, UserDeleteMutationVariables>;

/**
 * __useUserDeleteMutation__
 *
 * To run a mutation, you first call `useUserDeleteMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useUserDeleteMutation` 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 [userDeleteMutation, { data, loading, error }] = useUserDeleteMutation({
 *   variables: {
 *      email: // value for 'email'
 *   },
 * });
 */
export function useUserDeleteMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<UserDeleteMutation, UserDeleteMutationVariables>) {
        return ApolloReactHooks.useMutation<UserDeleteMutation, UserDeleteMutationVariables>(UserDeleteDocument, baseOptions);
      }
export type UserDeleteMutationHookResult = ReturnType<typeof useUserDeleteMutation>;
export type UserDeleteMutationResult = ApolloReactCommon.MutationResult<UserDeleteMutation>;
export type UserDeleteMutationOptions = ApolloReactCommon.BaseMutationOptions<UserDeleteMutation, UserDeleteMutationVariables>;
export const UserUpdateDocument = gql`
    mutation UserUpdate($email: String!, $data: UserUpdateInput!) {
  updateUser(email: $email, data: $data) {
    id
    name
    email
    permissions
    interests
  }
}
    `;
export type UserUpdateMutationFn = ApolloReactCommon.MutationFunction<UserUpdateMutation, UserUpdateMutationVariables>;

/**
 * __useUserUpdateMutation__
 *
 * To run a mutation, you first call `useUserUpdateMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useUserUpdateMutation` 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 [userUpdateMutation, { data, loading, error }] = useUserUpdateMutation({
 *   variables: {
 *      email: // value for 'email'
 *      data: // value for 'data'
 *   },
 * });
 */
export function useUserUpdateMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<UserUpdateMutation, UserUpdateMutationVariables>) {
        return ApolloReactHooks.useMutation<UserUpdateMutation, UserUpdateMutationVariables>(UserUpdateDocument, baseOptions);
      }
export type UserUpdateMutationHookResult = ReturnType<typeof useUserUpdateMutation>;
export type UserUpdateMutationResult = ApolloReactCommon.MutationResult<UserUpdateMutation>;
export type UserUpdateMutationOptions = ApolloReactCommon.BaseMutationOptions<UserUpdateMutation, UserUpdateMutationVariables>;