schema.graphql 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. # import * from './database/generated/prisma.graphql'
  2. scalar Upload
  3. type FsFile {
  4. filename: String!
  5. path: String!
  6. size: Int!
  7. ctime: DateTime!
  8. mtime: DateTime!
  9. }
  10. type TrainingArchiveItem {
  11. id: ID!
  12. title: String!
  13. type: TrainingType!
  14. trainingDate: DateTime!
  15. location: String!
  16. attendance: Int
  17. ratings: Float
  18. blocks: [String!]!
  19. duration: Int
  20. }
  21. type TrainingArchive {
  22. trainings: [TrainingArchiveItem!]!
  23. totalCount: Int!
  24. }
  25. type Query {
  26. # Training module
  27. trainingArchive(skip: Int, first: Int): TrainingArchive!
  28. publishedTrainings(
  29. where: TrainingWhereInput
  30. orderBy: TrainingOrderByInput
  31. skip: Int
  32. first: Int
  33. ): [Training!]!
  34. training(id: ID): Training!
  35. trainings(
  36. where: TrainingWhereInput
  37. orderBy: TrainingOrderByInput
  38. skip: Int
  39. after: String
  40. before: String
  41. first: Int
  42. last: Int
  43. ): [Training!]!
  44. trainingsCount(where: TrainingWhereInput): TrainingConnection!
  45. # File module
  46. fsFiles(directory: String!): [FsFile!]!
  47. files(
  48. where: FileWhereInput
  49. orderBy: FileOrderByInput
  50. skip: Int
  51. after: String
  52. before: String
  53. first: Int
  54. last: Int
  55. ): [File!]!
  56. file(where: FileWhereUniqueInput!): File!
  57. # User module
  58. currentUser: User!
  59. user(where: UserWhereUniqueInput!): User
  60. users(
  61. where: UserWhereInput
  62. orderBy: UserOrderByInput
  63. skip: Int
  64. after: String
  65. before: String
  66. first: Int
  67. last: Int
  68. ): [User!]!
  69. trainingType(where: TrainingTypeWhereUniqueInput!): TrainingType
  70. trainingTypes(
  71. where: TrainingTypeWhereInput
  72. orderBy: TrainingTypeOrderByInput
  73. skip: Int
  74. after: String
  75. before: String
  76. first: Int
  77. last: Int
  78. ): [TrainingType!]!
  79. block(where: BlockWhereUniqueInput!): Block
  80. blocks(
  81. where: BlockWhereInput
  82. orderBy: BlockOrderByInput
  83. skip: Int
  84. after: String
  85. before: String
  86. first: Int
  87. last: Int
  88. ): [Block!]!
  89. format(where: FormatWhereUniqueInput!): Format
  90. formats(
  91. where: FormatWhereInput
  92. orderBy: FormatOrderByInput
  93. skip: Int
  94. after: String
  95. before: String
  96. first: Int
  97. last: Int
  98. ): [Format!]!
  99. exercise(where: ExerciseWhereUniqueInput!): Exercise
  100. exercises(
  101. where: ExerciseWhereInput
  102. orderBy: ExerciseOrderByInput
  103. skip: Int
  104. after: String
  105. before: String
  106. first: Int
  107. last: Int
  108. ): [Exercise!]!
  109. }
  110. type Mutation {
  111. # File module
  112. uploadFile(
  113. file: Upload!
  114. comment: String
  115. width: Int
  116. height: Int
  117. duration: Float
  118. title: String
  119. artist: String
  120. ): File!
  121. updateFile(where: FileWhereUniqueInput!, data: FileUpdateInput!): File!
  122. deleteFile(id: ID!): File!
  123. # User module
  124. createUser(data: UserCreateInput!): User!
  125. updateUser(id: ID!, data: UserUpdateInput!): User!
  126. deleteUser(id: ID!): User!
  127. updatePermissions(id: ID!, permissions: [Permission!]!): User!
  128. # Training module
  129. createTraining(
  130. title: String!
  131. type: TrainingTypeCreateOneInput!
  132. trainingDate: DateTime!
  133. location: String!
  134. attendance: Int
  135. published: Boolean!
  136. blocks: BlockInstanceCreateManyWithoutParentTrainingInput
  137. ): Training!
  138. deleteTraining(id: ID!): Training!
  139. updateTraining(where: TrainingWhereUniqueInput!, data: TrainingUpdateInput!): Training!
  140. createTrainingType(name: String!, description: String!): TrainingType!
  141. # createBlock(
  142. # title: String!
  143. # description: String
  144. # videos: [String!]
  145. # pictures: [String!]
  146. # duration: Int
  147. # format: FormatCreateOneInput!
  148. # rest: Int
  149. # tracks: TrackCreateManyInput
  150. # blocks: BlockInstanceCreateManyInput
  151. # exercises: ExerciseInstanceCreateManyInput
  152. # ): Block!
  153. createFormat(name: String!, description: String!): Format!
  154. userLogin(email: String!, password: String!): User!
  155. userLogout: String!
  156. userSignup(name: String!, email: String!, password: String!): User!
  157. requestReset(email: String!): String!
  158. resetPassword(token: String!, password: String!): User!
  159. register(training: ID!): Training!
  160. deregister(training: ID!): Training!
  161. publish(training: ID!, status: Boolean): Training!
  162. }