# import * from './database/generated/prisma.graphql' scalar Upload type FsFile { filename: String! path: String! size: Int! ctime: DateTime! mtime: DateTime! } type TrainingArchiveItem { id: ID! title: String! type: TrainingType! trainingDate: DateTime! location: String! attendance: Int ratings: Float blocks: [String!]! duration: Int } type TrainingArchive { trainings: [TrainingArchiveItem!]! totalCount: Int! } type Query { # Training module trainingArchive(skip: Int, first: Int): TrainingArchive! publishedTrainings( where: TrainingWhereInput orderBy: TrainingOrderByInput skip: Int first: Int ): [Training!]! training(id: ID): Training! trainings( where: TrainingWhereInput orderBy: TrainingOrderByInput skip: Int after: String before: String first: Int last: Int ): [Training!]! trainingsCount(where: TrainingWhereInput): TrainingConnection! # File module fsFiles(directory: String!): [FsFile!]! files( where: FileWhereInput orderBy: FileOrderByInput skip: Int after: String before: String first: Int last: Int ): [File!]! file(where: FileWhereUniqueInput!): File! # User module currentUser: User! user(where: UserWhereUniqueInput!): User users( where: UserWhereInput orderBy: UserOrderByInput skip: Int after: String before: String first: Int last: Int ): [User!]! trainingType(where: TrainingTypeWhereUniqueInput!): TrainingType trainingTypes( where: TrainingTypeWhereInput orderBy: TrainingTypeOrderByInput skip: Int after: String before: String first: Int last: Int ): [TrainingType!]! block(where: BlockWhereUniqueInput!): Block blocks( where: BlockWhereInput orderBy: BlockOrderByInput skip: Int after: String before: String first: Int last: Int ): [Block!]! format(where: FormatWhereUniqueInput!): Format formats( where: FormatWhereInput orderBy: FormatOrderByInput skip: Int after: String before: String first: Int last: Int ): [Format!]! exercise(where: ExerciseWhereUniqueInput!): Exercise exercises( where: ExerciseWhereInput orderBy: ExerciseOrderByInput skip: Int after: String before: String first: Int last: Int ): [Exercise!]! } type Mutation { # File module uploadFile( file: Upload! comment: String width: Int height: Int duration: Float title: String artist: String ): File! updateFile(where: FileWhereUniqueInput!, data: FileUpdateInput!): File! deleteFile(id: ID!): File! # User module createUser(data: UserCreateInput!): User! updateUser(id: ID!, data: UserUpdateInput!): User! deleteUser(id: ID!): User! updatePermissions(id: ID!, permissions: [Permission!]!): User! # Training module createTraining( title: String! type: TrainingTypeCreateOneInput! trainingDate: DateTime! location: String! attendance: Int published: Boolean! blocks: BlockInstanceCreateManyWithoutParentTrainingInput ): Training! deleteTraining(id: ID!): Training! updateTraining(where: TrainingWhereUniqueInput!, data: TrainingUpdateInput!): Training! createTrainingType(name: String!, description: String!): TrainingType! # createBlock( # title: String! # description: String # videos: [String!] # pictures: [String!] # duration: Int # format: FormatCreateOneInput! # rest: Int # tracks: TrackCreateManyInput # blocks: BlockInstanceCreateManyInput # exercises: ExerciseInstanceCreateManyInput # ): Block! createFormat(name: String!, description: String!): Format! userLogin(email: String!, password: String!): User! userLogout: String! userSignup(name: String!, email: String!, password: String!): User! requestReset(email: String!): String! resetPassword(token: String!, password: String!): User! register(training: ID!): Training! deregister(training: ID!): Training! publish(training: ID!, status: Boolean): Training! }