// 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/

export const typeDefs = /* GraphQL */ `type AggregateBlock {
  count: Int!
}

type AggregateBlockInstance {
  count: Int!
}

type AggregateComment {
  count: Int!
}

type AggregateExercise {
  count: Int!
}

type AggregateExerciseInstance {
  count: Int!
}

type AggregateFile {
  count: Int!
}

type AggregateFormat {
  count: Int!
}

type AggregatePicture {
  count: Int!
}

type AggregateRating {
  count: Int!
}

type AggregateTrack {
  count: Int!
}

type AggregateTraining {
  count: Int!
}

type AggregateTrainingType {
  count: Int!
}

type AggregateUser {
  count: Int!
}

type AggregateVideo {
  count: Int!
}

type BatchPayload {
  count: Long!
}

type Block {
  id: ID!
  title: String!
  description: String
  duration: Int
  format: Format!
  rest: Int
  tracks(where: TrackWhereInput, orderBy: TrackOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Track!]
  videos(where: VideoWhereInput, orderBy: VideoOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Video!]
  pictures(where: PictureWhereInput, orderBy: PictureOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Picture!]
  blocks(where: BlockInstanceWhereInput, orderBy: BlockInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [BlockInstance!]
  parentBlockInstances(where: BlockInstanceWhereInput, orderBy: BlockInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [BlockInstance!]
  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
  title: String!
  description: String
  duration: Int
  format: FormatCreateOneInput!
  rest: Int
  tracks: TrackCreateManyInput
  videos: VideoCreateManyInput
  pictures: PictureCreateManyInput
  blocks: BlockInstanceCreateManyWithoutParentBlockInput
  parentBlockInstances: BlockInstanceCreateManyWithoutBlockInput
  exercises: ExerciseInstanceCreateManyWithoutParentBlockInstancesInput
}

input BlockCreateOneWithoutBlocksInput {
  create: BlockCreateWithoutBlocksInput
  connect: BlockWhereUniqueInput
}

input BlockCreateOneWithoutExercisesInput {
  create: BlockCreateWithoutExercisesInput
  connect: BlockWhereUniqueInput
}

input BlockCreateOneWithoutParentBlockInstancesInput {
  create: BlockCreateWithoutParentBlockInstancesInput
  connect: BlockWhereUniqueInput
}

input BlockCreateWithoutBlocksInput {
  id: ID
  title: String!
  description: String
  duration: Int
  format: FormatCreateOneInput!
  rest: Int
  tracks: TrackCreateManyInput
  videos: VideoCreateManyInput
  pictures: PictureCreateManyInput
  parentBlockInstances: BlockInstanceCreateManyWithoutBlockInput
  exercises: ExerciseInstanceCreateManyWithoutParentBlockInstancesInput
}

input BlockCreateWithoutExercisesInput {
  id: ID
  title: String!
  description: String
  duration: Int
  format: FormatCreateOneInput!
  rest: Int
  tracks: TrackCreateManyInput
  videos: VideoCreateManyInput
  pictures: PictureCreateManyInput
  blocks: BlockInstanceCreateManyWithoutParentBlockInput
  parentBlockInstances: BlockInstanceCreateManyWithoutBlockInput
}

input BlockCreateWithoutParentBlockInstancesInput {
  id: ID
  title: String!
  description: String
  duration: Int
  format: FormatCreateOneInput!
  rest: Int
  tracks: TrackCreateManyInput
  videos: VideoCreateManyInput
  pictures: PictureCreateManyInput
  blocks: BlockInstanceCreateManyWithoutParentBlockInput
  exercises: ExerciseInstanceCreateManyWithoutParentBlockInstancesInput
}

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

type BlockInstance {
  id: ID!
  block: Block!
  parentBlock: Block
  parentTraining: Training
  order: Int!
  rounds: Int
  variation: String
}

type BlockInstanceConnection {
  pageInfo: PageInfo!
  edges: [BlockInstanceEdge]!
  aggregate: AggregateBlockInstance!
}

input BlockInstanceCreateInput {
  id: ID
  block: BlockCreateOneWithoutParentBlockInstancesInput!
  parentBlock: BlockCreateOneWithoutBlocksInput
  parentTraining: TrainingCreateOneWithoutBlocksInput
  order: Int!
  rounds: Int
  variation: String
}

input BlockInstanceCreateManyWithoutBlockInput {
  create: [BlockInstanceCreateWithoutBlockInput!]
  connect: [BlockInstanceWhereUniqueInput!]
}

input BlockInstanceCreateManyWithoutParentBlockInput {
  create: [BlockInstanceCreateWithoutParentBlockInput!]
  connect: [BlockInstanceWhereUniqueInput!]
}

input BlockInstanceCreateManyWithoutParentTrainingInput {
  create: [BlockInstanceCreateWithoutParentTrainingInput!]
  connect: [BlockInstanceWhereUniqueInput!]
}

input BlockInstanceCreateWithoutBlockInput {
  id: ID
  parentBlock: BlockCreateOneWithoutBlocksInput
  parentTraining: TrainingCreateOneWithoutBlocksInput
  order: Int!
  rounds: Int
  variation: String
}

input BlockInstanceCreateWithoutParentBlockInput {
  id: ID
  block: BlockCreateOneWithoutParentBlockInstancesInput!
  parentTraining: TrainingCreateOneWithoutBlocksInput
  order: Int!
  rounds: Int
  variation: String
}

input BlockInstanceCreateWithoutParentTrainingInput {
  id: ID
  block: BlockCreateOneWithoutParentBlockInstancesInput!
  parentBlock: BlockCreateOneWithoutBlocksInput
  order: Int!
  rounds: Int
  variation: String
}

type BlockInstanceEdge {
  node: BlockInstance!
  cursor: String!
}

enum BlockInstanceOrderByInput {
  id_ASC
  id_DESC
  order_ASC
  order_DESC
  rounds_ASC
  rounds_DESC
  variation_ASC
  variation_DESC
}

type BlockInstancePreviousValues {
  id: ID!
  order: Int!
  rounds: Int
  variation: String
}

input BlockInstanceScalarWhereInput {
  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
  order: Int
  order_not: Int
  order_in: [Int!]
  order_not_in: [Int!]
  order_lt: Int
  order_lte: Int
  order_gt: Int
  order_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
  variation: String
  variation_not: String
  variation_in: [String!]
  variation_not_in: [String!]
  variation_lt: String
  variation_lte: String
  variation_gt: String
  variation_gte: String
  variation_contains: String
  variation_not_contains: String
  variation_starts_with: String
  variation_not_starts_with: String
  variation_ends_with: String
  variation_not_ends_with: String
  AND: [BlockInstanceScalarWhereInput!]
  OR: [BlockInstanceScalarWhereInput!]
  NOT: [BlockInstanceScalarWhereInput!]
}

type BlockInstanceSubscriptionPayload {
  mutation: MutationType!
  node: BlockInstance
  updatedFields: [String!]
  previousValues: BlockInstancePreviousValues
}

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

input BlockInstanceUpdateInput {
  block: BlockUpdateOneRequiredWithoutParentBlockInstancesInput
  parentBlock: BlockUpdateOneWithoutBlocksInput
  parentTraining: TrainingUpdateOneWithoutBlocksInput
  order: Int
  rounds: Int
  variation: String
}

input BlockInstanceUpdateManyDataInput {
  order: Int
  rounds: Int
  variation: String
}

input BlockInstanceUpdateManyMutationInput {
  order: Int
  rounds: Int
  variation: String
}

input BlockInstanceUpdateManyWithoutBlockInput {
  create: [BlockInstanceCreateWithoutBlockInput!]
  delete: [BlockInstanceWhereUniqueInput!]
  connect: [BlockInstanceWhereUniqueInput!]
  set: [BlockInstanceWhereUniqueInput!]
  disconnect: [BlockInstanceWhereUniqueInput!]
  update: [BlockInstanceUpdateWithWhereUniqueWithoutBlockInput!]
  upsert: [BlockInstanceUpsertWithWhereUniqueWithoutBlockInput!]
  deleteMany: [BlockInstanceScalarWhereInput!]
  updateMany: [BlockInstanceUpdateManyWithWhereNestedInput!]
}

input BlockInstanceUpdateManyWithoutParentBlockInput {
  create: [BlockInstanceCreateWithoutParentBlockInput!]
  delete: [BlockInstanceWhereUniqueInput!]
  connect: [BlockInstanceWhereUniqueInput!]
  set: [BlockInstanceWhereUniqueInput!]
  disconnect: [BlockInstanceWhereUniqueInput!]
  update: [BlockInstanceUpdateWithWhereUniqueWithoutParentBlockInput!]
  upsert: [BlockInstanceUpsertWithWhereUniqueWithoutParentBlockInput!]
  deleteMany: [BlockInstanceScalarWhereInput!]
  updateMany: [BlockInstanceUpdateManyWithWhereNestedInput!]
}

input BlockInstanceUpdateManyWithoutParentTrainingInput {
  create: [BlockInstanceCreateWithoutParentTrainingInput!]
  delete: [BlockInstanceWhereUniqueInput!]
  connect: [BlockInstanceWhereUniqueInput!]
  set: [BlockInstanceWhereUniqueInput!]
  disconnect: [BlockInstanceWhereUniqueInput!]
  update: [BlockInstanceUpdateWithWhereUniqueWithoutParentTrainingInput!]
  upsert: [BlockInstanceUpsertWithWhereUniqueWithoutParentTrainingInput!]
  deleteMany: [BlockInstanceScalarWhereInput!]
  updateMany: [BlockInstanceUpdateManyWithWhereNestedInput!]
}

input BlockInstanceUpdateManyWithWhereNestedInput {
  where: BlockInstanceScalarWhereInput!
  data: BlockInstanceUpdateManyDataInput!
}

input BlockInstanceUpdateWithoutBlockDataInput {
  parentBlock: BlockUpdateOneWithoutBlocksInput
  parentTraining: TrainingUpdateOneWithoutBlocksInput
  order: Int
  rounds: Int
  variation: String
}

input BlockInstanceUpdateWithoutParentBlockDataInput {
  block: BlockUpdateOneRequiredWithoutParentBlockInstancesInput
  parentTraining: TrainingUpdateOneWithoutBlocksInput
  order: Int
  rounds: Int
  variation: String
}

input BlockInstanceUpdateWithoutParentTrainingDataInput {
  block: BlockUpdateOneRequiredWithoutParentBlockInstancesInput
  parentBlock: BlockUpdateOneWithoutBlocksInput
  order: Int
  rounds: Int
  variation: String
}

input BlockInstanceUpdateWithWhereUniqueWithoutBlockInput {
  where: BlockInstanceWhereUniqueInput!
  data: BlockInstanceUpdateWithoutBlockDataInput!
}

input BlockInstanceUpdateWithWhereUniqueWithoutParentBlockInput {
  where: BlockInstanceWhereUniqueInput!
  data: BlockInstanceUpdateWithoutParentBlockDataInput!
}

input BlockInstanceUpdateWithWhereUniqueWithoutParentTrainingInput {
  where: BlockInstanceWhereUniqueInput!
  data: BlockInstanceUpdateWithoutParentTrainingDataInput!
}

input BlockInstanceUpsertWithWhereUniqueWithoutBlockInput {
  where: BlockInstanceWhereUniqueInput!
  update: BlockInstanceUpdateWithoutBlockDataInput!
  create: BlockInstanceCreateWithoutBlockInput!
}

input BlockInstanceUpsertWithWhereUniqueWithoutParentBlockInput {
  where: BlockInstanceWhereUniqueInput!
  update: BlockInstanceUpdateWithoutParentBlockDataInput!
  create: BlockInstanceCreateWithoutParentBlockInput!
}

input BlockInstanceUpsertWithWhereUniqueWithoutParentTrainingInput {
  where: BlockInstanceWhereUniqueInput!
  update: BlockInstanceUpdateWithoutParentTrainingDataInput!
  create: BlockInstanceCreateWithoutParentTrainingInput!
}

input BlockInstanceWhereInput {
  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
  block: BlockWhereInput
  parentBlock: BlockWhereInput
  parentTraining: TrainingWhereInput
  order: Int
  order_not: Int
  order_in: [Int!]
  order_not_in: [Int!]
  order_lt: Int
  order_lte: Int
  order_gt: Int
  order_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
  variation: String
  variation_not: String
  variation_in: [String!]
  variation_not_in: [String!]
  variation_lt: String
  variation_lte: String
  variation_gt: String
  variation_gte: String
  variation_contains: String
  variation_not_contains: String
  variation_starts_with: String
  variation_not_starts_with: String
  variation_ends_with: String
  variation_not_ends_with: String
  AND: [BlockInstanceWhereInput!]
  OR: [BlockInstanceWhereInput!]
  NOT: [BlockInstanceWhereInput!]
}

input BlockInstanceWhereUniqueInput {
  id: ID
}

enum BlockOrderByInput {
  id_ASC
  id_DESC
  title_ASC
  title_DESC
  description_ASC
  description_DESC
  duration_ASC
  duration_DESC
  rest_ASC
  rest_DESC
}

type BlockPreviousValues {
  id: ID!
  title: String!
  description: String
  duration: Int
  rest: Int
}

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 BlockUpdateInput {
  title: String
  description: String
  duration: Int
  format: FormatUpdateOneRequiredInput
  rest: Int
  tracks: TrackUpdateManyInput
  videos: VideoUpdateManyInput
  pictures: PictureUpdateManyInput
  blocks: BlockInstanceUpdateManyWithoutParentBlockInput
  parentBlockInstances: BlockInstanceUpdateManyWithoutBlockInput
  exercises: ExerciseInstanceUpdateManyWithoutParentBlockInstancesInput
}

input BlockUpdateManyMutationInput {
  title: String
  description: String
  duration: Int
  rest: Int
}

input BlockUpdateOneRequiredWithoutExercisesInput {
  create: BlockCreateWithoutExercisesInput
  update: BlockUpdateWithoutExercisesDataInput
  upsert: BlockUpsertWithoutExercisesInput
  connect: BlockWhereUniqueInput
}

input BlockUpdateOneRequiredWithoutParentBlockInstancesInput {
  create: BlockCreateWithoutParentBlockInstancesInput
  update: BlockUpdateWithoutParentBlockInstancesDataInput
  upsert: BlockUpsertWithoutParentBlockInstancesInput
  connect: BlockWhereUniqueInput
}

input BlockUpdateOneWithoutBlocksInput {
  create: BlockCreateWithoutBlocksInput
  update: BlockUpdateWithoutBlocksDataInput
  upsert: BlockUpsertWithoutBlocksInput
  delete: Boolean
  disconnect: Boolean
  connect: BlockWhereUniqueInput
}

input BlockUpdateWithoutBlocksDataInput {
  title: String
  description: String
  duration: Int
  format: FormatUpdateOneRequiredInput
  rest: Int
  tracks: TrackUpdateManyInput
  videos: VideoUpdateManyInput
  pictures: PictureUpdateManyInput
  parentBlockInstances: BlockInstanceUpdateManyWithoutBlockInput
  exercises: ExerciseInstanceUpdateManyWithoutParentBlockInstancesInput
}

input BlockUpdateWithoutExercisesDataInput {
  title: String
  description: String
  duration: Int
  format: FormatUpdateOneRequiredInput
  rest: Int
  tracks: TrackUpdateManyInput
  videos: VideoUpdateManyInput
  pictures: PictureUpdateManyInput
  blocks: BlockInstanceUpdateManyWithoutParentBlockInput
  parentBlockInstances: BlockInstanceUpdateManyWithoutBlockInput
}

input BlockUpdateWithoutParentBlockInstancesDataInput {
  title: String
  description: String
  duration: Int
  format: FormatUpdateOneRequiredInput
  rest: Int
  tracks: TrackUpdateManyInput
  videos: VideoUpdateManyInput
  pictures: PictureUpdateManyInput
  blocks: BlockInstanceUpdateManyWithoutParentBlockInput
  exercises: ExerciseInstanceUpdateManyWithoutParentBlockInstancesInput
}

input BlockUpsertWithoutBlocksInput {
  update: BlockUpdateWithoutBlocksDataInput!
  create: BlockCreateWithoutBlocksInput!
}

input BlockUpsertWithoutExercisesInput {
  update: BlockUpdateWithoutExercisesDataInput!
  create: BlockCreateWithoutExercisesInput!
}

input BlockUpsertWithoutParentBlockInstancesInput {
  update: BlockUpdateWithoutParentBlockInstancesDataInput!
  create: BlockCreateWithoutParentBlockInstancesInput!
}

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
  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
  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
  videos_every: VideoWhereInput
  videos_some: VideoWhereInput
  videos_none: VideoWhereInput
  pictures_every: PictureWhereInput
  pictures_some: PictureWhereInput
  pictures_none: PictureWhereInput
  blocks_every: BlockInstanceWhereInput
  blocks_some: BlockInstanceWhereInput
  blocks_none: BlockInstanceWhereInput
  parentBlockInstances_every: BlockInstanceWhereInput
  parentBlockInstances_some: BlockInstanceWhereInput
  parentBlockInstances_none: BlockInstanceWhereInput
  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
  videos(where: VideoWhereInput, orderBy: VideoOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Video!]
  pictures(where: PictureWhereInput, orderBy: PictureOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Picture!]
  targets: [String!]!
  baseExercise: [String!]!
  parentExerciseInstances(where: ExerciseInstanceWhereInput, orderBy: ExerciseInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [ExerciseInstance!]
}

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

input ExerciseCreatebaseExerciseInput {
  set: [String!]
}

input ExerciseCreateInput {
  id: ID
  name: String!
  description: String
  videos: VideoCreateManyInput
  pictures: PictureCreateManyInput
  targets: ExerciseCreatetargetsInput
  baseExercise: ExerciseCreatebaseExerciseInput
  parentExerciseInstances: ExerciseInstanceCreateManyWithoutExerciseInput
}

input ExerciseCreateOneWithoutParentExerciseInstancesInput {
  create: ExerciseCreateWithoutParentExerciseInstancesInput
  connect: ExerciseWhereUniqueInput
}

input ExerciseCreatetargetsInput {
  set: [String!]
}

input ExerciseCreateWithoutParentExerciseInstancesInput {
  id: ID
  name: String!
  description: String
  videos: VideoCreateManyInput
  pictures: PictureCreateManyInput
  targets: ExerciseCreatetargetsInput
  baseExercise: ExerciseCreatebaseExerciseInput
}

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

type ExerciseInstance {
  id: ID!
  exercise: Exercise!
  order: Int!
  repetitions: Int
  variation: String
  parentBlockInstances: Block!
}

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

input ExerciseInstanceCreateInput {
  id: ID
  exercise: ExerciseCreateOneWithoutParentExerciseInstancesInput!
  order: Int!
  repetitions: Int
  variation: String
  parentBlockInstances: BlockCreateOneWithoutExercisesInput!
}

input ExerciseInstanceCreateManyWithoutExerciseInput {
  create: [ExerciseInstanceCreateWithoutExerciseInput!]
  connect: [ExerciseInstanceWhereUniqueInput!]
}

input ExerciseInstanceCreateManyWithoutParentBlockInstancesInput {
  create: [ExerciseInstanceCreateWithoutParentBlockInstancesInput!]
  connect: [ExerciseInstanceWhereUniqueInput!]
}

input ExerciseInstanceCreateWithoutExerciseInput {
  id: ID
  order: Int!
  repetitions: Int
  variation: String
  parentBlockInstances: BlockCreateOneWithoutExercisesInput!
}

input ExerciseInstanceCreateWithoutParentBlockInstancesInput {
  id: ID
  exercise: ExerciseCreateOneWithoutParentExerciseInstancesInput!
  order: Int!
  repetitions: Int
  variation: String
}

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

enum ExerciseInstanceOrderByInput {
  id_ASC
  id_DESC
  order_ASC
  order_DESC
  repetitions_ASC
  repetitions_DESC
  variation_ASC
  variation_DESC
}

type ExerciseInstancePreviousValues {
  id: ID!
  order: Int!
  repetitions: Int
  variation: String
}

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
  order: Int
  order_not: Int
  order_in: [Int!]
  order_not_in: [Int!]
  order_lt: Int
  order_lte: Int
  order_gt: Int
  order_gte: Int
  repetitions: Int
  repetitions_not: Int
  repetitions_in: [Int!]
  repetitions_not_in: [Int!]
  repetitions_lt: Int
  repetitions_lte: Int
  repetitions_gt: Int
  repetitions_gte: Int
  variation: String
  variation_not: String
  variation_in: [String!]
  variation_not_in: [String!]
  variation_lt: String
  variation_lte: String
  variation_gt: String
  variation_gte: String
  variation_contains: String
  variation_not_contains: String
  variation_starts_with: String
  variation_not_starts_with: String
  variation_ends_with: String
  variation_not_ends_with: String
  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 ExerciseInstanceUpdateInput {
  exercise: ExerciseUpdateOneRequiredWithoutParentExerciseInstancesInput
  order: Int
  repetitions: Int
  variation: String
  parentBlockInstances: BlockUpdateOneRequiredWithoutExercisesInput
}

input ExerciseInstanceUpdateManyDataInput {
  order: Int
  repetitions: Int
  variation: String
}

input ExerciseInstanceUpdateManyMutationInput {
  order: Int
  repetitions: Int
  variation: String
}

input ExerciseInstanceUpdateManyWithoutExerciseInput {
  create: [ExerciseInstanceCreateWithoutExerciseInput!]
  delete: [ExerciseInstanceWhereUniqueInput!]
  connect: [ExerciseInstanceWhereUniqueInput!]
  set: [ExerciseInstanceWhereUniqueInput!]
  disconnect: [ExerciseInstanceWhereUniqueInput!]
  update: [ExerciseInstanceUpdateWithWhereUniqueWithoutExerciseInput!]
  upsert: [ExerciseInstanceUpsertWithWhereUniqueWithoutExerciseInput!]
  deleteMany: [ExerciseInstanceScalarWhereInput!]
  updateMany: [ExerciseInstanceUpdateManyWithWhereNestedInput!]
}

input ExerciseInstanceUpdateManyWithoutParentBlockInstancesInput {
  create: [ExerciseInstanceCreateWithoutParentBlockInstancesInput!]
  delete: [ExerciseInstanceWhereUniqueInput!]
  connect: [ExerciseInstanceWhereUniqueInput!]
  set: [ExerciseInstanceWhereUniqueInput!]
  disconnect: [ExerciseInstanceWhereUniqueInput!]
  update: [ExerciseInstanceUpdateWithWhereUniqueWithoutParentBlockInstancesInput!]
  upsert: [ExerciseInstanceUpsertWithWhereUniqueWithoutParentBlockInstancesInput!]
  deleteMany: [ExerciseInstanceScalarWhereInput!]
  updateMany: [ExerciseInstanceUpdateManyWithWhereNestedInput!]
}

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

input ExerciseInstanceUpdateWithoutExerciseDataInput {
  order: Int
  repetitions: Int
  variation: String
  parentBlockInstances: BlockUpdateOneRequiredWithoutExercisesInput
}

input ExerciseInstanceUpdateWithoutParentBlockInstancesDataInput {
  exercise: ExerciseUpdateOneRequiredWithoutParentExerciseInstancesInput
  order: Int
  repetitions: Int
  variation: String
}

input ExerciseInstanceUpdateWithWhereUniqueWithoutExerciseInput {
  where: ExerciseInstanceWhereUniqueInput!
  data: ExerciseInstanceUpdateWithoutExerciseDataInput!
}

input ExerciseInstanceUpdateWithWhereUniqueWithoutParentBlockInstancesInput {
  where: ExerciseInstanceWhereUniqueInput!
  data: ExerciseInstanceUpdateWithoutParentBlockInstancesDataInput!
}

input ExerciseInstanceUpsertWithWhereUniqueWithoutExerciseInput {
  where: ExerciseInstanceWhereUniqueInput!
  update: ExerciseInstanceUpdateWithoutExerciseDataInput!
  create: ExerciseInstanceCreateWithoutExerciseInput!
}

input ExerciseInstanceUpsertWithWhereUniqueWithoutParentBlockInstancesInput {
  where: ExerciseInstanceWhereUniqueInput!
  update: ExerciseInstanceUpdateWithoutParentBlockInstancesDataInput!
  create: ExerciseInstanceCreateWithoutParentBlockInstancesInput!
}

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
  order: Int
  order_not: Int
  order_in: [Int!]
  order_not_in: [Int!]
  order_lt: Int
  order_lte: Int
  order_gt: Int
  order_gte: Int
  repetitions: Int
  repetitions_not: Int
  repetitions_in: [Int!]
  repetitions_not_in: [Int!]
  repetitions_lt: Int
  repetitions_lte: Int
  repetitions_gt: Int
  repetitions_gte: Int
  variation: String
  variation_not: String
  variation_in: [String!]
  variation_not_in: [String!]
  variation_lt: String
  variation_lte: String
  variation_gt: String
  variation_gte: String
  variation_contains: String
  variation_not_contains: String
  variation_starts_with: String
  variation_not_starts_with: String
  variation_ends_with: String
  variation_not_ends_with: String
  parentBlockInstances: BlockWhereInput
  AND: [ExerciseInstanceWhereInput!]
  OR: [ExerciseInstanceWhereInput!]
  NOT: [ExerciseInstanceWhereInput!]
}

input ExerciseInstanceWhereUniqueInput {
  id: ID
}

enum ExerciseOrderByInput {
  id_ASC
  id_DESC
  name_ASC
  name_DESC
  description_ASC
  description_DESC
}

type ExercisePreviousValues {
  id: ID!
  name: String!
  description: 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 ExerciseUpdateInput {
  name: String
  description: String
  videos: VideoUpdateManyInput
  pictures: PictureUpdateManyInput
  targets: ExerciseUpdatetargetsInput
  baseExercise: ExerciseUpdatebaseExerciseInput
  parentExerciseInstances: ExerciseInstanceUpdateManyWithoutExerciseInput
}

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

input ExerciseUpdateOneRequiredWithoutParentExerciseInstancesInput {
  create: ExerciseCreateWithoutParentExerciseInstancesInput
  update: ExerciseUpdateWithoutParentExerciseInstancesDataInput
  upsert: ExerciseUpsertWithoutParentExerciseInstancesInput
  connect: ExerciseWhereUniqueInput
}

input ExerciseUpdatetargetsInput {
  set: [String!]
}

input ExerciseUpdateWithoutParentExerciseInstancesDataInput {
  name: String
  description: String
  videos: VideoUpdateManyInput
  pictures: PictureUpdateManyInput
  targets: ExerciseUpdatetargetsInput
  baseExercise: ExerciseUpdatebaseExerciseInput
}

input ExerciseUpsertWithoutParentExerciseInstancesInput {
  update: ExerciseUpdateWithoutParentExerciseInstancesDataInput!
  create: ExerciseCreateWithoutParentExerciseInstancesInput!
}

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
  videos_every: VideoWhereInput
  videos_some: VideoWhereInput
  videos_none: VideoWhereInput
  pictures_every: PictureWhereInput
  pictures_some: PictureWhereInput
  pictures_none: PictureWhereInput
  parentExerciseInstances_every: ExerciseInstanceWhereInput
  parentExerciseInstances_some: ExerciseInstanceWhereInput
  parentExerciseInstances_none: ExerciseInstanceWhereInput
  AND: [ExerciseWhereInput!]
  OR: [ExerciseWhereInput!]
  NOT: [ExerciseWhereInput!]
}

input ExerciseWhereUniqueInput {
  id: ID
}

type File {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  path: String!
  mimetype: String!
  user: User!
  thumbnail: String
  filename: String!
  encoding: String!
  size: Int!
  comment: String
}

type FileConnection {
  pageInfo: PageInfo!
  edges: [FileEdge]!
  aggregate: AggregateFile!
}

input FileCreateInput {
  id: ID
  path: String!
  mimetype: String!
  user: UserCreateOneInput!
  thumbnail: String
  filename: String!
  encoding: String!
  size: Int!
  comment: String
}

input FileCreateOneInput {
  create: FileCreateInput
  connect: FileWhereUniqueInput
}

type FileEdge {
  node: File!
  cursor: String!
}

enum FileOrderByInput {
  id_ASC
  id_DESC
  createdAt_ASC
  createdAt_DESC
  updatedAt_ASC
  updatedAt_DESC
  path_ASC
  path_DESC
  mimetype_ASC
  mimetype_DESC
  thumbnail_ASC
  thumbnail_DESC
  filename_ASC
  filename_DESC
  encoding_ASC
  encoding_DESC
  size_ASC
  size_DESC
  comment_ASC
  comment_DESC
}

type FilePreviousValues {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  path: String!
  mimetype: String!
  thumbnail: String
  filename: String!
  encoding: String!
  size: Int!
  comment: String
}

type FileSubscriptionPayload {
  mutation: MutationType!
  node: File
  updatedFields: [String!]
  previousValues: FilePreviousValues
}

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

input FileUpdateDataInput {
  path: String
  mimetype: String
  user: UserUpdateOneRequiredInput
  thumbnail: String
  filename: String
  encoding: String
  size: Int
  comment: String
}

input FileUpdateInput {
  path: String
  mimetype: String
  user: UserUpdateOneRequiredInput
  thumbnail: String
  filename: String
  encoding: String
  size: Int
  comment: String
}

input FileUpdateManyMutationInput {
  path: String
  mimetype: String
  thumbnail: String
  filename: String
  encoding: String
  size: Int
  comment: String
}

input FileUpdateOneInput {
  create: FileCreateInput
  update: FileUpdateDataInput
  upsert: FileUpsertNestedInput
  delete: Boolean
  disconnect: Boolean
  connect: FileWhereUniqueInput
}

input FileUpsertNestedInput {
  update: FileUpdateDataInput!
  create: FileCreateInput!
}

input FileWhereInput {
  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
  createdAt: DateTime
  createdAt_not: DateTime
  createdAt_in: [DateTime!]
  createdAt_not_in: [DateTime!]
  createdAt_lt: DateTime
  createdAt_lte: DateTime
  createdAt_gt: DateTime
  createdAt_gte: DateTime
  updatedAt: DateTime
  updatedAt_not: DateTime
  updatedAt_in: [DateTime!]
  updatedAt_not_in: [DateTime!]
  updatedAt_lt: DateTime
  updatedAt_lte: DateTime
  updatedAt_gt: DateTime
  updatedAt_gte: DateTime
  path: String
  path_not: String
  path_in: [String!]
  path_not_in: [String!]
  path_lt: String
  path_lte: String
  path_gt: String
  path_gte: String
  path_contains: String
  path_not_contains: String
  path_starts_with: String
  path_not_starts_with: String
  path_ends_with: String
  path_not_ends_with: String
  mimetype: String
  mimetype_not: String
  mimetype_in: [String!]
  mimetype_not_in: [String!]
  mimetype_lt: String
  mimetype_lte: String
  mimetype_gt: String
  mimetype_gte: String
  mimetype_contains: String
  mimetype_not_contains: String
  mimetype_starts_with: String
  mimetype_not_starts_with: String
  mimetype_ends_with: String
  mimetype_not_ends_with: String
  user: UserWhereInput
  thumbnail: String
  thumbnail_not: String
  thumbnail_in: [String!]
  thumbnail_not_in: [String!]
  thumbnail_lt: String
  thumbnail_lte: String
  thumbnail_gt: String
  thumbnail_gte: String
  thumbnail_contains: String
  thumbnail_not_contains: String
  thumbnail_starts_with: String
  thumbnail_not_starts_with: String
  thumbnail_ends_with: String
  thumbnail_not_ends_with: String
  filename: String
  filename_not: String
  filename_in: [String!]
  filename_not_in: [String!]
  filename_lt: String
  filename_lte: String
  filename_gt: String
  filename_gte: String
  filename_contains: String
  filename_not_contains: String
  filename_starts_with: String
  filename_not_starts_with: String
  filename_ends_with: String
  filename_not_ends_with: String
  encoding: String
  encoding_not: String
  encoding_in: [String!]
  encoding_not_in: [String!]
  encoding_lt: String
  encoding_lte: String
  encoding_gt: String
  encoding_gte: String
  encoding_contains: String
  encoding_not_contains: String
  encoding_starts_with: String
  encoding_not_starts_with: String
  encoding_ends_with: String
  encoding_not_ends_with: String
  size: Int
  size_not: Int
  size_in: [Int!]
  size_not_in: [Int!]
  size_lt: Int
  size_lte: Int
  size_gt: Int
  size_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
  AND: [FileWhereInput!]
  OR: [FileWhereInput!]
  NOT: [FileWhereInput!]
}

input FileWhereUniqueInput {
  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!
  createBlockInstance(data: BlockInstanceCreateInput!): BlockInstance!
  updateBlockInstance(data: BlockInstanceUpdateInput!, where: BlockInstanceWhereUniqueInput!): BlockInstance
  updateManyBlockInstances(data: BlockInstanceUpdateManyMutationInput!, where: BlockInstanceWhereInput): BatchPayload!
  upsertBlockInstance(where: BlockInstanceWhereUniqueInput!, create: BlockInstanceCreateInput!, update: BlockInstanceUpdateInput!): BlockInstance!
  deleteBlockInstance(where: BlockInstanceWhereUniqueInput!): BlockInstance
  deleteManyBlockInstances(where: BlockInstanceWhereInput): 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!
  createFile(data: FileCreateInput!): File!
  updateFile(data: FileUpdateInput!, where: FileWhereUniqueInput!): File
  updateManyFiles(data: FileUpdateManyMutationInput!, where: FileWhereInput): BatchPayload!
  upsertFile(where: FileWhereUniqueInput!, create: FileCreateInput!, update: FileUpdateInput!): File!
  deleteFile(where: FileWhereUniqueInput!): File
  deleteManyFiles(where: FileWhereInput): 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!
  createPicture(data: PictureCreateInput!): Picture!
  updatePicture(data: PictureUpdateInput!, where: PictureWhereUniqueInput!): Picture
  updateManyPictures(data: PictureUpdateManyMutationInput!, where: PictureWhereInput): BatchPayload!
  upsertPicture(where: PictureWhereUniqueInput!, create: PictureCreateInput!, update: PictureUpdateInput!): Picture!
  deletePicture(where: PictureWhereUniqueInput!): Picture
  deleteManyPictures(where: PictureWhereInput): 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!
  createVideo(data: VideoCreateInput!): Video!
  updateVideo(data: VideoUpdateInput!, where: VideoWhereUniqueInput!): Video
  updateManyVideos(data: VideoUpdateManyMutationInput!, where: VideoWhereInput): BatchPayload!
  upsertVideo(where: VideoWhereUniqueInput!, create: VideoCreateInput!, update: VideoUpdateInput!): Video!
  deleteVideo(where: VideoWhereUniqueInput!): Video
  deleteManyVideos(where: VideoWhereInput): 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 Picture {
  id: ID!
  title: String!
  description: String!
  file: File
  link: String
}

type PictureConnection {
  pageInfo: PageInfo!
  edges: [PictureEdge]!
  aggregate: AggregatePicture!
}

input PictureCreateInput {
  id: ID
  title: String!
  description: String!
  file: FileCreateOneInput
  link: String
}

input PictureCreateManyInput {
  create: [PictureCreateInput!]
  connect: [PictureWhereUniqueInput!]
}

input PictureCreateOneInput {
  create: PictureCreateInput
  connect: PictureWhereUniqueInput
}

type PictureEdge {
  node: Picture!
  cursor: String!
}

enum PictureOrderByInput {
  id_ASC
  id_DESC
  title_ASC
  title_DESC
  description_ASC
  description_DESC
  link_ASC
  link_DESC
}

type PicturePreviousValues {
  id: ID!
  title: String!
  description: String!
  link: String
}

input PictureScalarWhereInput {
  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
  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
  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: [PictureScalarWhereInput!]
  OR: [PictureScalarWhereInput!]
  NOT: [PictureScalarWhereInput!]
}

type PictureSubscriptionPayload {
  mutation: MutationType!
  node: Picture
  updatedFields: [String!]
  previousValues: PicturePreviousValues
}

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

input PictureUpdateDataInput {
  title: String
  description: String
  file: FileUpdateOneInput
  link: String
}

input PictureUpdateInput {
  title: String
  description: String
  file: FileUpdateOneInput
  link: String
}

input PictureUpdateManyDataInput {
  title: String
  description: String
  link: String
}

input PictureUpdateManyInput {
  create: [PictureCreateInput!]
  update: [PictureUpdateWithWhereUniqueNestedInput!]
  upsert: [PictureUpsertWithWhereUniqueNestedInput!]
  delete: [PictureWhereUniqueInput!]
  connect: [PictureWhereUniqueInput!]
  set: [PictureWhereUniqueInput!]
  disconnect: [PictureWhereUniqueInput!]
  deleteMany: [PictureScalarWhereInput!]
  updateMany: [PictureUpdateManyWithWhereNestedInput!]
}

input PictureUpdateManyMutationInput {
  title: String
  description: String
  link: String
}

input PictureUpdateManyWithWhereNestedInput {
  where: PictureScalarWhereInput!
  data: PictureUpdateManyDataInput!
}

input PictureUpdateOneInput {
  create: PictureCreateInput
  update: PictureUpdateDataInput
  upsert: PictureUpsertNestedInput
  delete: Boolean
  disconnect: Boolean
  connect: PictureWhereUniqueInput
}

input PictureUpdateWithWhereUniqueNestedInput {
  where: PictureWhereUniqueInput!
  data: PictureUpdateDataInput!
}

input PictureUpsertNestedInput {
  update: PictureUpdateDataInput!
  create: PictureCreateInput!
}

input PictureUpsertWithWhereUniqueNestedInput {
  where: PictureWhereUniqueInput!
  update: PictureUpdateDataInput!
  create: PictureCreateInput!
}

input PictureWhereInput {
  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
  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
  file: FileWhereInput
  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: [PictureWhereInput!]
  OR: [PictureWhereInput!]
  NOT: [PictureWhereInput!]
}

input PictureWhereUniqueInput {
  id: ID
}

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!
  blockInstance(where: BlockInstanceWhereUniqueInput!): BlockInstance
  blockInstances(where: BlockInstanceWhereInput, orderBy: BlockInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [BlockInstance]!
  blockInstancesConnection(where: BlockInstanceWhereInput, orderBy: BlockInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): BlockInstanceConnection!
  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!
  file(where: FileWhereUniqueInput!): File
  files(where: FileWhereInput, orderBy: FileOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [File]!
  filesConnection(where: FileWhereInput, orderBy: FileOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): FileConnection!
  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!
  picture(where: PictureWhereUniqueInput!): Picture
  pictures(where: PictureWhereInput, orderBy: PictureOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Picture]!
  picturesConnection(where: PictureWhereInput, orderBy: PictureOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): PictureConnection!
  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!
  video(where: VideoWhereUniqueInput!): Video
  videos(where: VideoWhereInput, orderBy: VideoOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Video]!
  videosConnection(where: VideoWhereInput, orderBy: VideoOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): VideoConnection!
  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
  blockInstance(where: BlockInstanceSubscriptionWhereInput): BlockInstanceSubscriptionPayload
  comment(where: CommentSubscriptionWhereInput): CommentSubscriptionPayload
  exercise(where: ExerciseSubscriptionWhereInput): ExerciseSubscriptionPayload
  exerciseInstance(where: ExerciseInstanceSubscriptionWhereInput): ExerciseInstanceSubscriptionPayload
  file(where: FileSubscriptionWhereInput): FileSubscriptionPayload
  format(where: FormatSubscriptionWhereInput): FormatSubscriptionPayload
  picture(where: PictureSubscriptionWhereInput): PictureSubscriptionPayload
  rating(where: RatingSubscriptionWhereInput): RatingSubscriptionPayload
  track(where: TrackSubscriptionWhereInput): TrackSubscriptionPayload
  training(where: TrainingSubscriptionWhereInput): TrainingSubscriptionPayload
  trainingType(where: TrainingTypeSubscriptionWhereInput): TrainingTypeSubscriptionPayload
  user(where: UserSubscriptionWhereInput): UserSubscriptionPayload
  video(where: VideoSubscriptionWhereInput): VideoSubscriptionPayload
}

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

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

input TrackCreateInput {
  id: ID
  title: String!
  artist: String!
  duration: Int!
  file: FileCreateOneInput
  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
  file: FileUpdateOneInput
  link: String
}

input TrackUpdateInput {
  title: String
  artist: String
  duration: Int
  file: FileUpdateOneInput
  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
  file: FileWhereInput
  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: BlockInstanceWhereInput, orderBy: BlockInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [BlockInstance!]
}

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: BlockInstanceCreateManyWithoutParentTrainingInput
}

input TrainingCreateOneWithoutBlocksInput {
  create: TrainingCreateWithoutBlocksInput
  connect: TrainingWhereUniqueInput
}

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

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: BlockInstanceUpdateManyWithoutParentTrainingInput
}

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

input TrainingUpdateOneWithoutBlocksInput {
  create: TrainingCreateWithoutBlocksInput
  update: TrainingUpdateWithoutBlocksDataInput
  upsert: TrainingUpsertWithoutBlocksInput
  delete: Boolean
  disconnect: Boolean
  connect: TrainingWhereUniqueInput
}

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

input TrainingUpsertWithoutBlocksInput {
  update: TrainingUpdateWithoutBlocksDataInput!
  create: TrainingCreateWithoutBlocksInput!
}

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: BlockInstanceWhereInput
  blocks_some: BlockInstanceWhereInput
  blocks_none: BlockInstanceWhereInput
  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!]!
  avatar: Picture
}

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
  avatar: PictureCreateOneInput
}

input UserCreateinterestsInput {
  set: [String!]
}

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

input UserCreateOneInput {
  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
  avatar: PictureCreateOneInput
}

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

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
  avatar: PictureUpdateOneInput
}

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

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 UserUpdateOneRequiredInput {
  create: UserCreateInput
  update: UserUpdateDataInput
  upsert: UserUpsertNestedInput
  connect: UserWhereUniqueInput
}

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
  avatar: PictureUpdateOneInput
}

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

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

input UserUpsertNestedInput {
  update: UserUpdateDataInput!
  create: UserCreateInput!
}

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
  avatar: PictureWhereInput
  AND: [UserWhereInput!]
  OR: [UserWhereInput!]
  NOT: [UserWhereInput!]
}

input UserWhereUniqueInput {
  id: ID
  email: String
}

type Video {
  id: ID!
  title: String!
  description: String!
  duration: Int!
  file: File
  link: String
}

type VideoConnection {
  pageInfo: PageInfo!
  edges: [VideoEdge]!
  aggregate: AggregateVideo!
}

input VideoCreateInput {
  id: ID
  title: String!
  description: String!
  duration: Int!
  file: FileCreateOneInput
  link: String
}

input VideoCreateManyInput {
  create: [VideoCreateInput!]
  connect: [VideoWhereUniqueInput!]
}

type VideoEdge {
  node: Video!
  cursor: String!
}

enum VideoOrderByInput {
  id_ASC
  id_DESC
  title_ASC
  title_DESC
  description_ASC
  description_DESC
  duration_ASC
  duration_DESC
  link_ASC
  link_DESC
}

type VideoPreviousValues {
  id: ID!
  title: String!
  description: String!
  duration: Int!
  link: String
}

input VideoScalarWhereInput {
  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
  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
  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: [VideoScalarWhereInput!]
  OR: [VideoScalarWhereInput!]
  NOT: [VideoScalarWhereInput!]
}

type VideoSubscriptionPayload {
  mutation: MutationType!
  node: Video
  updatedFields: [String!]
  previousValues: VideoPreviousValues
}

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

input VideoUpdateDataInput {
  title: String
  description: String
  duration: Int
  file: FileUpdateOneInput
  link: String
}

input VideoUpdateInput {
  title: String
  description: String
  duration: Int
  file: FileUpdateOneInput
  link: String
}

input VideoUpdateManyDataInput {
  title: String
  description: String
  duration: Int
  link: String
}

input VideoUpdateManyInput {
  create: [VideoCreateInput!]
  update: [VideoUpdateWithWhereUniqueNestedInput!]
  upsert: [VideoUpsertWithWhereUniqueNestedInput!]
  delete: [VideoWhereUniqueInput!]
  connect: [VideoWhereUniqueInput!]
  set: [VideoWhereUniqueInput!]
  disconnect: [VideoWhereUniqueInput!]
  deleteMany: [VideoScalarWhereInput!]
  updateMany: [VideoUpdateManyWithWhereNestedInput!]
}

input VideoUpdateManyMutationInput {
  title: String
  description: String
  duration: Int
  link: String
}

input VideoUpdateManyWithWhereNestedInput {
  where: VideoScalarWhereInput!
  data: VideoUpdateManyDataInput!
}

input VideoUpdateWithWhereUniqueNestedInput {
  where: VideoWhereUniqueInput!
  data: VideoUpdateDataInput!
}

input VideoUpsertWithWhereUniqueNestedInput {
  where: VideoWhereUniqueInput!
  update: VideoUpdateDataInput!
  create: VideoCreateInput!
}

input VideoWhereInput {
  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
  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
  file: FileWhereInput
  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: [VideoWhereInput!]
  OR: [VideoWhereInput!]
  NOT: [VideoWhereInput!]
}

input VideoWhereUniqueInput {
  id: ID
}
`