module.exports = {
        typeDefs: // Code generated by Prisma (prisma@1.34.10). DO NOT EDIT.
  // Please don't change this file manually but run `prisma generate` to update it.
  // For more information, please read the docs: https://www.prisma.io/docs/prisma-client/

/* GraphQL */ `type AggregateBlock {
  count: Int!
}

type AggregateComment {
  count: Int!
}

type AggregateExercise {
  count: Int!
}

type AggregateExerciseInstance {
  count: Int!
}

type AggregateFormat {
  count: Int!
}

type AggregateRating {
  count: Int!
}

type AggregateTrack {
  count: Int!
}

type AggregateTraining {
  count: Int!
}

type AggregateTrainingType {
  count: Int!
}

type AggregateUser {
  count: Int!
}

type BatchPayload {
  count: Long!
}

type Block {
  id: ID!
  sequence: Int!
  title: String!
  description: String
  videos: [String!]!
  pictures: [String!]!
  duration: Int
  rounds: Int
  format: Format!
  rest: Int
  tracks(where: TrackWhereInput, orderBy: TrackOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Track!]
  blocks(where: BlockWhereInput, orderBy: BlockOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Block!]
  exercises(where: ExerciseInstanceWhereInput, orderBy: ExerciseInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [ExerciseInstance!]
}

type BlockConnection {
  pageInfo: PageInfo!
  edges: [BlockEdge]!
  aggregate: AggregateBlock!
}

input BlockCreateInput {
  id: ID
  sequence: Int!
  title: String!
  description: String
  videos: BlockCreatevideosInput
  pictures: BlockCreatepicturesInput
  duration: Int
  rounds: Int
  format: FormatCreateOneInput!
  rest: Int
  tracks: TrackCreateManyInput
  blocks: BlockCreateManyInput
  exercises: ExerciseInstanceCreateManyInput
}

input BlockCreateManyInput {
  create: [BlockCreateInput!]
  connect: [BlockWhereUniqueInput!]
}

input BlockCreatepicturesInput {
  set: [String!]
}

input BlockCreatevideosInput {
  set: [String!]
}

type BlockEdge {
  node: Block!
  cursor: String!
}

enum BlockOrderByInput {
  id_ASC
  id_DESC
  sequence_ASC
  sequence_DESC
  title_ASC
  title_DESC
  description_ASC
  description_DESC
  duration_ASC
  duration_DESC
  rounds_ASC
  rounds_DESC
  rest_ASC
  rest_DESC
}

type BlockPreviousValues {
  id: ID!
  sequence: Int!
  title: String!
  description: String
  videos: [String!]!
  pictures: [String!]!
  duration: Int
  rounds: Int
  rest: Int
}

input BlockScalarWhereInput {
  id: ID
  id_not: ID
  id_in: [ID!]
  id_not_in: [ID!]
  id_lt: ID
  id_lte: ID
  id_gt: ID
  id_gte: ID
  id_contains: ID
  id_not_contains: ID
  id_starts_with: ID
  id_not_starts_with: ID
  id_ends_with: ID
  id_not_ends_with: ID
  sequence: Int
  sequence_not: Int
  sequence_in: [Int!]
  sequence_not_in: [Int!]
  sequence_lt: Int
  sequence_lte: Int
  sequence_gt: Int
  sequence_gte: Int
  title: String
  title_not: String
  title_in: [String!]
  title_not_in: [String!]
  title_lt: String
  title_lte: String
  title_gt: String
  title_gte: String
  title_contains: String
  title_not_contains: String
  title_starts_with: String
  title_not_starts_with: String
  title_ends_with: String
  title_not_ends_with: String
  description: String
  description_not: String
  description_in: [String!]
  description_not_in: [String!]
  description_lt: String
  description_lte: String
  description_gt: String
  description_gte: String
  description_contains: String
  description_not_contains: String
  description_starts_with: String
  description_not_starts_with: String
  description_ends_with: String
  description_not_ends_with: String
  duration: Int
  duration_not: Int
  duration_in: [Int!]
  duration_not_in: [Int!]
  duration_lt: Int
  duration_lte: Int
  duration_gt: Int
  duration_gte: Int
  rounds: Int
  rounds_not: Int
  rounds_in: [Int!]
  rounds_not_in: [Int!]
  rounds_lt: Int
  rounds_lte: Int
  rounds_gt: Int
  rounds_gte: Int
  rest: Int
  rest_not: Int
  rest_in: [Int!]
  rest_not_in: [Int!]
  rest_lt: Int
  rest_lte: Int
  rest_gt: Int
  rest_gte: Int
  AND: [BlockScalarWhereInput!]
  OR: [BlockScalarWhereInput!]
  NOT: [BlockScalarWhereInput!]
}

type BlockSubscriptionPayload {
  mutation: MutationType!
  node: Block
  updatedFields: [String!]
  previousValues: BlockPreviousValues
}

input BlockSubscriptionWhereInput {
  mutation_in: [MutationType!]
  updatedFields_contains: String
  updatedFields_contains_every: [String!]
  updatedFields_contains_some: [String!]
  node: BlockWhereInput
  AND: [BlockSubscriptionWhereInput!]
  OR: [BlockSubscriptionWhereInput!]
  NOT: [BlockSubscriptionWhereInput!]
}

input BlockUpdateDataInput {
  sequence: Int
  title: String
  description: String
  videos: BlockUpdatevideosInput
  pictures: BlockUpdatepicturesInput
  duration: Int
  rounds: Int
  format: FormatUpdateOneRequiredInput
  rest: Int
  tracks: TrackUpdateManyInput
  blocks: BlockUpdateManyInput
  exercises: ExerciseInstanceUpdateManyInput
}

input BlockUpdateInput {
  sequence: Int
  title: String
  description: String
  videos: BlockUpdatevideosInput
  pictures: BlockUpdatepicturesInput
  duration: Int
  rounds: Int
  format: FormatUpdateOneRequiredInput
  rest: Int
  tracks: TrackUpdateManyInput
  blocks: BlockUpdateManyInput
  exercises: ExerciseInstanceUpdateManyInput
}

input BlockUpdateManyDataInput {
  sequence: Int
  title: String
  description: String
  videos: BlockUpdatevideosInput
  pictures: BlockUpdatepicturesInput
  duration: Int
  rounds: Int
  rest: Int
}

input BlockUpdateManyInput {
  create: [BlockCreateInput!]
  update: [BlockUpdateWithWhereUniqueNestedInput!]
  upsert: [BlockUpsertWithWhereUniqueNestedInput!]
  delete: [BlockWhereUniqueInput!]
  connect: [BlockWhereUniqueInput!]
  set: [BlockWhereUniqueInput!]
  disconnect: [BlockWhereUniqueInput!]
  deleteMany: [BlockScalarWhereInput!]
  updateMany: [BlockUpdateManyWithWhereNestedInput!]
}

input BlockUpdateManyMutationInput {
  sequence: Int
  title: String
  description: String
  videos: BlockUpdatevideosInput
  pictures: BlockUpdatepicturesInput
  duration: Int
  rounds: Int
  rest: Int
}

input BlockUpdateManyWithWhereNestedInput {
  where: BlockScalarWhereInput!
  data: BlockUpdateManyDataInput!
}

input BlockUpdatepicturesInput {
  set: [String!]
}

input BlockUpdatevideosInput {
  set: [String!]
}

input BlockUpdateWithWhereUniqueNestedInput {
  where: BlockWhereUniqueInput!
  data: BlockUpdateDataInput!
}

input BlockUpsertWithWhereUniqueNestedInput {
  where: BlockWhereUniqueInput!
  update: BlockUpdateDataInput!
  create: BlockCreateInput!
}

input BlockWhereInput {
  id: ID
  id_not: ID
  id_in: [ID!]
  id_not_in: [ID!]
  id_lt: ID
  id_lte: ID
  id_gt: ID
  id_gte: ID
  id_contains: ID
  id_not_contains: ID
  id_starts_with: ID
  id_not_starts_with: ID
  id_ends_with: ID
  id_not_ends_with: ID
  sequence: Int
  sequence_not: Int
  sequence_in: [Int!]
  sequence_not_in: [Int!]
  sequence_lt: Int
  sequence_lte: Int
  sequence_gt: Int
  sequence_gte: Int
  title: String
  title_not: String
  title_in: [String!]
  title_not_in: [String!]
  title_lt: String
  title_lte: String
  title_gt: String
  title_gte: String
  title_contains: String
  title_not_contains: String
  title_starts_with: String
  title_not_starts_with: String
  title_ends_with: String
  title_not_ends_with: String
  description: String
  description_not: String
  description_in: [String!]
  description_not_in: [String!]
  description_lt: String
  description_lte: String
  description_gt: String
  description_gte: String
  description_contains: String
  description_not_contains: String
  description_starts_with: String
  description_not_starts_with: String
  description_ends_with: String
  description_not_ends_with: String
  duration: Int
  duration_not: Int
  duration_in: [Int!]
  duration_not_in: [Int!]
  duration_lt: Int
  duration_lte: Int
  duration_gt: Int
  duration_gte: Int
  rounds: Int
  rounds_not: Int
  rounds_in: [Int!]
  rounds_not_in: [Int!]
  rounds_lt: Int
  rounds_lte: Int
  rounds_gt: Int
  rounds_gte: Int
  format: FormatWhereInput
  rest: Int
  rest_not: Int
  rest_in: [Int!]
  rest_not_in: [Int!]
  rest_lt: Int
  rest_lte: Int
  rest_gt: Int
  rest_gte: Int
  tracks_every: TrackWhereInput
  tracks_some: TrackWhereInput
  tracks_none: TrackWhereInput
  blocks_every: BlockWhereInput
  blocks_some: BlockWhereInput
  blocks_none: BlockWhereInput
  exercises_every: ExerciseInstanceWhereInput
  exercises_some: ExerciseInstanceWhereInput
  exercises_none: ExerciseInstanceWhereInput
  AND: [BlockWhereInput!]
  OR: [BlockWhereInput!]
  NOT: [BlockWhereInput!]
}

input BlockWhereUniqueInput {
  id: ID
}

type Comment {
  id: ID!
  text: String!
  author: User!
  createdAt: DateTime!
}

type CommentConnection {
  pageInfo: PageInfo!
  edges: [CommentEdge]!
  aggregate: AggregateComment!
}

input CommentCreateInput {
  id: ID
  text: String!
  author: UserCreateOneWithoutCommentsInput!
}

input CommentCreateManyWithoutAuthorInput {
  create: [CommentCreateWithoutAuthorInput!]
  connect: [CommentWhereUniqueInput!]
}

input CommentCreateWithoutAuthorInput {
  id: ID
  text: String!
}

type CommentEdge {
  node: Comment!
  cursor: String!
}

enum CommentOrderByInput {
  id_ASC
  id_DESC
  text_ASC
  text_DESC
  createdAt_ASC
  createdAt_DESC
}

type CommentPreviousValues {
  id: ID!
  text: String!
  createdAt: DateTime!
}

input CommentScalarWhereInput {
  id: ID
  id_not: ID
  id_in: [ID!]
  id_not_in: [ID!]
  id_lt: ID
  id_lte: ID
  id_gt: ID
  id_gte: ID
  id_contains: ID
  id_not_contains: ID
  id_starts_with: ID
  id_not_starts_with: ID
  id_ends_with: ID
  id_not_ends_with: ID
  text: String
  text_not: String
  text_in: [String!]
  text_not_in: [String!]
  text_lt: String
  text_lte: String
  text_gt: String
  text_gte: String
  text_contains: String
  text_not_contains: String
  text_starts_with: String
  text_not_starts_with: String
  text_ends_with: String
  text_not_ends_with: String
  createdAt: DateTime
  createdAt_not: DateTime
  createdAt_in: [DateTime!]
  createdAt_not_in: [DateTime!]
  createdAt_lt: DateTime
  createdAt_lte: DateTime
  createdAt_gt: DateTime
  createdAt_gte: DateTime
  AND: [CommentScalarWhereInput!]
  OR: [CommentScalarWhereInput!]
  NOT: [CommentScalarWhereInput!]
}

type CommentSubscriptionPayload {
  mutation: MutationType!
  node: Comment
  updatedFields: [String!]
  previousValues: CommentPreviousValues
}

input CommentSubscriptionWhereInput {
  mutation_in: [MutationType!]
  updatedFields_contains: String
  updatedFields_contains_every: [String!]
  updatedFields_contains_some: [String!]
  node: CommentWhereInput
  AND: [CommentSubscriptionWhereInput!]
  OR: [CommentSubscriptionWhereInput!]
  NOT: [CommentSubscriptionWhereInput!]
}

input CommentUpdateInput {
  text: String
  author: UserUpdateOneRequiredWithoutCommentsInput
}

input CommentUpdateManyDataInput {
  text: String
}

input CommentUpdateManyMutationInput {
  text: String
}

input CommentUpdateManyWithoutAuthorInput {
  create: [CommentCreateWithoutAuthorInput!]
  delete: [CommentWhereUniqueInput!]
  connect: [CommentWhereUniqueInput!]
  set: [CommentWhereUniqueInput!]
  disconnect: [CommentWhereUniqueInput!]
  update: [CommentUpdateWithWhereUniqueWithoutAuthorInput!]
  upsert: [CommentUpsertWithWhereUniqueWithoutAuthorInput!]
  deleteMany: [CommentScalarWhereInput!]
  updateMany: [CommentUpdateManyWithWhereNestedInput!]
}

input CommentUpdateManyWithWhereNestedInput {
  where: CommentScalarWhereInput!
  data: CommentUpdateManyDataInput!
}

input CommentUpdateWithoutAuthorDataInput {
  text: String
}

input CommentUpdateWithWhereUniqueWithoutAuthorInput {
  where: CommentWhereUniqueInput!
  data: CommentUpdateWithoutAuthorDataInput!
}

input CommentUpsertWithWhereUniqueWithoutAuthorInput {
  where: CommentWhereUniqueInput!
  update: CommentUpdateWithoutAuthorDataInput!
  create: CommentCreateWithoutAuthorInput!
}

input CommentWhereInput {
  id: ID
  id_not: ID
  id_in: [ID!]
  id_not_in: [ID!]
  id_lt: ID
  id_lte: ID
  id_gt: ID
  id_gte: ID
  id_contains: ID
  id_not_contains: ID
  id_starts_with: ID
  id_not_starts_with: ID
  id_ends_with: ID
  id_not_ends_with: ID
  text: String
  text_not: String
  text_in: [String!]
  text_not_in: [String!]
  text_lt: String
  text_lte: String
  text_gt: String
  text_gte: String
  text_contains: String
  text_not_contains: String
  text_starts_with: String
  text_not_starts_with: String
  text_ends_with: String
  text_not_ends_with: String
  author: UserWhereInput
  createdAt: DateTime
  createdAt_not: DateTime
  createdAt_in: [DateTime!]
  createdAt_not_in: [DateTime!]
  createdAt_lt: DateTime
  createdAt_lte: DateTime
  createdAt_gt: DateTime
  createdAt_gte: DateTime
  AND: [CommentWhereInput!]
  OR: [CommentWhereInput!]
  NOT: [CommentWhereInput!]
}

input CommentWhereUniqueInput {
  id: ID
}

scalar DateTime

type Exercise {
  id: ID!
  name: String!
  description: String!
  video: String!
  targets: [String!]!
  baseExercise: [String!]!
}

type ExerciseConnection {
  pageInfo: PageInfo!
  edges: [ExerciseEdge]!
  aggregate: AggregateExercise!
}

input ExerciseCreatebaseExerciseInput {
  set: [String!]
}

input ExerciseCreateInput {
  id: ID
  name: String!
  description: String!
  video: String!
  targets: ExerciseCreatetargetsInput
  baseExercise: ExerciseCreatebaseExerciseInput
}

input ExerciseCreateOneInput {
  create: ExerciseCreateInput
  connect: ExerciseWhereUniqueInput
}

input ExerciseCreatetargetsInput {
  set: [String!]
}

type ExerciseEdge {
  node: Exercise!
  cursor: String!
}

type ExerciseInstance {
  id: ID!
  exercise: Exercise!
  repetitions: Int
}

type ExerciseInstanceConnection {
  pageInfo: PageInfo!
  edges: [ExerciseInstanceEdge]!
  aggregate: AggregateExerciseInstance!
}

input ExerciseInstanceCreateInput {
  id: ID
  exercise: ExerciseCreateOneInput!
  repetitions: Int
}

input ExerciseInstanceCreateManyInput {
  create: [ExerciseInstanceCreateInput!]
  connect: [ExerciseInstanceWhereUniqueInput!]
}

type ExerciseInstanceEdge {
  node: ExerciseInstance!
  cursor: String!
}

enum ExerciseInstanceOrderByInput {
  id_ASC
  id_DESC
  repetitions_ASC
  repetitions_DESC
}

type ExerciseInstancePreviousValues {
  id: ID!
  repetitions: Int
}

input ExerciseInstanceScalarWhereInput {
  id: ID
  id_not: ID
  id_in: [ID!]
  id_not_in: [ID!]
  id_lt: ID
  id_lte: ID
  id_gt: ID
  id_gte: ID
  id_contains: ID
  id_not_contains: ID
  id_starts_with: ID
  id_not_starts_with: ID
  id_ends_with: ID
  id_not_ends_with: ID
  repetitions: Int
  repetitions_not: Int
  repetitions_in: [Int!]
  repetitions_not_in: [Int!]
  repetitions_lt: Int
  repetitions_lte: Int
  repetitions_gt: Int
  repetitions_gte: Int
  AND: [ExerciseInstanceScalarWhereInput!]
  OR: [ExerciseInstanceScalarWhereInput!]
  NOT: [ExerciseInstanceScalarWhereInput!]
}

type ExerciseInstanceSubscriptionPayload {
  mutation: MutationType!
  node: ExerciseInstance
  updatedFields: [String!]
  previousValues: ExerciseInstancePreviousValues
}

input ExerciseInstanceSubscriptionWhereInput {
  mutation_in: [MutationType!]
  updatedFields_contains: String
  updatedFields_contains_every: [String!]
  updatedFields_contains_some: [String!]
  node: ExerciseInstanceWhereInput
  AND: [ExerciseInstanceSubscriptionWhereInput!]
  OR: [ExerciseInstanceSubscriptionWhereInput!]
  NOT: [ExerciseInstanceSubscriptionWhereInput!]
}

input ExerciseInstanceUpdateDataInput {
  exercise: ExerciseUpdateOneRequiredInput
  repetitions: Int
}

input ExerciseInstanceUpdateInput {
  exercise: ExerciseUpdateOneRequiredInput
  repetitions: Int
}

input ExerciseInstanceUpdateManyDataInput {
  repetitions: Int
}

input ExerciseInstanceUpdateManyInput {
  create: [ExerciseInstanceCreateInput!]
  update: [ExerciseInstanceUpdateWithWhereUniqueNestedInput!]
  upsert: [ExerciseInstanceUpsertWithWhereUniqueNestedInput!]
  delete: [ExerciseInstanceWhereUniqueInput!]
  connect: [ExerciseInstanceWhereUniqueInput!]
  set: [ExerciseInstanceWhereUniqueInput!]
  disconnect: [ExerciseInstanceWhereUniqueInput!]
  deleteMany: [ExerciseInstanceScalarWhereInput!]
  updateMany: [ExerciseInstanceUpdateManyWithWhereNestedInput!]
}

input ExerciseInstanceUpdateManyMutationInput {
  repetitions: Int
}

input ExerciseInstanceUpdateManyWithWhereNestedInput {
  where: ExerciseInstanceScalarWhereInput!
  data: ExerciseInstanceUpdateManyDataInput!
}

input ExerciseInstanceUpdateWithWhereUniqueNestedInput {
  where: ExerciseInstanceWhereUniqueInput!
  data: ExerciseInstanceUpdateDataInput!
}

input ExerciseInstanceUpsertWithWhereUniqueNestedInput {
  where: ExerciseInstanceWhereUniqueInput!
  update: ExerciseInstanceUpdateDataInput!
  create: ExerciseInstanceCreateInput!
}

input ExerciseInstanceWhereInput {
  id: ID
  id_not: ID
  id_in: [ID!]
  id_not_in: [ID!]
  id_lt: ID
  id_lte: ID
  id_gt: ID
  id_gte: ID
  id_contains: ID
  id_not_contains: ID
  id_starts_with: ID
  id_not_starts_with: ID
  id_ends_with: ID
  id_not_ends_with: ID
  exercise: ExerciseWhereInput
  repetitions: Int
  repetitions_not: Int
  repetitions_in: [Int!]
  repetitions_not_in: [Int!]
  repetitions_lt: Int
  repetitions_lte: Int
  repetitions_gt: Int
  repetitions_gte: Int
  AND: [ExerciseInstanceWhereInput!]
  OR: [ExerciseInstanceWhereInput!]
  NOT: [ExerciseInstanceWhereInput!]
}

input ExerciseInstanceWhereUniqueInput {
  id: ID
}

enum ExerciseOrderByInput {
  id_ASC
  id_DESC
  name_ASC
  name_DESC
  description_ASC
  description_DESC
  video_ASC
  video_DESC
}

type ExercisePreviousValues {
  id: ID!
  name: String!
  description: String!
  video: String!
  targets: [String!]!
  baseExercise: [String!]!
}

type ExerciseSubscriptionPayload {
  mutation: MutationType!
  node: Exercise
  updatedFields: [String!]
  previousValues: ExercisePreviousValues
}

input ExerciseSubscriptionWhereInput {
  mutation_in: [MutationType!]
  updatedFields_contains: String
  updatedFields_contains_every: [String!]
  updatedFields_contains_some: [String!]
  node: ExerciseWhereInput
  AND: [ExerciseSubscriptionWhereInput!]
  OR: [ExerciseSubscriptionWhereInput!]
  NOT: [ExerciseSubscriptionWhereInput!]
}

input ExerciseUpdatebaseExerciseInput {
  set: [String!]
}

input ExerciseUpdateDataInput {
  name: String
  description: String
  video: String
  targets: ExerciseUpdatetargetsInput
  baseExercise: ExerciseUpdatebaseExerciseInput
}

input ExerciseUpdateInput {
  name: String
  description: String
  video: String
  targets: ExerciseUpdatetargetsInput
  baseExercise: ExerciseUpdatebaseExerciseInput
}

input ExerciseUpdateManyMutationInput {
  name: String
  description: String
  video: String
  targets: ExerciseUpdatetargetsInput
  baseExercise: ExerciseUpdatebaseExerciseInput
}

input ExerciseUpdateOneRequiredInput {
  create: ExerciseCreateInput
  update: ExerciseUpdateDataInput
  upsert: ExerciseUpsertNestedInput
  connect: ExerciseWhereUniqueInput
}

input ExerciseUpdatetargetsInput {
  set: [String!]
}

input ExerciseUpsertNestedInput {
  update: ExerciseUpdateDataInput!
  create: ExerciseCreateInput!
}

input ExerciseWhereInput {
  id: ID
  id_not: ID
  id_in: [ID!]
  id_not_in: [ID!]
  id_lt: ID
  id_lte: ID
  id_gt: ID
  id_gte: ID
  id_contains: ID
  id_not_contains: ID
  id_starts_with: ID
  id_not_starts_with: ID
  id_ends_with: ID
  id_not_ends_with: ID
  name: String
  name_not: String
  name_in: [String!]
  name_not_in: [String!]
  name_lt: String
  name_lte: String
  name_gt: String
  name_gte: String
  name_contains: String
  name_not_contains: String
  name_starts_with: String
  name_not_starts_with: String
  name_ends_with: String
  name_not_ends_with: String
  description: String
  description_not: String
  description_in: [String!]
  description_not_in: [String!]
  description_lt: String
  description_lte: String
  description_gt: String
  description_gte: String
  description_contains: String
  description_not_contains: String
  description_starts_with: String
  description_not_starts_with: String
  description_ends_with: String
  description_not_ends_with: String
  video: String
  video_not: String
  video_in: [String!]
  video_not_in: [String!]
  video_lt: String
  video_lte: String
  video_gt: String
  video_gte: String
  video_contains: String
  video_not_contains: String
  video_starts_with: String
  video_not_starts_with: String
  video_ends_with: String
  video_not_ends_with: String
  AND: [ExerciseWhereInput!]
  OR: [ExerciseWhereInput!]
  NOT: [ExerciseWhereInput!]
}

input ExerciseWhereUniqueInput {
  id: ID
}

type Format {
  id: ID!
  name: String!
  description: String!
}

type FormatConnection {
  pageInfo: PageInfo!
  edges: [FormatEdge]!
  aggregate: AggregateFormat!
}

input FormatCreateInput {
  id: ID
  name: String!
  description: String!
}

input FormatCreateOneInput {
  create: FormatCreateInput
  connect: FormatWhereUniqueInput
}

type FormatEdge {
  node: Format!
  cursor: String!
}

enum FormatOrderByInput {
  id_ASC
  id_DESC
  name_ASC
  name_DESC
  description_ASC
  description_DESC
}

type FormatPreviousValues {
  id: ID!
  name: String!
  description: String!
}

type FormatSubscriptionPayload {
  mutation: MutationType!
  node: Format
  updatedFields: [String!]
  previousValues: FormatPreviousValues
}

input FormatSubscriptionWhereInput {
  mutation_in: [MutationType!]
  updatedFields_contains: String
  updatedFields_contains_every: [String!]
  updatedFields_contains_some: [String!]
  node: FormatWhereInput
  AND: [FormatSubscriptionWhereInput!]
  OR: [FormatSubscriptionWhereInput!]
  NOT: [FormatSubscriptionWhereInput!]
}

input FormatUpdateDataInput {
  name: String
  description: String
}

input FormatUpdateInput {
  name: String
  description: String
}

input FormatUpdateManyMutationInput {
  name: String
  description: String
}

input FormatUpdateOneRequiredInput {
  create: FormatCreateInput
  update: FormatUpdateDataInput
  upsert: FormatUpsertNestedInput
  connect: FormatWhereUniqueInput
}

input FormatUpsertNestedInput {
  update: FormatUpdateDataInput!
  create: FormatCreateInput!
}

input FormatWhereInput {
  id: ID
  id_not: ID
  id_in: [ID!]
  id_not_in: [ID!]
  id_lt: ID
  id_lte: ID
  id_gt: ID
  id_gte: ID
  id_contains: ID
  id_not_contains: ID
  id_starts_with: ID
  id_not_starts_with: ID
  id_ends_with: ID
  id_not_ends_with: ID
  name: String
  name_not: String
  name_in: [String!]
  name_not_in: [String!]
  name_lt: String
  name_lte: String
  name_gt: String
  name_gte: String
  name_contains: String
  name_not_contains: String
  name_starts_with: String
  name_not_starts_with: String
  name_ends_with: String
  name_not_ends_with: String
  description: String
  description_not: String
  description_in: [String!]
  description_not_in: [String!]
  description_lt: String
  description_lte: String
  description_gt: String
  description_gte: String
  description_contains: String
  description_not_contains: String
  description_starts_with: String
  description_not_starts_with: String
  description_ends_with: String
  description_not_ends_with: String
  AND: [FormatWhereInput!]
  OR: [FormatWhereInput!]
  NOT: [FormatWhereInput!]
}

input FormatWhereUniqueInput {
  id: ID
}

scalar Long

type Mutation {
  createBlock(data: BlockCreateInput!): Block!
  updateBlock(data: BlockUpdateInput!, where: BlockWhereUniqueInput!): Block
  updateManyBlocks(data: BlockUpdateManyMutationInput!, where: BlockWhereInput): BatchPayload!
  upsertBlock(where: BlockWhereUniqueInput!, create: BlockCreateInput!, update: BlockUpdateInput!): Block!
  deleteBlock(where: BlockWhereUniqueInput!): Block
  deleteManyBlocks(where: BlockWhereInput): BatchPayload!
  createComment(data: CommentCreateInput!): Comment!
  updateComment(data: CommentUpdateInput!, where: CommentWhereUniqueInput!): Comment
  updateManyComments(data: CommentUpdateManyMutationInput!, where: CommentWhereInput): BatchPayload!
  upsertComment(where: CommentWhereUniqueInput!, create: CommentCreateInput!, update: CommentUpdateInput!): Comment!
  deleteComment(where: CommentWhereUniqueInput!): Comment
  deleteManyComments(where: CommentWhereInput): BatchPayload!
  createExercise(data: ExerciseCreateInput!): Exercise!
  updateExercise(data: ExerciseUpdateInput!, where: ExerciseWhereUniqueInput!): Exercise
  updateManyExercises(data: ExerciseUpdateManyMutationInput!, where: ExerciseWhereInput): BatchPayload!
  upsertExercise(where: ExerciseWhereUniqueInput!, create: ExerciseCreateInput!, update: ExerciseUpdateInput!): Exercise!
  deleteExercise(where: ExerciseWhereUniqueInput!): Exercise
  deleteManyExercises(where: ExerciseWhereInput): BatchPayload!
  createExerciseInstance(data: ExerciseInstanceCreateInput!): ExerciseInstance!
  updateExerciseInstance(data: ExerciseInstanceUpdateInput!, where: ExerciseInstanceWhereUniqueInput!): ExerciseInstance
  updateManyExerciseInstances(data: ExerciseInstanceUpdateManyMutationInput!, where: ExerciseInstanceWhereInput): BatchPayload!
  upsertExerciseInstance(where: ExerciseInstanceWhereUniqueInput!, create: ExerciseInstanceCreateInput!, update: ExerciseInstanceUpdateInput!): ExerciseInstance!
  deleteExerciseInstance(where: ExerciseInstanceWhereUniqueInput!): ExerciseInstance
  deleteManyExerciseInstances(where: ExerciseInstanceWhereInput): BatchPayload!
  createFormat(data: FormatCreateInput!): Format!
  updateFormat(data: FormatUpdateInput!, where: FormatWhereUniqueInput!): Format
  updateManyFormats(data: FormatUpdateManyMutationInput!, where: FormatWhereInput): BatchPayload!
  upsertFormat(where: FormatWhereUniqueInput!, create: FormatCreateInput!, update: FormatUpdateInput!): Format!
  deleteFormat(where: FormatWhereUniqueInput!): Format
  deleteManyFormats(where: FormatWhereInput): BatchPayload!
  createRating(data: RatingCreateInput!): Rating!
  updateRating(data: RatingUpdateInput!, where: RatingWhereUniqueInput!): Rating
  updateManyRatings(data: RatingUpdateManyMutationInput!, where: RatingWhereInput): BatchPayload!
  upsertRating(where: RatingWhereUniqueInput!, create: RatingCreateInput!, update: RatingUpdateInput!): Rating!
  deleteRating(where: RatingWhereUniqueInput!): Rating
  deleteManyRatings(where: RatingWhereInput): BatchPayload!
  createTrack(data: TrackCreateInput!): Track!
  updateTrack(data: TrackUpdateInput!, where: TrackWhereUniqueInput!): Track
  updateManyTracks(data: TrackUpdateManyMutationInput!, where: TrackWhereInput): BatchPayload!
  upsertTrack(where: TrackWhereUniqueInput!, create: TrackCreateInput!, update: TrackUpdateInput!): Track!
  deleteTrack(where: TrackWhereUniqueInput!): Track
  deleteManyTracks(where: TrackWhereInput): BatchPayload!
  createTraining(data: TrainingCreateInput!): Training!
  updateTraining(data: TrainingUpdateInput!, where: TrainingWhereUniqueInput!): Training
  updateManyTrainings(data: TrainingUpdateManyMutationInput!, where: TrainingWhereInput): BatchPayload!
  upsertTraining(where: TrainingWhereUniqueInput!, create: TrainingCreateInput!, update: TrainingUpdateInput!): Training!
  deleteTraining(where: TrainingWhereUniqueInput!): Training
  deleteManyTrainings(where: TrainingWhereInput): BatchPayload!
  createTrainingType(data: TrainingTypeCreateInput!): TrainingType!
  updateTrainingType(data: TrainingTypeUpdateInput!, where: TrainingTypeWhereUniqueInput!): TrainingType
  updateManyTrainingTypes(data: TrainingTypeUpdateManyMutationInput!, where: TrainingTypeWhereInput): BatchPayload!
  upsertTrainingType(where: TrainingTypeWhereUniqueInput!, create: TrainingTypeCreateInput!, update: TrainingTypeUpdateInput!): TrainingType!
  deleteTrainingType(where: TrainingTypeWhereUniqueInput!): TrainingType
  deleteManyTrainingTypes(where: TrainingTypeWhereInput): BatchPayload!
  createUser(data: UserCreateInput!): User!
  updateUser(data: UserUpdateInput!, where: UserWhereUniqueInput!): User
  updateManyUsers(data: UserUpdateManyMutationInput!, where: UserWhereInput): BatchPayload!
  upsertUser(where: UserWhereUniqueInput!, create: UserCreateInput!, update: UserUpdateInput!): User!
  deleteUser(where: UserWhereUniqueInput!): User
  deleteManyUsers(where: UserWhereInput): BatchPayload!
}

enum MutationType {
  CREATED
  UPDATED
  DELETED
}

interface Node {
  id: ID!
}

type PageInfo {
  hasNextPage: Boolean!
  hasPreviousPage: Boolean!
  startCursor: String
  endCursor: String
}

enum Permission {
  ADMIN
  INSTRUCTOR
}

type Query {
  block(where: BlockWhereUniqueInput!): Block
  blocks(where: BlockWhereInput, orderBy: BlockOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Block]!
  blocksConnection(where: BlockWhereInput, orderBy: BlockOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): BlockConnection!
  comment(where: CommentWhereUniqueInput!): Comment
  comments(where: CommentWhereInput, orderBy: CommentOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Comment]!
  commentsConnection(where: CommentWhereInput, orderBy: CommentOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): CommentConnection!
  exercise(where: ExerciseWhereUniqueInput!): Exercise
  exercises(where: ExerciseWhereInput, orderBy: ExerciseOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Exercise]!
  exercisesConnection(where: ExerciseWhereInput, orderBy: ExerciseOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): ExerciseConnection!
  exerciseInstance(where: ExerciseInstanceWhereUniqueInput!): ExerciseInstance
  exerciseInstances(where: ExerciseInstanceWhereInput, orderBy: ExerciseInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [ExerciseInstance]!
  exerciseInstancesConnection(where: ExerciseInstanceWhereInput, orderBy: ExerciseInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): ExerciseInstanceConnection!
  format(where: FormatWhereUniqueInput!): Format
  formats(where: FormatWhereInput, orderBy: FormatOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Format]!
  formatsConnection(where: FormatWhereInput, orderBy: FormatOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): FormatConnection!
  rating(where: RatingWhereUniqueInput!): Rating
  ratings(where: RatingWhereInput, orderBy: RatingOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Rating]!
  ratingsConnection(where: RatingWhereInput, orderBy: RatingOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): RatingConnection!
  track(where: TrackWhereUniqueInput!): Track
  tracks(where: TrackWhereInput, orderBy: TrackOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Track]!
  tracksConnection(where: TrackWhereInput, orderBy: TrackOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): TrackConnection!
  training(where: TrainingWhereUniqueInput!): Training
  trainings(where: TrainingWhereInput, orderBy: TrainingOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Training]!
  trainingsConnection(where: TrainingWhereInput, orderBy: TrainingOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): TrainingConnection!
  trainingType(where: TrainingTypeWhereUniqueInput!): TrainingType
  trainingTypes(where: TrainingTypeWhereInput, orderBy: TrainingTypeOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [TrainingType]!
  trainingTypesConnection(where: TrainingTypeWhereInput, orderBy: TrainingTypeOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): TrainingTypeConnection!
  user(where: UserWhereUniqueInput!): User
  users(where: UserWhereInput, orderBy: UserOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [User]!
  usersConnection(where: UserWhereInput, orderBy: UserOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): UserConnection!
  node(id: ID!): Node
}

type Rating {
  id: ID!
  user: User!
  value: Int!
  comment: String!
  createdAt: DateTime!
}

type RatingConnection {
  pageInfo: PageInfo!
  edges: [RatingEdge]!
  aggregate: AggregateRating!
}

input RatingCreateInput {
  id: ID
  user: UserCreateOneWithoutRatingsInput!
  value: Int!
  comment: String!
}

input RatingCreateManyInput {
  create: [RatingCreateInput!]
  connect: [RatingWhereUniqueInput!]
}

input RatingCreateManyWithoutUserInput {
  create: [RatingCreateWithoutUserInput!]
  connect: [RatingWhereUniqueInput!]
}

input RatingCreateWithoutUserInput {
  id: ID
  value: Int!
  comment: String!
}

type RatingEdge {
  node: Rating!
  cursor: String!
}

enum RatingOrderByInput {
  id_ASC
  id_DESC
  value_ASC
  value_DESC
  comment_ASC
  comment_DESC
  createdAt_ASC
  createdAt_DESC
}

type RatingPreviousValues {
  id: ID!
  value: Int!
  comment: String!
  createdAt: DateTime!
}

input RatingScalarWhereInput {
  id: ID
  id_not: ID
  id_in: [ID!]
  id_not_in: [ID!]
  id_lt: ID
  id_lte: ID
  id_gt: ID
  id_gte: ID
  id_contains: ID
  id_not_contains: ID
  id_starts_with: ID
  id_not_starts_with: ID
  id_ends_with: ID
  id_not_ends_with: ID
  value: Int
  value_not: Int
  value_in: [Int!]
  value_not_in: [Int!]
  value_lt: Int
  value_lte: Int
  value_gt: Int
  value_gte: Int
  comment: String
  comment_not: String
  comment_in: [String!]
  comment_not_in: [String!]
  comment_lt: String
  comment_lte: String
  comment_gt: String
  comment_gte: String
  comment_contains: String
  comment_not_contains: String
  comment_starts_with: String
  comment_not_starts_with: String
  comment_ends_with: String
  comment_not_ends_with: String
  createdAt: DateTime
  createdAt_not: DateTime
  createdAt_in: [DateTime!]
  createdAt_not_in: [DateTime!]
  createdAt_lt: DateTime
  createdAt_lte: DateTime
  createdAt_gt: DateTime
  createdAt_gte: DateTime
  AND: [RatingScalarWhereInput!]
  OR: [RatingScalarWhereInput!]
  NOT: [RatingScalarWhereInput!]
}

type RatingSubscriptionPayload {
  mutation: MutationType!
  node: Rating
  updatedFields: [String!]
  previousValues: RatingPreviousValues
}

input RatingSubscriptionWhereInput {
  mutation_in: [MutationType!]
  updatedFields_contains: String
  updatedFields_contains_every: [String!]
  updatedFields_contains_some: [String!]
  node: RatingWhereInput
  AND: [RatingSubscriptionWhereInput!]
  OR: [RatingSubscriptionWhereInput!]
  NOT: [RatingSubscriptionWhereInput!]
}

input RatingUpdateDataInput {
  user: UserUpdateOneRequiredWithoutRatingsInput
  value: Int
  comment: String
}

input RatingUpdateInput {
  user: UserUpdateOneRequiredWithoutRatingsInput
  value: Int
  comment: String
}

input RatingUpdateManyDataInput {
  value: Int
  comment: String
}

input RatingUpdateManyInput {
  create: [RatingCreateInput!]
  update: [RatingUpdateWithWhereUniqueNestedInput!]
  upsert: [RatingUpsertWithWhereUniqueNestedInput!]
  delete: [RatingWhereUniqueInput!]
  connect: [RatingWhereUniqueInput!]
  set: [RatingWhereUniqueInput!]
  disconnect: [RatingWhereUniqueInput!]
  deleteMany: [RatingScalarWhereInput!]
  updateMany: [RatingUpdateManyWithWhereNestedInput!]
}

input RatingUpdateManyMutationInput {
  value: Int
  comment: String
}

input RatingUpdateManyWithoutUserInput {
  create: [RatingCreateWithoutUserInput!]
  delete: [RatingWhereUniqueInput!]
  connect: [RatingWhereUniqueInput!]
  set: [RatingWhereUniqueInput!]
  disconnect: [RatingWhereUniqueInput!]
  update: [RatingUpdateWithWhereUniqueWithoutUserInput!]
  upsert: [RatingUpsertWithWhereUniqueWithoutUserInput!]
  deleteMany: [RatingScalarWhereInput!]
  updateMany: [RatingUpdateManyWithWhereNestedInput!]
}

input RatingUpdateManyWithWhereNestedInput {
  where: RatingScalarWhereInput!
  data: RatingUpdateManyDataInput!
}

input RatingUpdateWithoutUserDataInput {
  value: Int
  comment: String
}

input RatingUpdateWithWhereUniqueNestedInput {
  where: RatingWhereUniqueInput!
  data: RatingUpdateDataInput!
}

input RatingUpdateWithWhereUniqueWithoutUserInput {
  where: RatingWhereUniqueInput!
  data: RatingUpdateWithoutUserDataInput!
}

input RatingUpsertWithWhereUniqueNestedInput {
  where: RatingWhereUniqueInput!
  update: RatingUpdateDataInput!
  create: RatingCreateInput!
}

input RatingUpsertWithWhereUniqueWithoutUserInput {
  where: RatingWhereUniqueInput!
  update: RatingUpdateWithoutUserDataInput!
  create: RatingCreateWithoutUserInput!
}

input RatingWhereInput {
  id: ID
  id_not: ID
  id_in: [ID!]
  id_not_in: [ID!]
  id_lt: ID
  id_lte: ID
  id_gt: ID
  id_gte: ID
  id_contains: ID
  id_not_contains: ID
  id_starts_with: ID
  id_not_starts_with: ID
  id_ends_with: ID
  id_not_ends_with: ID
  user: UserWhereInput
  value: Int
  value_not: Int
  value_in: [Int!]
  value_not_in: [Int!]
  value_lt: Int
  value_lte: Int
  value_gt: Int
  value_gte: Int
  comment: String
  comment_not: String
  comment_in: [String!]
  comment_not_in: [String!]
  comment_lt: String
  comment_lte: String
  comment_gt: String
  comment_gte: String
  comment_contains: String
  comment_not_contains: String
  comment_starts_with: String
  comment_not_starts_with: String
  comment_ends_with: String
  comment_not_ends_with: String
  createdAt: DateTime
  createdAt_not: DateTime
  createdAt_in: [DateTime!]
  createdAt_not_in: [DateTime!]
  createdAt_lt: DateTime
  createdAt_lte: DateTime
  createdAt_gt: DateTime
  createdAt_gte: DateTime
  AND: [RatingWhereInput!]
  OR: [RatingWhereInput!]
  NOT: [RatingWhereInput!]
}

input RatingWhereUniqueInput {
  id: ID
}

type Subscription {
  block(where: BlockSubscriptionWhereInput): BlockSubscriptionPayload
  comment(where: CommentSubscriptionWhereInput): CommentSubscriptionPayload
  exercise(where: ExerciseSubscriptionWhereInput): ExerciseSubscriptionPayload
  exerciseInstance(where: ExerciseInstanceSubscriptionWhereInput): ExerciseInstanceSubscriptionPayload
  format(where: FormatSubscriptionWhereInput): FormatSubscriptionPayload
  rating(where: RatingSubscriptionWhereInput): RatingSubscriptionPayload
  track(where: TrackSubscriptionWhereInput): TrackSubscriptionPayload
  training(where: TrainingSubscriptionWhereInput): TrainingSubscriptionPayload
  trainingType(where: TrainingTypeSubscriptionWhereInput): TrainingTypeSubscriptionPayload
  user(where: UserSubscriptionWhereInput): UserSubscriptionPayload
}

type Track {
  id: ID!
  title: String!
  artist: String!
  duration: Int!
  link: String!
}

type TrackConnection {
  pageInfo: PageInfo!
  edges: [TrackEdge]!
  aggregate: AggregateTrack!
}

input TrackCreateInput {
  id: ID
  title: String!
  artist: String!
  duration: Int!
  link: String!
}

input TrackCreateManyInput {
  create: [TrackCreateInput!]
  connect: [TrackWhereUniqueInput!]
}

type TrackEdge {
  node: Track!
  cursor: String!
}

enum TrackOrderByInput {
  id_ASC
  id_DESC
  title_ASC
  title_DESC
  artist_ASC
  artist_DESC
  duration_ASC
  duration_DESC
  link_ASC
  link_DESC
}

type TrackPreviousValues {
  id: ID!
  title: String!
  artist: String!
  duration: Int!
  link: String!
}

input TrackScalarWhereInput {
  id: ID
  id_not: ID
  id_in: [ID!]
  id_not_in: [ID!]
  id_lt: ID
  id_lte: ID
  id_gt: ID
  id_gte: ID
  id_contains: ID
  id_not_contains: ID
  id_starts_with: ID
  id_not_starts_with: ID
  id_ends_with: ID
  id_not_ends_with: ID
  title: String
  title_not: String
  title_in: [String!]
  title_not_in: [String!]
  title_lt: String
  title_lte: String
  title_gt: String
  title_gte: String
  title_contains: String
  title_not_contains: String
  title_starts_with: String
  title_not_starts_with: String
  title_ends_with: String
  title_not_ends_with: String
  artist: String
  artist_not: String
  artist_in: [String!]
  artist_not_in: [String!]
  artist_lt: String
  artist_lte: String
  artist_gt: String
  artist_gte: String
  artist_contains: String
  artist_not_contains: String
  artist_starts_with: String
  artist_not_starts_with: String
  artist_ends_with: String
  artist_not_ends_with: String
  duration: Int
  duration_not: Int
  duration_in: [Int!]
  duration_not_in: [Int!]
  duration_lt: Int
  duration_lte: Int
  duration_gt: Int
  duration_gte: Int
  link: String
  link_not: String
  link_in: [String!]
  link_not_in: [String!]
  link_lt: String
  link_lte: String
  link_gt: String
  link_gte: String
  link_contains: String
  link_not_contains: String
  link_starts_with: String
  link_not_starts_with: String
  link_ends_with: String
  link_not_ends_with: String
  AND: [TrackScalarWhereInput!]
  OR: [TrackScalarWhereInput!]
  NOT: [TrackScalarWhereInput!]
}

type TrackSubscriptionPayload {
  mutation: MutationType!
  node: Track
  updatedFields: [String!]
  previousValues: TrackPreviousValues
}

input TrackSubscriptionWhereInput {
  mutation_in: [MutationType!]
  updatedFields_contains: String
  updatedFields_contains_every: [String!]
  updatedFields_contains_some: [String!]
  node: TrackWhereInput
  AND: [TrackSubscriptionWhereInput!]
  OR: [TrackSubscriptionWhereInput!]
  NOT: [TrackSubscriptionWhereInput!]
}

input TrackUpdateDataInput {
  title: String
  artist: String
  duration: Int
  link: String
}

input TrackUpdateInput {
  title: String
  artist: String
  duration: Int
  link: String
}

input TrackUpdateManyDataInput {
  title: String
  artist: String
  duration: Int
  link: String
}

input TrackUpdateManyInput {
  create: [TrackCreateInput!]
  update: [TrackUpdateWithWhereUniqueNestedInput!]
  upsert: [TrackUpsertWithWhereUniqueNestedInput!]
  delete: [TrackWhereUniqueInput!]
  connect: [TrackWhereUniqueInput!]
  set: [TrackWhereUniqueInput!]
  disconnect: [TrackWhereUniqueInput!]
  deleteMany: [TrackScalarWhereInput!]
  updateMany: [TrackUpdateManyWithWhereNestedInput!]
}

input TrackUpdateManyMutationInput {
  title: String
  artist: String
  duration: Int
  link: String
}

input TrackUpdateManyWithWhereNestedInput {
  where: TrackScalarWhereInput!
  data: TrackUpdateManyDataInput!
}

input TrackUpdateWithWhereUniqueNestedInput {
  where: TrackWhereUniqueInput!
  data: TrackUpdateDataInput!
}

input TrackUpsertWithWhereUniqueNestedInput {
  where: TrackWhereUniqueInput!
  update: TrackUpdateDataInput!
  create: TrackCreateInput!
}

input TrackWhereInput {
  id: ID
  id_not: ID
  id_in: [ID!]
  id_not_in: [ID!]
  id_lt: ID
  id_lte: ID
  id_gt: ID
  id_gte: ID
  id_contains: ID
  id_not_contains: ID
  id_starts_with: ID
  id_not_starts_with: ID
  id_ends_with: ID
  id_not_ends_with: ID
  title: String
  title_not: String
  title_in: [String!]
  title_not_in: [String!]
  title_lt: String
  title_lte: String
  title_gt: String
  title_gte: String
  title_contains: String
  title_not_contains: String
  title_starts_with: String
  title_not_starts_with: String
  title_ends_with: String
  title_not_ends_with: String
  artist: String
  artist_not: String
  artist_in: [String!]
  artist_not_in: [String!]
  artist_lt: String
  artist_lte: String
  artist_gt: String
  artist_gte: String
  artist_contains: String
  artist_not_contains: String
  artist_starts_with: String
  artist_not_starts_with: String
  artist_ends_with: String
  artist_not_ends_with: String
  duration: Int
  duration_not: Int
  duration_in: [Int!]
  duration_not_in: [Int!]
  duration_lt: Int
  duration_lte: Int
  duration_gt: Int
  duration_gte: Int
  link: String
  link_not: String
  link_in: [String!]
  link_not_in: [String!]
  link_lt: String
  link_lte: String
  link_gt: String
  link_gte: String
  link_contains: String
  link_not_contains: String
  link_starts_with: String
  link_not_starts_with: String
  link_ends_with: String
  link_not_ends_with: String
  AND: [TrackWhereInput!]
  OR: [TrackWhereInput!]
  NOT: [TrackWhereInput!]
}

input TrackWhereUniqueInput {
  id: ID
}

type Training {
  id: ID!
  title: String!
  type: TrainingType!
  createdAt: DateTime!
  trainingDate: DateTime
  location: String
  registrations(where: UserWhereInput, orderBy: UserOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [User!]
  attendance: Int
  ratings(where: RatingWhereInput, orderBy: RatingOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Rating!]
  published: Boolean!
  blocks(where: BlockWhereInput, orderBy: BlockOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Block!]
}

type TrainingConnection {
  pageInfo: PageInfo!
  edges: [TrainingEdge]!
  aggregate: AggregateTraining!
}

input TrainingCreateInput {
  id: ID
  title: String!
  type: TrainingTypeCreateOneInput!
  trainingDate: DateTime
  location: String
  registrations: UserCreateManyInput
  attendance: Int
  ratings: RatingCreateManyInput
  published: Boolean!
  blocks: BlockCreateManyInput
}

type TrainingEdge {
  node: Training!
  cursor: String!
}

enum TrainingOrderByInput {
  id_ASC
  id_DESC
  title_ASC
  title_DESC
  createdAt_ASC
  createdAt_DESC
  trainingDate_ASC
  trainingDate_DESC
  location_ASC
  location_DESC
  attendance_ASC
  attendance_DESC
  published_ASC
  published_DESC
}

type TrainingPreviousValues {
  id: ID!
  title: String!
  createdAt: DateTime!
  trainingDate: DateTime
  location: String
  attendance: Int
  published: Boolean!
}

type TrainingSubscriptionPayload {
  mutation: MutationType!
  node: Training
  updatedFields: [String!]
  previousValues: TrainingPreviousValues
}

input TrainingSubscriptionWhereInput {
  mutation_in: [MutationType!]
  updatedFields_contains: String
  updatedFields_contains_every: [String!]
  updatedFields_contains_some: [String!]
  node: TrainingWhereInput
  AND: [TrainingSubscriptionWhereInput!]
  OR: [TrainingSubscriptionWhereInput!]
  NOT: [TrainingSubscriptionWhereInput!]
}

type TrainingType {
  id: ID!
  name: String!
  description: String!
}

type TrainingTypeConnection {
  pageInfo: PageInfo!
  edges: [TrainingTypeEdge]!
  aggregate: AggregateTrainingType!
}

input TrainingTypeCreateInput {
  id: ID
  name: String!
  description: String!
}

input TrainingTypeCreateOneInput {
  create: TrainingTypeCreateInput
  connect: TrainingTypeWhereUniqueInput
}

type TrainingTypeEdge {
  node: TrainingType!
  cursor: String!
}

enum TrainingTypeOrderByInput {
  id_ASC
  id_DESC
  name_ASC
  name_DESC
  description_ASC
  description_DESC
}

type TrainingTypePreviousValues {
  id: ID!
  name: String!
  description: String!
}

type TrainingTypeSubscriptionPayload {
  mutation: MutationType!
  node: TrainingType
  updatedFields: [String!]
  previousValues: TrainingTypePreviousValues
}

input TrainingTypeSubscriptionWhereInput {
  mutation_in: [MutationType!]
  updatedFields_contains: String
  updatedFields_contains_every: [String!]
  updatedFields_contains_some: [String!]
  node: TrainingTypeWhereInput
  AND: [TrainingTypeSubscriptionWhereInput!]
  OR: [TrainingTypeSubscriptionWhereInput!]
  NOT: [TrainingTypeSubscriptionWhereInput!]
}

input TrainingTypeUpdateDataInput {
  name: String
  description: String
}

input TrainingTypeUpdateInput {
  name: String
  description: String
}

input TrainingTypeUpdateManyMutationInput {
  name: String
  description: String
}

input TrainingTypeUpdateOneRequiredInput {
  create: TrainingTypeCreateInput
  update: TrainingTypeUpdateDataInput
  upsert: TrainingTypeUpsertNestedInput
  connect: TrainingTypeWhereUniqueInput
}

input TrainingTypeUpsertNestedInput {
  update: TrainingTypeUpdateDataInput!
  create: TrainingTypeCreateInput!
}

input TrainingTypeWhereInput {
  id: ID
  id_not: ID
  id_in: [ID!]
  id_not_in: [ID!]
  id_lt: ID
  id_lte: ID
  id_gt: ID
  id_gte: ID
  id_contains: ID
  id_not_contains: ID
  id_starts_with: ID
  id_not_starts_with: ID
  id_ends_with: ID
  id_not_ends_with: ID
  name: String
  name_not: String
  name_in: [String!]
  name_not_in: [String!]
  name_lt: String
  name_lte: String
  name_gt: String
  name_gte: String
  name_contains: String
  name_not_contains: String
  name_starts_with: String
  name_not_starts_with: String
  name_ends_with: String
  name_not_ends_with: String
  description: String
  description_not: String
  description_in: [String!]
  description_not_in: [String!]
  description_lt: String
  description_lte: String
  description_gt: String
  description_gte: String
  description_contains: String
  description_not_contains: String
  description_starts_with: String
  description_not_starts_with: String
  description_ends_with: String
  description_not_ends_with: String
  AND: [TrainingTypeWhereInput!]
  OR: [TrainingTypeWhereInput!]
  NOT: [TrainingTypeWhereInput!]
}

input TrainingTypeWhereUniqueInput {
  id: ID
  name: String
}

input TrainingUpdateInput {
  title: String
  type: TrainingTypeUpdateOneRequiredInput
  trainingDate: DateTime
  location: String
  registrations: UserUpdateManyInput
  attendance: Int
  ratings: RatingUpdateManyInput
  published: Boolean
  blocks: BlockUpdateManyInput
}

input TrainingUpdateManyMutationInput {
  title: String
  trainingDate: DateTime
  location: String
  attendance: Int
  published: Boolean
}

input TrainingWhereInput {
  id: ID
  id_not: ID
  id_in: [ID!]
  id_not_in: [ID!]
  id_lt: ID
  id_lte: ID
  id_gt: ID
  id_gte: ID
  id_contains: ID
  id_not_contains: ID
  id_starts_with: ID
  id_not_starts_with: ID
  id_ends_with: ID
  id_not_ends_with: ID
  title: String
  title_not: String
  title_in: [String!]
  title_not_in: [String!]
  title_lt: String
  title_lte: String
  title_gt: String
  title_gte: String
  title_contains: String
  title_not_contains: String
  title_starts_with: String
  title_not_starts_with: String
  title_ends_with: String
  title_not_ends_with: String
  type: TrainingTypeWhereInput
  createdAt: DateTime
  createdAt_not: DateTime
  createdAt_in: [DateTime!]
  createdAt_not_in: [DateTime!]
  createdAt_lt: DateTime
  createdAt_lte: DateTime
  createdAt_gt: DateTime
  createdAt_gte: DateTime
  trainingDate: DateTime
  trainingDate_not: DateTime
  trainingDate_in: [DateTime!]
  trainingDate_not_in: [DateTime!]
  trainingDate_lt: DateTime
  trainingDate_lte: DateTime
  trainingDate_gt: DateTime
  trainingDate_gte: DateTime
  location: String
  location_not: String
  location_in: [String!]
  location_not_in: [String!]
  location_lt: String
  location_lte: String
  location_gt: String
  location_gte: String
  location_contains: String
  location_not_contains: String
  location_starts_with: String
  location_not_starts_with: String
  location_ends_with: String
  location_not_ends_with: String
  registrations_every: UserWhereInput
  registrations_some: UserWhereInput
  registrations_none: UserWhereInput
  attendance: Int
  attendance_not: Int
  attendance_in: [Int!]
  attendance_not_in: [Int!]
  attendance_lt: Int
  attendance_lte: Int
  attendance_gt: Int
  attendance_gte: Int
  ratings_every: RatingWhereInput
  ratings_some: RatingWhereInput
  ratings_none: RatingWhereInput
  published: Boolean
  published_not: Boolean
  blocks_every: BlockWhereInput
  blocks_some: BlockWhereInput
  blocks_none: BlockWhereInput
  AND: [TrainingWhereInput!]
  OR: [TrainingWhereInput!]
  NOT: [TrainingWhereInput!]
}

input TrainingWhereUniqueInput {
  id: ID
}

type User {
  id: ID!
  email: String!
  name: String!
  password: String!
  resetToken: String
  resetTokenExpiry: Float
  createdAt: DateTime!
  comments(where: CommentWhereInput, orderBy: CommentOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Comment!]
  ratings(where: RatingWhereInput, orderBy: RatingOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Rating!]
  permissions: [Permission!]!
  interests: [String!]!
}

type UserConnection {
  pageInfo: PageInfo!
  edges: [UserEdge]!
  aggregate: AggregateUser!
}

input UserCreateInput {
  id: ID
  email: String!
  name: String!
  password: String!
  resetToken: String
  resetTokenExpiry: Float
  comments: CommentCreateManyWithoutAuthorInput
  ratings: RatingCreateManyWithoutUserInput
  permissions: UserCreatepermissionsInput
  interests: UserCreateinterestsInput
}

input UserCreateinterestsInput {
  set: [String!]
}

input UserCreateManyInput {
  create: [UserCreateInput!]
  connect: [UserWhereUniqueInput!]
}

input UserCreateOneWithoutCommentsInput {
  create: UserCreateWithoutCommentsInput
  connect: UserWhereUniqueInput
}

input UserCreateOneWithoutRatingsInput {
  create: UserCreateWithoutRatingsInput
  connect: UserWhereUniqueInput
}

input UserCreatepermissionsInput {
  set: [Permission!]
}

input UserCreateWithoutCommentsInput {
  id: ID
  email: String!
  name: String!
  password: String!
  resetToken: String
  resetTokenExpiry: Float
  ratings: RatingCreateManyWithoutUserInput
  permissions: UserCreatepermissionsInput
  interests: UserCreateinterestsInput
}

input UserCreateWithoutRatingsInput {
  id: ID
  email: String!
  name: String!
  password: String!
  resetToken: String
  resetTokenExpiry: Float
  comments: CommentCreateManyWithoutAuthorInput
  permissions: UserCreatepermissionsInput
  interests: UserCreateinterestsInput
}

type UserEdge {
  node: User!
  cursor: String!
}

enum UserOrderByInput {
  id_ASC
  id_DESC
  email_ASC
  email_DESC
  name_ASC
  name_DESC
  password_ASC
  password_DESC
  resetToken_ASC
  resetToken_DESC
  resetTokenExpiry_ASC
  resetTokenExpiry_DESC
  createdAt_ASC
  createdAt_DESC
}

type UserPreviousValues {
  id: ID!
  email: String!
  name: String!
  password: String!
  resetToken: String
  resetTokenExpiry: Float
  createdAt: DateTime!
  permissions: [Permission!]!
  interests: [String!]!
}

input UserScalarWhereInput {
  id: ID
  id_not: ID
  id_in: [ID!]
  id_not_in: [ID!]
  id_lt: ID
  id_lte: ID
  id_gt: ID
  id_gte: ID
  id_contains: ID
  id_not_contains: ID
  id_starts_with: ID
  id_not_starts_with: ID
  id_ends_with: ID
  id_not_ends_with: ID
  email: String
  email_not: String
  email_in: [String!]
  email_not_in: [String!]
  email_lt: String
  email_lte: String
  email_gt: String
  email_gte: String
  email_contains: String
  email_not_contains: String
  email_starts_with: String
  email_not_starts_with: String
  email_ends_with: String
  email_not_ends_with: String
  name: String
  name_not: String
  name_in: [String!]
  name_not_in: [String!]
  name_lt: String
  name_lte: String
  name_gt: String
  name_gte: String
  name_contains: String
  name_not_contains: String
  name_starts_with: String
  name_not_starts_with: String
  name_ends_with: String
  name_not_ends_with: String
  password: String
  password_not: String
  password_in: [String!]
  password_not_in: [String!]
  password_lt: String
  password_lte: String
  password_gt: String
  password_gte: String
  password_contains: String
  password_not_contains: String
  password_starts_with: String
  password_not_starts_with: String
  password_ends_with: String
  password_not_ends_with: String
  resetToken: String
  resetToken_not: String
  resetToken_in: [String!]
  resetToken_not_in: [String!]
  resetToken_lt: String
  resetToken_lte: String
  resetToken_gt: String
  resetToken_gte: String
  resetToken_contains: String
  resetToken_not_contains: String
  resetToken_starts_with: String
  resetToken_not_starts_with: String
  resetToken_ends_with: String
  resetToken_not_ends_with: String
  resetTokenExpiry: Float
  resetTokenExpiry_not: Float
  resetTokenExpiry_in: [Float!]
  resetTokenExpiry_not_in: [Float!]
  resetTokenExpiry_lt: Float
  resetTokenExpiry_lte: Float
  resetTokenExpiry_gt: Float
  resetTokenExpiry_gte: Float
  createdAt: DateTime
  createdAt_not: DateTime
  createdAt_in: [DateTime!]
  createdAt_not_in: [DateTime!]
  createdAt_lt: DateTime
  createdAt_lte: DateTime
  createdAt_gt: DateTime
  createdAt_gte: DateTime
  AND: [UserScalarWhereInput!]
  OR: [UserScalarWhereInput!]
  NOT: [UserScalarWhereInput!]
}

type UserSubscriptionPayload {
  mutation: MutationType!
  node: User
  updatedFields: [String!]
  previousValues: UserPreviousValues
}

input UserSubscriptionWhereInput {
  mutation_in: [MutationType!]
  updatedFields_contains: String
  updatedFields_contains_every: [String!]
  updatedFields_contains_some: [String!]
  node: UserWhereInput
  AND: [UserSubscriptionWhereInput!]
  OR: [UserSubscriptionWhereInput!]
  NOT: [UserSubscriptionWhereInput!]
}

input UserUpdateDataInput {
  email: String
  name: String
  password: String
  resetToken: String
  resetTokenExpiry: Float
  comments: CommentUpdateManyWithoutAuthorInput
  ratings: RatingUpdateManyWithoutUserInput
  permissions: UserUpdatepermissionsInput
  interests: UserUpdateinterestsInput
}

input UserUpdateInput {
  email: String
  name: String
  password: String
  resetToken: String
  resetTokenExpiry: Float
  comments: CommentUpdateManyWithoutAuthorInput
  ratings: RatingUpdateManyWithoutUserInput
  permissions: UserUpdatepermissionsInput
  interests: UserUpdateinterestsInput
}

input UserUpdateinterestsInput {
  set: [String!]
}

input UserUpdateManyDataInput {
  email: String
  name: String
  password: String
  resetToken: String
  resetTokenExpiry: Float
  permissions: UserUpdatepermissionsInput
  interests: UserUpdateinterestsInput
}

input UserUpdateManyInput {
  create: [UserCreateInput!]
  update: [UserUpdateWithWhereUniqueNestedInput!]
  upsert: [UserUpsertWithWhereUniqueNestedInput!]
  delete: [UserWhereUniqueInput!]
  connect: [UserWhereUniqueInput!]
  set: [UserWhereUniqueInput!]
  disconnect: [UserWhereUniqueInput!]
  deleteMany: [UserScalarWhereInput!]
  updateMany: [UserUpdateManyWithWhereNestedInput!]
}

input UserUpdateManyMutationInput {
  email: String
  name: String
  password: String
  resetToken: String
  resetTokenExpiry: Float
  permissions: UserUpdatepermissionsInput
  interests: UserUpdateinterestsInput
}

input UserUpdateManyWithWhereNestedInput {
  where: UserScalarWhereInput!
  data: UserUpdateManyDataInput!
}

input UserUpdateOneRequiredWithoutCommentsInput {
  create: UserCreateWithoutCommentsInput
  update: UserUpdateWithoutCommentsDataInput
  upsert: UserUpsertWithoutCommentsInput
  connect: UserWhereUniqueInput
}

input UserUpdateOneRequiredWithoutRatingsInput {
  create: UserCreateWithoutRatingsInput
  update: UserUpdateWithoutRatingsDataInput
  upsert: UserUpsertWithoutRatingsInput
  connect: UserWhereUniqueInput
}

input UserUpdatepermissionsInput {
  set: [Permission!]
}

input UserUpdateWithoutCommentsDataInput {
  email: String
  name: String
  password: String
  resetToken: String
  resetTokenExpiry: Float
  ratings: RatingUpdateManyWithoutUserInput
  permissions: UserUpdatepermissionsInput
  interests: UserUpdateinterestsInput
}

input UserUpdateWithoutRatingsDataInput {
  email: String
  name: String
  password: String
  resetToken: String
  resetTokenExpiry: Float
  comments: CommentUpdateManyWithoutAuthorInput
  permissions: UserUpdatepermissionsInput
  interests: UserUpdateinterestsInput
}

input UserUpdateWithWhereUniqueNestedInput {
  where: UserWhereUniqueInput!
  data: UserUpdateDataInput!
}

input UserUpsertWithoutCommentsInput {
  update: UserUpdateWithoutCommentsDataInput!
  create: UserCreateWithoutCommentsInput!
}

input UserUpsertWithoutRatingsInput {
  update: UserUpdateWithoutRatingsDataInput!
  create: UserCreateWithoutRatingsInput!
}

input UserUpsertWithWhereUniqueNestedInput {
  where: UserWhereUniqueInput!
  update: UserUpdateDataInput!
  create: UserCreateInput!
}

input UserWhereInput {
  id: ID
  id_not: ID
  id_in: [ID!]
  id_not_in: [ID!]
  id_lt: ID
  id_lte: ID
  id_gt: ID
  id_gte: ID
  id_contains: ID
  id_not_contains: ID
  id_starts_with: ID
  id_not_starts_with: ID
  id_ends_with: ID
  id_not_ends_with: ID
  email: String
  email_not: String
  email_in: [String!]
  email_not_in: [String!]
  email_lt: String
  email_lte: String
  email_gt: String
  email_gte: String
  email_contains: String
  email_not_contains: String
  email_starts_with: String
  email_not_starts_with: String
  email_ends_with: String
  email_not_ends_with: String
  name: String
  name_not: String
  name_in: [String!]
  name_not_in: [String!]
  name_lt: String
  name_lte: String
  name_gt: String
  name_gte: String
  name_contains: String
  name_not_contains: String
  name_starts_with: String
  name_not_starts_with: String
  name_ends_with: String
  name_not_ends_with: String
  password: String
  password_not: String
  password_in: [String!]
  password_not_in: [String!]
  password_lt: String
  password_lte: String
  password_gt: String
  password_gte: String
  password_contains: String
  password_not_contains: String
  password_starts_with: String
  password_not_starts_with: String
  password_ends_with: String
  password_not_ends_with: String
  resetToken: String
  resetToken_not: String
  resetToken_in: [String!]
  resetToken_not_in: [String!]
  resetToken_lt: String
  resetToken_lte: String
  resetToken_gt: String
  resetToken_gte: String
  resetToken_contains: String
  resetToken_not_contains: String
  resetToken_starts_with: String
  resetToken_not_starts_with: String
  resetToken_ends_with: String
  resetToken_not_ends_with: String
  resetTokenExpiry: Float
  resetTokenExpiry_not: Float
  resetTokenExpiry_in: [Float!]
  resetTokenExpiry_not_in: [Float!]
  resetTokenExpiry_lt: Float
  resetTokenExpiry_lte: Float
  resetTokenExpiry_gt: Float
  resetTokenExpiry_gte: Float
  createdAt: DateTime
  createdAt_not: DateTime
  createdAt_in: [DateTime!]
  createdAt_not_in: [DateTime!]
  createdAt_lt: DateTime
  createdAt_lte: DateTime
  createdAt_gt: DateTime
  createdAt_gte: DateTime
  comments_every: CommentWhereInput
  comments_some: CommentWhereInput
  comments_none: CommentWhereInput
  ratings_every: RatingWhereInput
  ratings_some: RatingWhereInput
  ratings_none: RatingWhereInput
  AND: [UserWhereInput!]
  OR: [UserWhereInput!]
  NOT: [UserWhereInput!]
}

input UserWhereUniqueInput {
  id: ID
  email: String
}
`
      }