workingGroupsEvents.graphql 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  1. type OpeningAddedEvent @entity {
  2. "Generic event data"
  3. event: Event!
  4. "Related group"
  5. group: WorkingGroup!
  6. "Related opening"
  7. opening: WorkingGroupOpening!
  8. # Other opening data like: metadata, type, staking policy, reward etc. is immutable, so can be read directly from Opening entity
  9. }
  10. type AppliedOnOpeningEvent @entity {
  11. "Generic event data"
  12. event: Event!
  13. "Related group"
  14. group: WorkingGroup!
  15. "Related opening"
  16. opening: WorkingGroupOpening!
  17. "The application that was created"
  18. application: WorkingGroupApplication!
  19. # Same as with opening - application parameters are immutable and can be fetched from Application entity
  20. }
  21. type OpeningFilledEvent @entity {
  22. "Generic event data"
  23. event: Event!
  24. "Related group"
  25. group: WorkingGroup!
  26. "Related opening"
  27. opening: WorkingGroupOpening!
  28. "Workers that have been hired as a result of filling the opening"
  29. workersHired: [Worker!] @derivedFrom(field: "entry")
  30. }
  31. type LeaderSetEvent @entity {
  32. "Generic event data"
  33. event: Event!
  34. "Related group"
  35. group: WorkingGroup!
  36. "Related Lead worker"
  37. worker: Worker!
  38. }
  39. type WorkerRoleAccountUpdatedEvent @entity {
  40. "Generic event data"
  41. event: Event!
  42. "Related group"
  43. group: WorkingGroup!
  44. "Related worker"
  45. worker: Worker!
  46. "New role account"
  47. newRoleAccount: String!
  48. }
  49. type LeaderUnsetEvent @entity {
  50. "Generic event data"
  51. event: Event!
  52. "Related group"
  53. group: WorkingGroup!
  54. "A leader that was unset"
  55. leader: Worker!
  56. }
  57. type WorkerExitedEvent @entity {
  58. "Generic event data"
  59. event: Event!
  60. "Related group"
  61. group: WorkingGroup!
  62. "Related worker"
  63. worker: Worker!
  64. }
  65. type TerminatedWorkerEvent @entity {
  66. "Generic event data"
  67. event: Event!
  68. "Related group"
  69. group: WorkingGroup!
  70. "Related worker"
  71. worker: Worker!
  72. "Slash amount (if any)"
  73. penalty: BigInt
  74. "Optional rationale"
  75. rationale: String
  76. }
  77. type TerminatedLeaderEvent @entity {
  78. "Generic event data"
  79. event: Event!
  80. "Related group"
  81. group: WorkingGroup!
  82. "Related worker"
  83. worker: Worker!
  84. "Slash amount (if any)"
  85. penalty: BigInt
  86. "Optional rationale"
  87. rationale: String
  88. }
  89. type WorkerStartedLeavingEvent @entity {
  90. "Generic event data"
  91. event: Event!
  92. "Related group"
  93. group: WorkingGroup!
  94. "Related worker"
  95. worker: Worker!
  96. "Optional rationale"
  97. rationale: String
  98. }
  99. type StakeSlashedEvent @entity {
  100. "Generic event data"
  101. event: Event!
  102. "Related group"
  103. group: WorkingGroup!
  104. "Related worker"
  105. worker: Worker!
  106. "Balance that was requested to be slashed"
  107. requestedAmount: BigInt!
  108. "Balance that was actually slashed"
  109. slashedAmount: BigInt!
  110. "Optional rationale"
  111. rationale: String
  112. }
  113. type StakeDecreasedEvent @entity {
  114. "Generic event data"
  115. event: Event!
  116. "Related group"
  117. group: WorkingGroup!
  118. "Related worker"
  119. worker: Worker!
  120. "The amount of JOY the stake was decreased by"
  121. amount: BigInt!
  122. }
  123. type StakeIncreasedEvent @entity {
  124. "Generic event data"
  125. event: Event!
  126. "Related group"
  127. group: WorkingGroup!
  128. "Related worker"
  129. worker: Worker!
  130. "The amount of JOY the stake was increased by"
  131. amount: BigInt!
  132. }
  133. type ApplicationWithdrawnEvent @entity {
  134. "Generic event data"
  135. event: Event!
  136. "Related group"
  137. group: WorkingGroup!
  138. "Related application"
  139. application: WorkingGroupApplication!
  140. }
  141. type OpeningCanceledEvent @entity {
  142. "Generic event data"
  143. event: Event!
  144. "Related group"
  145. group: WorkingGroup!
  146. "Related opening"
  147. opening: WorkingGroupOpening!
  148. }
  149. type BudgetSetEvent @entity {
  150. "Generic event data"
  151. event: Event!
  152. "Related group"
  153. group: WorkingGroup!
  154. "New working group budget"
  155. newBudget: BigInt!
  156. }
  157. type WorkerRewardAccountUpdatedEvent @entity {
  158. "Generic event data"
  159. event: Event!
  160. "Related group"
  161. group: WorkingGroup!
  162. "Related worker"
  163. worker: Worker!
  164. "New reward account"
  165. newRewardAccount: String!
  166. }
  167. type WorkerRewardAmountUpdatedEvent @entity {
  168. "Generic event data"
  169. event: Event!
  170. "Related group"
  171. group: WorkingGroup!
  172. "Related worker"
  173. worker: Worker!
  174. "New worker reward per block"
  175. newRewardPerBlock: BigInt!
  176. }
  177. type UpcomingOpeningAdded @variant {
  178. upcomingOpeningId: ID!
  179. }
  180. type UpcomingOpeningRemoved @variant {
  181. upcomingOpeningId: ID!
  182. }
  183. type WorkingGroupMetadataSet @variant {
  184. # TODO: Variant relationships
  185. metadataId: ID!
  186. }
  187. type InvalidActionMetadata @variant {
  188. "Reason why the action metadata was considered invalid"
  189. reason: String!
  190. }
  191. union WorkingGroupMetadataActionResult =
  192. UpcomingOpeningAdded
  193. | UpcomingOpeningRemoved
  194. | WorkingGroupMetadataSet
  195. | InvalidActionMetadata
  196. type StatusTextChangedEvent @entity {
  197. "Generic event data"
  198. event: Event!
  199. "Related group"
  200. group: WorkingGroup!
  201. "Original action metadata as hex string"
  202. metadata: String
  203. "Event result depeding on the metadata action type"
  204. result: WorkingGroupMetadataActionResult!
  205. }
  206. type BudgetSpendingEvent @entity {
  207. "Generic event data"
  208. event: Event!
  209. "Related group"
  210. group: WorkingGroup!
  211. "Reciever account address"
  212. reciever: String!
  213. "Amount beeing spent"
  214. amount: BigInt!
  215. "Optional rationale"
  216. rationale: String
  217. }
  218. enum RewardPaymentType {
  219. "Regular reward payout"
  220. REGULAR
  221. "Payout of previously missed reward"
  222. MISSED
  223. }
  224. type RewardPaidEvent @entity {
  225. "Generic event data"
  226. event: Event!
  227. "Related group"
  228. group: WorkingGroup!
  229. "Related worker"
  230. worker: Worker!
  231. "The account that recieved the reward"
  232. rewardAccount: String!
  233. "Amount recieved"
  234. amount: BigInt!
  235. "Type of the payment (REGULAR/MISSED)"
  236. type: RewardPaymentType!
  237. }
  238. type NewMissedRewardLevelReachedEvent @entity {
  239. "Generic event data"
  240. event: Event!
  241. "Related group"
  242. group: WorkingGroup!
  243. "Related worker"
  244. worker: Worker!
  245. "New missed reward amount"
  246. newMissedRewardAmount: BigInt!
  247. }