You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

170 lines
4.5KB

  1. # ------------------------------------------------------
  2. # THIS FILE WAS AUTOMATICALLY GENERATED (DO NOT MODIFY)
  3. # ------------------------------------------------------
  4. type Person {
  5. _id: UUID!
  6. givenName: String!
  7. familyName: String!
  8. email: EmailAddress!
  9. master: Boolean
  10. token: String
  11. _adminOf: [UUID!]
  12. adminOf: [Organizer!]
  13. _organizerOf: [UUID!]
  14. organizerOf: [Organizer!]
  15. }
  16. """UUID"""
  17. scalar UUID
  18. """
  19. A field whose value conforms to the standard internet email address format as specified in RFC822: https://www.w3.org/Protocols/rfc822/.
  20. """
  21. scalar EmailAddress
  22. type Organizer {
  23. _id: UUID!
  24. name: String!
  25. plz: Int
  26. ort: String
  27. logo: String
  28. _admins: [UUID!]
  29. _organizers: [UUID!]
  30. _pending: [UUID!]
  31. admins: [Person!]
  32. organizers: [Person!]
  33. pending: [Person!]
  34. }
  35. type Apparatus {
  36. _id: UUID!
  37. name: String!
  38. logo: String
  39. }
  40. type Team {
  41. _id: UUID!
  42. name: String!
  43. }
  44. type Result {
  45. bonus: Int!
  46. runtime: Float!
  47. calctime: Float!
  48. results: [ApparatusResult!]!
  49. }
  50. type ApparatusResult {
  51. _id: UUID!
  52. bonus: Boolean!
  53. teile: Boolean!
  54. wechsel: Boolean
  55. }
  56. type Timeslot {
  57. _id: UUID!
  58. time: Time!
  59. duration: Int!
  60. team: Team
  61. result: Result
  62. }
  63. """A time string HH:MM:SS"""
  64. scalar Time
  65. type EventApparatus {
  66. _apparatus: UUID!
  67. elements: Int!
  68. bonus: Int!
  69. malus: Int!
  70. apparatus: Apparatus!
  71. }
  72. type Event {
  73. _id: UUID!
  74. name: String
  75. date: Date!
  76. apparatus: [EventApparatus!]!
  77. timeslots: [Timeslot!]!
  78. _organizer: UUID!
  79. organizer: Organizer!
  80. }
  81. """A date string YYYY-MM-DD"""
  82. scalar Date
  83. type Query {
  84. Person(id: UUID!): Person
  85. PersonFind(offset: Int, limit: Int, email: String, familyName: String, givenName: String): [Person!]
  86. Apparatus(id: UUID!): Apparatus
  87. ApparatusFind(offset: Int, limit: Int, name: String): [Apparatus!]
  88. Organizer(id: UUID!): Organizer
  89. OrganizerFind(offset: Int, limit: Int, ort: String, plz: Int, name: String): [Organizer!]
  90. Event(id: UUID!): Event
  91. EventFind(offset: Int, limit: Int, organizer: UUID, date: Date): [Event!]
  92. }
  93. type Mutation {
  94. login(token: String, passwort: String, email: String): Person!
  95. PersonRegister(passwort: String!, email: EmailAddress!, familyName: String!, givenName: String!, organizer: UUID!): Person!
  96. PersonConfirmMail(confirmCode: String!, email: String!): Person
  97. PersonPasswordReset(newPassword: String, resetCode: String, email: EmailAddress!): Boolean
  98. ChangePassword(newPassword: String!, oldPassword: String!): Boolean!
  99. PersonUpdate(master: Boolean, email: EmailAddress, familyName: String, givenName: String, id: UUID!): Person!
  100. PersonCreate(master: Boolean, email: EmailAddress!, familyName: String!, givenName: String!): Person!
  101. PersonDelete(id: UUID!): UUID!
  102. ApparatusUpdate(logo: String, name: String, id: UUID!): Apparatus!
  103. ApparatusCreate(logo: String, name: String!): Apparatus!
  104. ApparatusDelete(id: UUID!): UUID!
  105. OrganizerRegister(ort: String, plz: Int, name: String!): Organizer!
  106. OrganizerUpdate(ort: String, plz: Int, name: String, id: UUID!): Organizer!
  107. OrganizerCreate(ort: String, plz: Int, name: String!): Organizer!
  108. OrganizerDelete(id: UUID!): UUID!
  109. OrganizerUpdateMakeOrganizer(person: UUID!, id: UUID!): Organizer!
  110. OrganizerUpdateMakeAdmin(person: UUID!, id: UUID!): Organizer!
  111. OrganizerUpdateDeletePerson(person: UUID!, id: UUID!): Organizer!
  112. EventCreate(name: String, date: Date!, organizer: UUID!): Event!
  113. EventUpdate(date: Date, name: String, id: UUID!): Event!
  114. EventAddApparatus(apparatus: UUID!, id: UUID!): Event!
  115. EventDeleteApparatus(apparatus: UUID!, id: UUID!): Event!
  116. EventUpdateApparatus(malus: Float, bonus: Float, elements: Int, apparatus: UUID!, id: UUID!): Event!
  117. EventOrderApparatus(target: Int!, src: Int!, id: UUID!): Event!
  118. EventAddTimeslots(timeslots: [ITimeslot!]!, id: UUID!): Event!
  119. EventDeleteTimeslots(timeslots: [UUID!]!, id: UUID!): Event!
  120. EventAddTeam(name: String!, timeslot: UUID!, id: UUID!): Event!
  121. EventDeleteTeam(timeslot: UUID!, id: UUID!): Event!
  122. EventSetResult(result: IResult!, timeslot: UUID!, id: UUID!): Timeslot!
  123. EventDelete(id: UUID!): UUID!
  124. }
  125. input ITimeslot {
  126. time: Time!
  127. duration: Int!
  128. }
  129. input IResult {
  130. bonus: Int!
  131. runtime: Float!
  132. calctime: Float!
  133. results: [IApparatusResult!]!
  134. }
  135. input IApparatusResult {
  136. _id: UUID!
  137. bonus: Boolean!
  138. teile: Boolean!
  139. wechsel: Boolean
  140. }
  141. type Subscription {
  142. PersonUpdated: Person
  143. PersonDeleted: UUID!
  144. ApparatusUpdated: Apparatus
  145. ApparatusDeleted: UUID!
  146. OrganizerUpdated(organizer: UUID): Organizer!
  147. OrganizerDeleted: UUID!
  148. EventUpdated(organizer: UUID, id: UUID): Event!
  149. EventDeleted(organizer: UUID!): UUID!
  150. }