@mtgame/core 0.2.26 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) hide show
  1. package/api/basketball-game-api.d.ts +3 -0
  2. package/api/feedback-api.d.ts +5 -2
  3. package/api/file-api.d.ts +3 -0
  4. package/api/football-game-api.d.ts +3 -0
  5. package/api/game-base-api.d.ts +3 -0
  6. package/api/handball-game-api.d.ts +3 -0
  7. package/api/hockey-game-api.d.ts +3 -0
  8. package/api/league-api.d.ts +3 -0
  9. package/api/league-news-api.d.ts +3 -0
  10. package/api/league-player-api.d.ts +3 -0
  11. package/api/media-api.d.ts +5 -2
  12. package/api/notification-api.d.ts +3 -0
  13. package/api/notification-base-api.d.ts +3 -0
  14. package/api/org-notification-api.d.ts +3 -0
  15. package/api/public-team-api.d.ts +3 -2
  16. package/api/public-user-api.d.ts +3 -0
  17. package/api/reference-api.d.ts +3 -0
  18. package/api/rugby-game-api.d.ts +3 -0
  19. package/api/team-api.d.ts +4 -1
  20. package/api/team-event-api.d.ts +3 -0
  21. package/api/tournament-api.d.ts +3 -2
  22. package/api/tournament-join-api.d.ts +3 -0
  23. package/api/tournament-round-api.d.ts +3 -0
  24. package/api/tournament-season-api.d.ts +3 -0
  25. package/api/tournament-stage-api.d.ts +3 -0
  26. package/api/user-api.d.ts +5 -2
  27. package/api/volleyball-game-api.d.ts +3 -1
  28. package/api/waterpolo-game-api.d.ts +3 -0
  29. package/esm2020/api/basketball-game-api.mjs +44 -0
  30. package/esm2020/api/feedback-api.mjs +29 -0
  31. package/esm2020/api/file-api.mjs +41 -0
  32. package/esm2020/api/football-game-api.mjs +49 -0
  33. package/esm2020/api/game-base-api.mjs +40 -0
  34. package/esm2020/api/handball-game-api.mjs +49 -0
  35. package/esm2020/api/hockey-game-api.mjs +49 -0
  36. package/esm2020/api/league-api.mjs +119 -0
  37. package/esm2020/api/league-news-api.mjs +57 -0
  38. package/esm2020/api/league-player-api.mjs +31 -0
  39. package/esm2020/api/media-api.mjs +124 -0
  40. package/esm2020/api/notification-api.mjs +16 -0
  41. package/esm2020/api/notification-base-api.mjs +62 -0
  42. package/esm2020/api/org-notification-api.mjs +16 -0
  43. package/{esm2015/api/paginated-response.interface.js → esm2020/api/paginated-response.interface.mjs} +0 -0
  44. package/{esm2015/api/public-api.js → esm2020/api/public-api.mjs} +0 -0
  45. package/esm2020/api/public-team-api.mjs +28 -0
  46. package/esm2020/api/public-user-api.mjs +38 -0
  47. package/esm2020/api/reference-api.mjs +30 -0
  48. package/esm2020/api/rugby-game-api.mjs +47 -0
  49. package/esm2020/api/team-api.mjs +302 -0
  50. package/esm2020/api/team-event-api.mjs +61 -0
  51. package/esm2020/api/tournament-api.mjs +391 -0
  52. package/esm2020/api/tournament-join-api.mjs +55 -0
  53. package/esm2020/api/tournament-round-api.mjs +57 -0
  54. package/esm2020/api/tournament-season-api.mjs +92 -0
  55. package/esm2020/api/tournament-stage-api.mjs +48 -0
  56. package/esm2020/api/user-api.mjs +219 -0
  57. package/esm2020/api/volleyball-game-api.mjs +49 -0
  58. package/esm2020/api/waterpolo-game-api.mjs +49 -0
  59. package/esm2020/http-cookie.interceptor.mjs +38 -0
  60. package/{esm2015/localization/basketball-game-log-types.js → esm2020/localization/basketball-game-log-types.mjs} +0 -0
  61. package/{esm2015/localization/basketball-game-sub-log-types.js → esm2020/localization/basketball-game-sub-log-types.mjs} +2 -5
  62. package/{esm2015/localization/football-game-log-types.js → esm2020/localization/football-game-log-types.mjs} +0 -0
  63. package/{esm2015/localization/handball-game-log-types.js → esm2020/localization/handball-game-log-types.mjs} +0 -0
  64. package/{esm2015/localization/hockey-game-log-types.js → esm2020/localization/hockey-game-log-types.mjs} +2 -5
  65. package/esm2020/localization/hockey-penalty-types.mjs +50 -0
  66. package/{esm2015/localization/organization-statuses.js → esm2020/localization/organization-statuses.mjs} +0 -0
  67. package/{esm2015/localization/overtime-types.js → esm2020/localization/overtime-types.mjs} +0 -0
  68. package/{esm2015/localization/public-api.js → esm2020/localization/public-api.mjs} +0 -0
  69. package/{esm2015/localization/rugby-foul-game-stage.js → esm2020/localization/rugby-foul-game-stage.mjs} +0 -0
  70. package/{esm2015/localization/rugby-foul-sanction.js → esm2020/localization/rugby-foul-sanction.mjs} +0 -0
  71. package/{esm2015/localization/rugby-game-log-types.js → esm2020/localization/rugby-game-log-types.mjs} +0 -0
  72. package/{esm2015/localization/team-event-type.js → esm2020/localization/team-event-type.mjs} +0 -0
  73. package/{esm2015/localization/team-user-role.js → esm2020/localization/team-user-role.mjs} +0 -0
  74. package/{esm2015/localization/user-profile.js → esm2020/localization/user-profile.mjs} +0 -0
  75. package/{esm2015/localization/volleyball-game-log-types.js → esm2020/localization/volleyball-game-log-types.mjs} +0 -0
  76. package/{esm2015/localization/waterpolo-game-log-types.js → esm2020/localization/waterpolo-game-log-types.mjs} +3 -3
  77. package/esm2020/models/achievement.mjs +18 -0
  78. package/esm2020/models/base-statistic.mjs +4 -0
  79. package/esm2020/models/basketball-game-config.mjs +18 -0
  80. package/esm2020/models/basketball-game-log.mjs +158 -0
  81. package/esm2020/models/basketball-game-statistic.mjs +47 -0
  82. package/esm2020/models/basketball-game-team-statistic.mjs +15 -0
  83. package/esm2020/models/basketball-profile.mjs +27 -0
  84. package/esm2020/models/basketball-statistic.mjs +62 -0
  85. package/esm2020/models/city.mjs +9 -0
  86. package/esm2020/models/feedback.mjs +14 -0
  87. package/esm2020/models/file.mjs +31 -0
  88. package/esm2020/models/football-game-config.mjs +22 -0
  89. package/esm2020/models/football-game-log.mjs +83 -0
  90. package/esm2020/models/football-game-statistic.mjs +93 -0
  91. package/esm2020/models/football-game-team-statistic.mjs +15 -0
  92. package/esm2020/models/football-profile.mjs +27 -0
  93. package/esm2020/models/football-statistic.mjs +76 -0
  94. package/esm2020/models/game-bill.mjs +30 -0
  95. package/esm2020/models/game-config-base.mjs +4 -0
  96. package/esm2020/models/game-invite.mjs +22 -0
  97. package/esm2020/models/game-log-base.mjs +4 -0
  98. package/esm2020/models/game-statistic-base.mjs +7 -0
  99. package/{esm2015/models/game-team-statistic-base.js → esm2020/models/game-team-statistic-base.mjs} +0 -0
  100. package/esm2020/models/game-timeline-stages.mjs +19 -0
  101. package/esm2020/models/game-user-disqualification.mjs +14 -0
  102. package/esm2020/models/game-user-limitation.mjs +19 -0
  103. package/esm2020/models/game-user.mjs +20 -0
  104. package/esm2020/models/game.mjs +188 -0
  105. package/esm2020/models/handball-game-config.mjs +16 -0
  106. package/esm2020/models/handball-game-log.mjs +71 -0
  107. package/esm2020/models/handball-game-statistic.mjs +67 -0
  108. package/esm2020/models/handball-game-team-statistic.mjs +15 -0
  109. package/esm2020/models/handball-profile.mjs +23 -0
  110. package/esm2020/models/handball-statistic.mjs +37 -0
  111. package/esm2020/models/hockey-game-config.mjs +25 -0
  112. package/esm2020/models/hockey-game-log.mjs +102 -0
  113. package/esm2020/models/hockey-game-statistic.mjs +101 -0
  114. package/esm2020/models/hockey-game-team-statistic.mjs +15 -0
  115. package/esm2020/models/hockey-penalty-types.mjs +6 -0
  116. package/esm2020/models/hockey-profile.mjs +25 -0
  117. package/esm2020/models/hockey-statistic.mjs +49 -0
  118. package/esm2020/models/league-banner.mjs +21 -0
  119. package/esm2020/models/league-court.mjs +9 -0
  120. package/esm2020/models/league-document.mjs +14 -0
  121. package/esm2020/models/league-news.mjs +25 -0
  122. package/esm2020/models/league-partner.mjs +14 -0
  123. package/esm2020/models/league-player.mjs +81 -0
  124. package/esm2020/models/league-playlist.mjs +14 -0
  125. package/esm2020/models/league-user.mjs +38 -0
  126. package/esm2020/models/league.mjs +38 -0
  127. package/esm2020/models/media-item.mjs +20 -0
  128. package/esm2020/models/notification-settings.mjs +20 -0
  129. package/esm2020/models/notification.mjs +105 -0
  130. package/esm2020/models/organization-bill.mjs +31 -0
  131. package/esm2020/models/organization-statistic.mjs +9 -0
  132. package/esm2020/models/organization-tariff.mjs +16 -0
  133. package/esm2020/models/organization.mjs +21 -0
  134. package/esm2020/models/playoff.mjs +56 -0
  135. package/esm2020/models/poll.mjs +83 -0
  136. package/esm2020/models/public-api.mjs +110 -0
  137. package/esm2020/models/rugby-foul-type.mjs +39 -0
  138. package/esm2020/models/rugby-game-config.mjs +23 -0
  139. package/esm2020/models/rugby-game-log.mjs +120 -0
  140. package/esm2020/models/rugby-game-statistic.mjs +29 -0
  141. package/esm2020/models/rugby-game-team-statistic.mjs +15 -0
  142. package/esm2020/models/rugby-profile.mjs +22 -0
  143. package/esm2020/models/rugby-statistic.mjs +37 -0
  144. package/esm2020/models/season-tournament.mjs +9 -0
  145. package/esm2020/models/sport.mjs +96 -0
  146. package/esm2020/models/team-access.mjs +14 -0
  147. package/esm2020/models/team-achievement.mjs +18 -0
  148. package/esm2020/models/team-event-invite.mjs +18 -0
  149. package/{esm2015/models/team-event-type.js → esm2020/models/team-event-type.mjs} +0 -0
  150. package/esm2020/models/team-event.mjs +27 -0
  151. package/esm2020/models/team-invite-external.mjs +9 -0
  152. package/esm2020/models/team-invite.mjs +18 -0
  153. package/esm2020/models/team-permission.mjs +23 -0
  154. package/esm2020/models/team-user.mjs +30 -0
  155. package/esm2020/models/team.mjs +46 -0
  156. package/esm2020/models/teams-and-users.mjs +20 -0
  157. package/esm2020/models/tournament-disqualification.mjs +14 -0
  158. package/esm2020/models/tournament-division.mjs +14 -0
  159. package/esm2020/models/tournament-event.mjs +28 -0
  160. package/esm2020/models/tournament-group.mjs +9 -0
  161. package/esm2020/models/tournament-invite.mjs +21 -0
  162. package/esm2020/models/tournament-join-team.mjs +27 -0
  163. package/esm2020/models/tournament-join1x1-data.mjs +15 -0
  164. package/esm2020/models/tournament-news.mjs +17 -0
  165. package/esm2020/models/tournament-round-team.mjs +40 -0
  166. package/esm2020/models/tournament-round.mjs +22 -0
  167. package/esm2020/models/tournament-season.mjs +25 -0
  168. package/esm2020/models/tournament-stage-team.mjs +22 -0
  169. package/esm2020/models/tournament-stage.mjs +20 -0
  170. package/esm2020/models/tournament-team-user-invite.mjs +14 -0
  171. package/esm2020/models/tournament-team-user.mjs +20 -0
  172. package/esm2020/models/tournament-team.mjs +28 -0
  173. package/esm2020/models/tournament.mjs +153 -0
  174. package/esm2020/models/user-access.mjs +9 -0
  175. package/esm2020/models/user-permission.mjs +23 -0
  176. package/esm2020/models/user-profile.mjs +9 -0
  177. package/esm2020/models/user.mjs +55 -0
  178. package/esm2020/models/util.mjs +143 -0
  179. package/esm2020/models/volleyball-game-config.mjs +27 -0
  180. package/esm2020/models/volleyball-game-log.mjs +124 -0
  181. package/esm2020/models/volleyball-game-statistic.mjs +34 -0
  182. package/esm2020/models/volleyball-game-team-statistic.mjs +15 -0
  183. package/esm2020/models/volleyball-profile.mjs +27 -0
  184. package/esm2020/models/volleyball-statistic.mjs +44 -0
  185. package/esm2020/models/waterpolo-game-config.mjs +25 -0
  186. package/esm2020/models/waterpolo-game-log.mjs +142 -0
  187. package/esm2020/models/waterpolo-game-statistic.mjs +472 -0
  188. package/esm2020/models/waterpolo-game-team-statistic.mjs +15 -0
  189. package/esm2020/models/waterpolo-profile.mjs +26 -0
  190. package/esm2020/models/waterpolo-statistic.mjs +57 -0
  191. package/{esm2015/mtgame-core.js → esm2020/mtgame-core.mjs} +0 -0
  192. package/{esm2015/public-api.js → esm2020/public-api.mjs} +2 -1
  193. package/esm2020/services/base.controller.mjs +19 -0
  194. package/esm2020/services/base.service.mjs +18 -0
  195. package/esm2020/services/centrifugo.service.mjs +105 -0
  196. package/esm2020/services/config.service.mjs +44 -0
  197. package/{esm2015/services/public-api.js → esm2020/services/public-api.mjs} +2 -1
  198. package/esm2020/storage/local-storage-engine.mjs +18 -0
  199. package/esm2020/storage/new.mjs +46 -0
  200. package/esm2020/storage/old-local-storage-engine.mjs +18 -0
  201. package/esm2020/storage/old-storage-engine.mjs +49 -0
  202. package/esm2020/storage/public-api.mjs +7 -0
  203. package/esm2020/storage/storage-engine.mjs +47 -0
  204. package/{esm2015/storage/store.js → esm2020/storage/store.mjs} +1 -1
  205. package/{esm2015/utils/array.js → esm2020/utils/array.mjs} +0 -0
  206. package/esm2020/utils/component-destroyed.mjs +27 -0
  207. package/{esm2015/utils/cookie.js → esm2020/utils/cookie.mjs} +0 -0
  208. package/esm2020/utils/data.mjs +164 -0
  209. package/{esm2015/utils/date.js → esm2020/utils/date.mjs} +0 -0
  210. package/{esm2015/utils/device.js → esm2020/utils/device.mjs} +0 -0
  211. package/{esm2015/utils/enum.js → esm2020/utils/enum.mjs} +0 -0
  212. package/{esm2015/utils/errors.js → esm2020/utils/errors.mjs} +2 -4
  213. package/{esm2015/utils/favicon.js → esm2020/utils/favicon.mjs} +0 -0
  214. package/{esm2015/utils/form.js → esm2020/utils/form.mjs} +0 -0
  215. package/{esm2015/utils/public-api.js → esm2020/utils/public-api.mjs} +0 -0
  216. package/{esm2015/utils/validators.js → esm2020/utils/validators.mjs} +0 -0
  217. package/esm2020/websocket/game.websocket.mjs +61 -0
  218. package/esm2020/websocket/public-api.mjs +2 -0
  219. package/fesm2015/{mtgame-core.js → mtgame-core.mjs} +1665 -4848
  220. package/fesm2015/mtgame-core.mjs.map +1 -0
  221. package/fesm2020/mtgame-core.mjs +7270 -0
  222. package/fesm2020/mtgame-core.mjs.map +1 -0
  223. package/http-cookie.interceptor.d.ts +3 -0
  224. package/localization/basketball-game-sub-log-types.d.ts +0 -3
  225. package/localization/football-game-log-types.d.ts +29 -29
  226. package/localization/hockey-game-log-types.d.ts +0 -3
  227. package/localization/hockey-penalty-types.d.ts +2 -5
  228. package/models/achievement.d.ts +0 -2
  229. package/models/base-statistic.d.ts +2 -1
  230. package/models/basketball-game-config.d.ts +2 -4
  231. package/models/basketball-game-log.d.ts +2 -9
  232. package/models/basketball-game-statistic.d.ts +1 -4
  233. package/models/basketball-game-team-statistic.d.ts +0 -2
  234. package/models/basketball-profile.d.ts +0 -2
  235. package/models/basketball-statistic.d.ts +1 -4
  236. package/models/city.d.ts +0 -2
  237. package/models/feedback.d.ts +2 -3
  238. package/models/file.d.ts +2 -3
  239. package/models/football-game-config.d.ts +2 -4
  240. package/models/football-game-log.d.ts +30 -33
  241. package/models/football-game-statistic.d.ts +1 -4
  242. package/models/football-game-team-statistic.d.ts +0 -2
  243. package/models/football-profile.d.ts +0 -2
  244. package/models/football-statistic.d.ts +1 -4
  245. package/models/game-bill.d.ts +0 -2
  246. package/models/game-config-base.d.ts +3 -0
  247. package/models/game-invite.d.ts +0 -2
  248. package/models/game-log-base.d.ts +3 -2
  249. package/models/game-statistic-base.d.ts +3 -1
  250. package/models/game-timeline-stages.d.ts +1 -5
  251. package/models/game-user-disqualification.d.ts +0 -2
  252. package/models/game-user-limitation.d.ts +0 -4
  253. package/models/game-user.d.ts +0 -2
  254. package/models/game.d.ts +10 -21
  255. package/models/handball-game-config.d.ts +2 -4
  256. package/models/handball-game-log.d.ts +1 -4
  257. package/models/handball-game-statistic.d.ts +1 -4
  258. package/models/handball-game-team-statistic.d.ts +0 -2
  259. package/models/handball-profile.d.ts +0 -2
  260. package/models/handball-statistic.d.ts +1 -4
  261. package/models/hockey-game-config.d.ts +2 -4
  262. package/models/hockey-game-log.d.ts +4 -15
  263. package/models/hockey-game-statistic.d.ts +1 -18
  264. package/models/hockey-game-team-statistic.d.ts +0 -2
  265. package/models/hockey-penalty-types.d.ts +7 -0
  266. package/models/hockey-profile.d.ts +0 -2
  267. package/models/hockey-statistic.d.ts +1 -18
  268. package/models/league-banner.d.ts +0 -2
  269. package/models/league-court.d.ts +0 -2
  270. package/models/league-document.d.ts +0 -2
  271. package/models/league-news.d.ts +0 -2
  272. package/models/league-partner.d.ts +0 -2
  273. package/models/league-player.d.ts +2 -13
  274. package/models/league-playlist.d.ts +0 -2
  275. package/models/league-user.d.ts +0 -2
  276. package/models/league.d.ts +1 -6
  277. package/models/media-item.d.ts +0 -2
  278. package/models/notification-settings.d.ts +0 -2
  279. package/models/notification.d.ts +0 -2
  280. package/models/organization-bill.d.ts +0 -2
  281. package/models/organization-statistic.d.ts +0 -2
  282. package/models/organization-tariff.d.ts +0 -2
  283. package/models/organization.d.ts +0 -2
  284. package/models/playoff.d.ts +0 -4
  285. package/models/poll.d.ts +0 -6
  286. package/models/public-api.d.ts +0 -6
  287. package/models/rugby-foul-type.d.ts +0 -2
  288. package/models/rugby-game-config.d.ts +2 -4
  289. package/models/rugby-game-log.d.ts +1 -4
  290. package/models/rugby-game-statistic.d.ts +7 -10
  291. package/models/rugby-game-team-statistic.d.ts +0 -2
  292. package/models/rugby-profile.d.ts +0 -2
  293. package/models/rugby-statistic.d.ts +1 -4
  294. package/models/season-tournament.d.ts +0 -2
  295. package/models/sport.d.ts +0 -2
  296. package/models/team-access.d.ts +0 -2
  297. package/models/team-achievement.d.ts +0 -2
  298. package/models/team-event-invite.d.ts +2 -3
  299. package/models/team-event.d.ts +0 -2
  300. package/models/team-invite-external.d.ts +0 -2
  301. package/models/team-invite.d.ts +0 -2
  302. package/models/team-permission.d.ts +0 -2
  303. package/models/team-user.d.ts +0 -2
  304. package/models/team.d.ts +0 -2
  305. package/models/teams-and-users.d.ts +0 -2
  306. package/models/tournament-disqualification.d.ts +0 -2
  307. package/models/tournament-division.d.ts +0 -2
  308. package/models/tournament-event.d.ts +0 -2
  309. package/models/tournament-group.d.ts +0 -2
  310. package/models/tournament-invite.d.ts +0 -2
  311. package/models/tournament-join-team.d.ts +0 -4
  312. package/models/tournament-join1x1-data.d.ts +0 -2
  313. package/models/tournament-news.d.ts +0 -2
  314. package/models/tournament-round-team.d.ts +4 -14
  315. package/models/tournament-round.d.ts +0 -2
  316. package/models/tournament-season.d.ts +0 -2
  317. package/models/tournament-stage-team.d.ts +0 -2
  318. package/models/tournament-stage.d.ts +0 -2
  319. package/models/tournament-team-user-invite.d.ts +0 -2
  320. package/models/tournament-team-user.d.ts +0 -5
  321. package/models/tournament-team.d.ts +0 -16
  322. package/models/tournament.d.ts +5 -21
  323. package/models/user-access.d.ts +0 -2
  324. package/models/user-permission.d.ts +0 -2
  325. package/models/user-profile.d.ts +2 -3
  326. package/models/user.d.ts +2 -6
  327. package/models/util.d.ts +22 -46
  328. package/models/volleyball-game-config.d.ts +2 -4
  329. package/models/volleyball-game-log.d.ts +1 -4
  330. package/models/volleyball-game-statistic.d.ts +1 -4
  331. package/models/volleyball-game-team-statistic.d.ts +0 -2
  332. package/models/volleyball-profile.d.ts +0 -2
  333. package/models/volleyball-statistic.d.ts +1 -4
  334. package/models/waterpolo-game-config.d.ts +2 -4
  335. package/models/waterpolo-game-log.d.ts +1 -4
  336. package/models/waterpolo-game-statistic.d.ts +1 -4
  337. package/models/waterpolo-game-team-statistic.d.ts +0 -2
  338. package/models/waterpolo-profile.d.ts +0 -2
  339. package/models/waterpolo-statistic.d.ts +1 -4
  340. package/mtgame-core.d.ts +1 -0
  341. package/package.json +23 -10
  342. package/public-api.d.ts +1 -0
  343. package/services/base.controller.d.ts +12 -0
  344. package/services/base.service.d.ts +3 -0
  345. package/services/centrifugo.service.d.ts +6 -4
  346. package/services/config.service.d.ts +3 -0
  347. package/services/public-api.d.ts +1 -0
  348. package/storage/local-storage-engine.d.ts +2 -2
  349. package/storage/new.d.ts +17 -0
  350. package/storage/old-local-storage-engine.d.ts +6 -0
  351. package/storage/old-storage-engine.d.ts +24 -0
  352. package/storage/public-api.d.ts +5 -2
  353. package/storage/storage-engine.d.ts +25 -18
  354. package/storage/store.d.ts +3 -3
  355. package/utils/component-destroyed.d.ts +1 -1
  356. package/utils/data.d.ts +36 -6
  357. package/websocket/game.websocket.d.ts +24 -0
  358. package/websocket/public-api.d.ts +1 -0
  359. package/bundles/mtgame-core.umd.js +0 -14010
  360. package/bundles/mtgame-core.umd.js.map +0 -1
  361. package/esm2015/api/basketball-game-api.js +0 -61
  362. package/esm2015/api/feedback-api.js +0 -38
  363. package/esm2015/api/file-api.js +0 -49
  364. package/esm2015/api/football-game-api.js +0 -65
  365. package/esm2015/api/game-base-api.js +0 -54
  366. package/esm2015/api/handball-game-api.js +0 -65
  367. package/esm2015/api/hockey-game-api.js +0 -65
  368. package/esm2015/api/league-api.js +0 -151
  369. package/esm2015/api/league-news-api.js +0 -71
  370. package/esm2015/api/league-player-api.js +0 -34
  371. package/esm2015/api/media-api.js +0 -131
  372. package/esm2015/api/notification-api.js +0 -16
  373. package/esm2015/api/notification-base-api.js +0 -82
  374. package/esm2015/api/org-notification-api.js +0 -16
  375. package/esm2015/api/public-team-api.js +0 -41
  376. package/esm2015/api/public-user-api.js +0 -41
  377. package/esm2015/api/reference-api.js +0 -39
  378. package/esm2015/api/rugby-game-api.js +0 -63
  379. package/esm2015/api/team-api.js +0 -393
  380. package/esm2015/api/team-event-api.js +0 -80
  381. package/esm2015/api/tournament-api.js +0 -471
  382. package/esm2015/api/tournament-join-api.js +0 -72
  383. package/esm2015/api/tournament-round-api.js +0 -71
  384. package/esm2015/api/tournament-season-api.js +0 -112
  385. package/esm2015/api/tournament-stage-api.js +0 -63
  386. package/esm2015/api/user-api.js +0 -283
  387. package/esm2015/api/volleyball-game-api.js +0 -73
  388. package/esm2015/api/waterpolo-game-api.js +0 -65
  389. package/esm2015/http-cookie.interceptor.js +0 -37
  390. package/esm2015/localization/hockey-penalty-types.js +0 -50
  391. package/esm2015/models/achievement.js +0 -33
  392. package/esm2015/models/base-statistic.js +0 -2
  393. package/esm2015/models/basketball-game-config.js +0 -41
  394. package/esm2015/models/basketball-game-log.js +0 -192
  395. package/esm2015/models/basketball-game-statistic.js +0 -81
  396. package/esm2015/models/basketball-game-team-statistic.js +0 -27
  397. package/esm2015/models/basketball-profile.js +0 -43
  398. package/esm2015/models/basketball-statistic.js +0 -114
  399. package/esm2015/models/city.js +0 -22
  400. package/esm2015/models/feedback.js +0 -34
  401. package/esm2015/models/file.js +0 -54
  402. package/esm2015/models/football-game-config.js +0 -44
  403. package/esm2015/models/football-game-log.js +0 -104
  404. package/esm2015/models/football-game-statistic.js +0 -137
  405. package/esm2015/models/football-game-team-statistic.js +0 -27
  406. package/esm2015/models/football-profile.js +0 -43
  407. package/esm2015/models/football-statistic.js +0 -150
  408. package/esm2015/models/game-bill.js +0 -47
  409. package/esm2015/models/game-invite.js +0 -37
  410. package/esm2015/models/game-log-base.js +0 -2
  411. package/esm2015/models/game-statistic-base.js +0 -2
  412. package/esm2015/models/game-timeline-stages.js +0 -53
  413. package/esm2015/models/game-user-disqualification.js +0 -28
  414. package/esm2015/models/game-user-limitation.js +0 -51
  415. package/esm2015/models/game-user.js +0 -37
  416. package/esm2015/models/game.js +0 -281
  417. package/esm2015/models/handball-game-config.js +0 -34
  418. package/esm2015/models/handball-game-log.js +0 -92
  419. package/esm2015/models/handball-game-statistic.js +0 -101
  420. package/esm2015/models/handball-game-team-statistic.js +0 -27
  421. package/esm2015/models/handball-profile.js +0 -39
  422. package/esm2015/models/handball-statistic.js +0 -95
  423. package/esm2015/models/hockey-game-config.js +0 -48
  424. package/esm2015/models/hockey-game-log.js +0 -128
  425. package/esm2015/models/hockey-game-statistic.js +0 -159
  426. package/esm2015/models/hockey-game-team-statistic.js +0 -27
  427. package/esm2015/models/hockey-profile.js +0 -41
  428. package/esm2015/models/hockey-statistic.js +0 -143
  429. package/esm2015/models/league-banner.js +0 -39
  430. package/esm2015/models/league-court.js +0 -25
  431. package/esm2015/models/league-document.js +0 -26
  432. package/esm2015/models/league-field-base-value.js +0 -4
  433. package/esm2015/models/league-field-base.js +0 -25
  434. package/esm2015/models/league-news.js +0 -50
  435. package/esm2015/models/league-partner.js +0 -29
  436. package/esm2015/models/league-player-field-value.js +0 -32
  437. package/esm2015/models/league-player-field.js +0 -30
  438. package/esm2015/models/league-player.js +0 -116
  439. package/esm2015/models/league-playlist.js +0 -28
  440. package/esm2015/models/league-team-field.js +0 -30
  441. package/esm2015/models/league-user.js +0 -52
  442. package/esm2015/models/league.js +0 -71
  443. package/esm2015/models/media-item.js +0 -41
  444. package/esm2015/models/notification-settings.js +0 -35
  445. package/esm2015/models/notification.js +0 -134
  446. package/esm2015/models/organization-bill.js +0 -50
  447. package/esm2015/models/organization-statistic.js +0 -26
  448. package/esm2015/models/organization-tariff.js +0 -30
  449. package/esm2015/models/organization.js +0 -40
  450. package/esm2015/models/playoff.js +0 -91
  451. package/esm2015/models/poll.js +0 -132
  452. package/esm2015/models/public-api.js +0 -116
  453. package/esm2015/models/rugby-foul-type.js +0 -53
  454. package/esm2015/models/rugby-game-config.js +0 -42
  455. package/esm2015/models/rugby-game-log.js +0 -144
  456. package/esm2015/models/rugby-game-statistic.js +0 -89
  457. package/esm2015/models/rugby-game-team-statistic.js +0 -27
  458. package/esm2015/models/rugby-profile.js +0 -37
  459. package/esm2015/models/rugby-statistic.js +0 -123
  460. package/esm2015/models/season-tournament.js +0 -22
  461. package/esm2015/models/sport.js +0 -115
  462. package/esm2015/models/team-access.js +0 -45
  463. package/esm2015/models/team-achievement.js +0 -34
  464. package/esm2015/models/team-event-invite.js +0 -32
  465. package/esm2015/models/team-event.js +0 -45
  466. package/esm2015/models/team-invite-external.js +0 -25
  467. package/esm2015/models/team-invite.js +0 -41
  468. package/esm2015/models/team-permission.js +0 -38
  469. package/esm2015/models/team-user.js +0 -48
  470. package/esm2015/models/team.js +0 -71
  471. package/esm2015/models/teams-and-users.js +0 -32
  472. package/esm2015/models/tournament-disqualification.js +0 -30
  473. package/esm2015/models/tournament-division.js +0 -27
  474. package/esm2015/models/tournament-event.js +0 -45
  475. package/esm2015/models/tournament-group.js +0 -26
  476. package/esm2015/models/tournament-invite.js +0 -39
  477. package/esm2015/models/tournament-join-team.js +0 -55
  478. package/esm2015/models/tournament-join1x1-data.js +0 -32
  479. package/esm2015/models/tournament-news.js +0 -33
  480. package/esm2015/models/tournament-round-team.js +0 -95
  481. package/esm2015/models/tournament-round.js +0 -36
  482. package/esm2015/models/tournament-season.js +0 -45
  483. package/esm2015/models/tournament-stage-team.js +0 -47
  484. package/esm2015/models/tournament-stage.js +0 -35
  485. package/esm2015/models/tournament-team-field-value.js +0 -32
  486. package/esm2015/models/tournament-team-user-invite.js +0 -29
  487. package/esm2015/models/tournament-team-user.js +0 -39
  488. package/esm2015/models/tournament-team.js +0 -103
  489. package/esm2015/models/tournament.js +0 -266
  490. package/esm2015/models/user-access.js +0 -25
  491. package/esm2015/models/user-permission.js +0 -38
  492. package/esm2015/models/user-profile.js +0 -24
  493. package/esm2015/models/user.js +0 -91
  494. package/esm2015/models/util.js +0 -237
  495. package/esm2015/models/volleyball-game-config.js +0 -44
  496. package/esm2015/models/volleyball-game-log.js +0 -145
  497. package/esm2015/models/volleyball-game-statistic.js +0 -64
  498. package/esm2015/models/volleyball-game-team-statistic.js +0 -27
  499. package/esm2015/models/volleyball-profile.js +0 -43
  500. package/esm2015/models/volleyball-statistic.js +0 -92
  501. package/esm2015/models/waterpolo-game-config.js +0 -45
  502. package/esm2015/models/waterpolo-game-log.js +0 -167
  503. package/esm2015/models/waterpolo-game-statistic.js +0 -641
  504. package/esm2015/models/waterpolo-game-team-statistic.js +0 -27
  505. package/esm2015/models/waterpolo-profile.js +0 -42
  506. package/esm2015/models/waterpolo-statistic.js +0 -336
  507. package/esm2015/services/base.service.js +0 -16
  508. package/esm2015/services/centrifugo.service.js +0 -123
  509. package/esm2015/services/config.service.js +0 -37
  510. package/esm2015/storage/local-storage-engine.js +0 -18
  511. package/esm2015/storage/public-api.js +0 -4
  512. package/esm2015/storage/storage-engine.js +0 -61
  513. package/esm2015/utils/component-destroyed.js +0 -26
  514. package/esm2015/utils/data.js +0 -75
  515. package/fesm2015/mtgame-core.js.map +0 -1
  516. package/models/league-field-base-value.d.ts +0 -7
  517. package/models/league-field-base.d.ts +0 -24
  518. package/models/league-player-field-value.d.ts +0 -8
  519. package/models/league-player-field.d.ts +0 -5
  520. package/models/league-team-field.d.ts +0 -5
  521. package/models/tournament-team-field-value.d.ts +0 -8
  522. package/mtgame-core.metadata.json +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"mtgame-core.js","sources":["../../../projects/core/src/localization/hockey-penalty-types.ts","../../../projects/core/src/models/util.ts","../../../projects/core/src/models/file.ts","../../../projects/core/src/models/sport.ts","../../../projects/core/src/models/user-profile.ts","../../../projects/core/src/models/city.ts","../../../projects/core/src/models/basketball-profile.ts","../../../projects/core/src/models/volleyball-profile.ts","../../../projects/core/src/models/hockey-profile.ts","../../../projects/core/src/models/football-profile.ts","../../../projects/core/src/models/handball-profile.ts","../../../projects/core/src/models/rugby-profile.ts","../../../projects/core/src/models/waterpolo-profile.ts","../../../projects/core/src/models/user.ts","../../../projects/core/src/models/team.ts","../../../projects/core/src/models/organization.ts","../../../projects/core/src/models/league.ts","../../../projects/core/src/models/tournament-season.ts","../../../projects/core/src/models/tournament.ts","../../../projects/core/src/models/basketball-game-config.ts","../../../projects/core/src/models/volleyball-game-config.ts","../../../projects/core/src/models/league-court.ts","../../../projects/core/src/models/media-item.ts","../../../projects/core/src/models/hockey-game-config.ts","../../../projects/core/src/models/football-game-config.ts","../../../projects/core/src/models/handball-game-config.ts","../../../projects/core/src/utils/array.ts","../../../projects/core/src/models/playoff.ts","../../../projects/core/src/models/tournament-group.ts","../../../projects/core/src/models/rugby-game-config.ts","../../../projects/core/src/models/waterpolo-game-config.ts","../../../projects/core/src/models/game.ts","../../../projects/core/src/utils/data.ts","../../../projects/core/src/storage/store.ts","../../../projects/core/src/services/base.service.ts","../../../projects/core/src/services/config.service.ts","../../../projects/core/src/models/tournament-division.ts","../../../projects/core/src/models/league-field-base-value.ts","../../../projects/core/src/models/league-field-base.ts","../../../projects/core/src/models/league-team-field.ts","../../../projects/core/src/models/tournament-team-field-value.ts","../../../projects/core/src/models/tournament-team.ts","../../../projects/core/src/models/team-user.ts","../../../projects/core/src/models/tournament-disqualification.ts","../../../projects/core/src/models/league-player-field.ts","../../../projects/core/src/models/league-player-field-value.ts","../../../projects/core/src/models/league-player.ts","../../../projects/core/src/models/tournament-team-user.ts","../../../projects/core/src/models/basketball-statistic.ts","../../../projects/core/src/models/basketball-game-team-statistic.ts","../../../projects/core/src/models/basketball-game-statistic.ts","../../../projects/core/src/models/basketball-game-log.ts","../../../projects/core/src/models/game-user.ts","../../../projects/core/src/models/game-user-limitation.ts","../../../projects/core/src/models/game-user-disqualification.ts","../../../projects/core/src/api/game-base-api.ts","../../../projects/core/src/api/basketball-game-api.ts","../../../projects/core/src/models/feedback.ts","../../../projects/core/src/api/feedback-api.ts","../../../projects/core/src/api/file-api.ts","../../../projects/core/src/models/hockey-game-log.ts","../../../projects/core/src/models/hockey-game-statistic.ts","../../../projects/core/src/models/hockey-statistic.ts","../../../projects/core/src/models/hockey-game-team-statistic.ts","../../../projects/core/src/api/hockey-game-api.ts","../../../projects/core/src/models/football-game-log.ts","../../../projects/core/src/models/football-game-statistic.ts","../../../projects/core/src/models/football-statistic.ts","../../../projects/core/src/models/football-game-team-statistic.ts","../../../projects/core/src/api/football-game-api.ts","../../../projects/core/src/models/handball-game-log.ts","../../../projects/core/src/models/handball-game-statistic.ts","../../../projects/core/src/models/handball-statistic.ts","../../../projects/core/src/models/handball-game-team-statistic.ts","../../../projects/core/src/api/handball-game-api.ts","../../../projects/core/src/models/tournament-news.ts","../../../projects/core/src/models/game-timeline-stages.ts","../../../projects/core/src/models/tournament-stage.ts","../../../projects/core/src/models/volleyball-statistic.ts","../../../projects/core/src/models/tournament-stage-team.ts","../../../projects/core/src/models/league-news.ts","../../../projects/core/src/models/tournament-event.ts","../../../projects/core/src/models/league-user.ts","../../../projects/core/src/models/rugby-statistic.ts","../../../projects/core/src/models/achievement.ts","../../../projects/core/src/models/team-achievement.ts","../../../projects/core/src/models/waterpolo-statistic.ts","../../../projects/core/src/models/tournament-round.ts","../../../projects/core/src/api/tournament-api.ts","../../../projects/core/src/models/league-partner.ts","../../../projects/core/src/models/league-banner.ts","../../../projects/core/src/models/league-document.ts","../../../projects/core/src/models/teams-and-users.ts","../../../projects/core/src/models/season-tournament.ts","../../../projects/core/src/api/league-api.ts","../../../projects/core/src/api/league-news-api.ts","../../../projects/core/src/api/league-player-api.ts","../../../projects/core/src/api/media-api.ts","../../../projects/core/src/models/poll.ts","../../../projects/core/src/models/team-invite.ts","../../../projects/core/src/models/game-invite.ts","../../../projects/core/src/models/team-event-type.ts","../../../projects/core/src/localization/team-event-type.ts","../../../projects/core/src/models/team-event.ts","../../../projects/core/src/models/team-event-invite.ts","../../../projects/core/src/models/tournament-team-user-invite.ts","../../../projects/core/src/models/tournament-invite.ts","../../../projects/core/src/models/notification.ts","../../../projects/core/src/models/notification-settings.ts","../../../projects/core/src/api/notification-base-api.ts","../../../projects/core/src/api/notification-api.ts","../../../projects/core/src/api/org-notification-api.ts","../../../projects/core/src/api/reference-api.ts","../../../projects/core/src/models/rugby-game-team-statistic.ts","../../../projects/core/src/models/rugby-game-statistic.ts","../../../projects/core/src/models/rugby-foul-type.ts","../../../projects/core/src/models/rugby-game-log.ts","../../../projects/core/src/api/rugby-game-api.ts","../../../projects/core/src/models/team-invite-external.ts","../../../projects/core/src/models/team-permission.ts","../../../projects/core/src/models/team-access.ts","../../../projects/core/src/api/team-api.ts","../../../projects/core/src/api/team-event-api.ts","../../../projects/core/src/models/tournament-join-team.ts","../../../projects/core/src/models/tournament-join1x1-data.ts","../../../projects/core/src/api/tournament-join-api.ts","../../../projects/core/src/models/tournament-round-team.ts","../../../projects/core/src/api/tournament-round-api.ts","../../../projects/core/src/api/tournament-season-api.ts","../../../projects/core/src/api/tournament-stage-api.ts","../../../projects/core/src/models/user-access.ts","../../../projects/core/src/models/user-permission.ts","../../../projects/core/src/api/user-api.ts","../../../projects/core/src/models/volleyball-game-team-statistic.ts","../../../projects/core/src/models/volleyball-game-statistic.ts","../../../projects/core/src/models/volleyball-game-log.ts","../../../projects/core/src/api/volleyball-game-api.ts","../../../projects/core/src/models/waterpolo-game-log.ts","../../../projects/core/src/models/waterpolo-game-statistic.ts","../../../projects/core/src/models/waterpolo-game-team-statistic.ts","../../../projects/core/src/api/waterpolo-game-api.ts","../../../projects/core/src/api/public-team-api.ts","../../../projects/core/src/api/public-user-api.ts","../../../projects/core/src/localization/basketball-game-log-types.ts","../../../projects/core/src/localization/basketball-game-sub-log-types.ts","../../../projects/core/src/localization/hockey-game-log-types.ts","../../../projects/core/src/localization/football-game-log-types.ts","../../../projects/core/src/localization/handball-game-log-types.ts","../../../projects/core/src/localization/waterpolo-game-log-types.ts","../../../projects/core/src/localization/overtime-types.ts","../../../projects/core/src/localization/rugby-foul-sanction.ts","../../../projects/core/src/localization/rugby-foul-game-stage.ts","../../../projects/core/src/localization/rugby-game-log-types.ts","../../../projects/core/src/localization/team-user-role.ts","../../../projects/core/src/localization/user-profile.ts","../../../projects/core/src/localization/volleyball-game-log-types.ts","../../../projects/core/src/localization/organization-statuses.ts","../../../projects/core/src/models/organization-bill.ts","../../../projects/core/src/models/game-bill.ts","../../../projects/core/src/models/league-playlist.ts","../../../projects/core/src/models/organization-tariff.ts","../../../projects/core/src/models/organization-statistic.ts","../../../projects/core/src/services/centrifugo.service.ts","../../../projects/core/src/storage/storage-engine.ts","../../../projects/core/src/storage/local-storage-engine.ts","../../../projects/core/src/utils/component-destroyed.ts","../../../projects/core/src/utils/cookie.ts","../../../projects/core/src/utils/date.ts","../../../projects/core/src/utils/device.ts","../../../projects/core/src/utils/enum.ts","../../../projects/core/src/utils/errors.ts","../../../projects/core/src/utils/favicon.ts","../../../projects/core/src/utils/form.ts","../../../projects/core/src/utils/validators.ts","../../../projects/core/src/http-cookie.interceptor.ts","../../../projects/core/src/mtgame-core.ts"],"sourcesContent":["export const HockeyPenaltyTypes = [\n {id: 1, code: 'АГРЕС', title: 'Агрессор в драке'},\n {id: 2, code: 'АТ-В-ГОЛ', title: 'Атака в голову или шею'},\n {id: 3, code: 'АТ-ВР', title: 'Атака вратаря'},\n {id: 4, code: 'АТ-СЗ', title: 'Атака сзади'},\n {id: 5, code: 'БЛОК', title: 'Блокировка'},\n {id: 6, code: 'БР-КЛ', title: 'Бросок клюшки'},\n {id: 7, code: 'ВБ-ШБ', title: 'Выброс шайбы'},\n {id: 8, code: 'ГРУБ', title: 'Грубость'},\n {id: 9, code: 'ДИСЦ', title: 'Дисциплинарный штраф'},\n {id: 10, code: 'ДИС-КН', title: 'Дисциплинарный до конца матча'},\n {id: 11, code: 'ДРАКА', title: 'Драка'},\n {id: 12, code: 'ЗАЧИН', title: 'Зачинщик драки'},\n {id: 13, code: 'ЗД-ИГ', title: 'Задержка игры'},\n {id: 14, code: 'ЗД-КЛ-СП', title: 'Задержка клюшки соперника'},\n {id: 15, code: 'ЗД-КЛ', title: 'Задержка клюшкой'},\n {id: 16, code: 'ЗД-СП', title: 'Задержка соперника'},\n {id: 17, code: 'ЗД-ШБ', title: 'Задержка шайбы руками'},\n {id: 18, code: 'СЛ-КЛ', title: 'Игра со сломанной клюшкой'},\n {id: 19, code: 'ВП-КЛ', title: 'Игра высоко поднятой клюшкой'},\n {id: 20, code: 'КЛ-УД', title: 'Колющий удар'},\n {id: 21, code: 'СК-ШТ', title: 'Малый скамеечный штраф'},\n {id: 22, code: 'МШ', title: 'Матч-штраф'},\n {id: 23, code: 'НП-АТ', title: 'Неправильная атака'},\n {id: 24, code: 'ЧС-СТ', title: 'Нарушение численного состава'},\n {id: 25, code: 'НС-КЛ', title: 'Нестандартная клюшка'},\n {id: 26, code: 'НАР-ЭК', title: 'Опасное снаряжение'},\n {id: 27, code: 'НС-ПВ', title: 'Оскорбление судей и неспортивное поведение'},\n {id: 28, code: 'ОТ-ИГ', title: 'Отказ начать игру'},\n {id: 29, code: 'ОТСЧ', title: 'Отсечение'},\n {id: 30, code: 'ПЛЕВОК', title: 'Плевок'},\n {id: 31, code: 'ПОДН', title: 'Подножка'},\n {id: 32, code: 'ПОДС', title: 'Подсечка'},\n {id: 33, code: 'ПР-ИН', title: 'Предупреждение инфекций'},\n {id: 34, code: 'ПК-СК', title: 'Покидание скамейки во время конфликта'},\n {id: 35, code: 'СД-ВР', title: 'Сдвиг ворот'},\n {id: 36, code: 'СИМ', title: 'Симуляция'},\n {id: 37, code: 'ТЛ-БР', title: 'Толчок на борт'},\n {id: 38, code: 'ТЛ-КЛ', title: 'Толчок клюшкой'},\n {id: 39, code: 'УД-ГОЛ', title: 'Удар головой'},\n {id: 40, code: 'УД-КЛ', title: 'Удар клюшкой'},\n {id: 41, code: 'УД-К-КЛ', title: 'Удар концом клюшки'},\n {id: 42, code: 'УД-КОЛ', title: 'Удар коленом'},\n {id: 43, code: 'УД-ЛОК', title: 'Удар локтем'},\n {id: 44, code: 'УД-НГ', title: 'Удар ногой'},\n {id: 45, code: 'УКУС', title: 'Укус'},\n {id: 46, code: 'КН-ЗР', title: 'Физический контакт со зрителем'},\n {id: 47, code: 'ШТ-ВР', title: 'Штраф вратаря'}\n];\n","import { HockeyPenaltyTypes } from '../localization/hockey-penalty-types';\n\nexport const MODEL_MAPPING_FIELDS_KEY = '_mapping_fields_';\nexport const MODEL_RELATION_KEY = '_relation_';\nexport const MODEL_TO_FRONT_KEY = '_to_front_';\nexport const MODEL_TO_BACK_KEY = '_to_back_';\n\ntype ParserInterface = (dto: any) => any;\n\ninterface ModelTypeInterface {\n new(data?: any);\n}\n\nexport interface ModelInterface {\n toFront(dto: any): any;\n toBack(dto: any): any;\n}\n\nexport abstract class BaseModel {\n constructor(data?: {[key: string]: any}) {\n if (data) {\n for (const key of Object.keys(data)) {\n this[key] = data[key];\n }\n }\n }\n\n static toFront(dto: any): any {\n return undefined;\n }\n\n static toBack(dto: any): any {\n return undefined;\n }\n}\n\nexport function enumField(enumClass) {\n return {\n toFront: (value) => {\n if (value === null || value === undefined) {\n return value;\n }\n if (isNaN(+value)) {\n return enumClass[value];\n } else {\n return value;\n }\n },\n toBack: (value) => {\n if (value === null || value === undefined) {\n return value;\n }\n if (isNaN(+value)) {\n return value;\n } else {\n return enumClass[value];\n }\n }\n };\n}\n\nexport function penaltyTypeField() {\n return {\n toFront: (data) => {\n if (!data) {\n return null;\n }\n if (typeof data === 'object') {\n return data;\n }\n return HockeyPenaltyTypes.find(item => item.id === data);\n },\n toBack: (data) => {\n if (!data) {\n return null;\n }\n if (typeof data === 'object') {\n return data.id;\n }\n return data;\n }\n };\n}\n\nexport function listField(modelClass) {\n return {\n toFront: (value) => {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.map(item => modelClass.toFront(item));\n },\n toBack: (value) => {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.map(item => modelClass.toBack(item));\n }\n };\n}\n\nexport class DateField extends BaseModel {\n static toFront(date: any): any {\n if (date) {\n return new Date(date);\n } else {\n return undefined;\n }\n }\n static toBack(date: Date): any {\n if (date) {\n const dateUtc = new Date(Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds())\n );\n return dateUtc.toISOString().slice(0, 10);\n } else {\n return undefined;\n }\n }\n}\n\nexport class DateTimeField extends BaseModel {\n static toFront(date: any): any {\n if (date) {\n return new Date(date);\n } else {\n return undefined;\n }\n }\n static toBack(date: Date): any {\n if (date) {\n const dateUtc = new Date(Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds())\n );\n return date.toISOString();\n } else {\n return undefined;\n }\n }\n}\n\nexport function ModelInstance(\n config: {\n mappingFields?: { [key: string]: string },\n relation?: { [key: string]: BaseModel }\n }\n) {\n return (target: ModelTypeInterface) => {\n if (config) {\n if (config.mappingFields) {\n target[MODEL_MAPPING_FIELDS_KEY] = config.mappingFields;\n }\n if (config.relation) {\n target[MODEL_RELATION_KEY] = config.relation;\n }\n target[MODEL_TO_FRONT_KEY] = (dto: any) => {\n return toFront(target, dto);\n };\n target[MODEL_TO_BACK_KEY] = (dto: any) => {\n return toBack(target, dto);\n };\n }\n };\n}\n\nexport const ToFrontHook = (target: ModelTypeInterface, key: string | symbol, descriptor: TypedPropertyDescriptor<Function>) => {\n return {\n value: (...args: any[]) => {\n const parseMethod = target[MODEL_TO_FRONT_KEY] as ParserInterface;\n if (parseMethod) {\n return parseMethod(args[0]);\n }\n return undefined;\n }\n };\n};\n\nexport const ToBackHook = (target: ModelTypeInterface, key: string | symbol, descriptor: TypedPropertyDescriptor<Function>) => {\n return {\n value: (...args: any[]) => {\n const parseMethod = target[MODEL_TO_BACK_KEY] as ParserInterface;\n if (parseMethod) {\n return parseMethod(args[0]);\n }\n return undefined;\n }\n };\n};\n\nfunction extractValue(key, data) {\n if (!data) {\n return undefined;\n }\n\n const keyParts = key.split('.');\n if (keyParts.length === 1) {\n if (key in data) {\n return data[key];\n } else {\n return undefined;\n }\n }\n\n for (const k of keyParts) {\n if (data && k in data) {\n data = data[k];\n } else {\n return undefined;\n }\n }\n\n return data;\n}\n\nfunction toFront(modelType: ModelTypeInterface, data: any): any {\n // Check if recursion is required\n if (Array.isArray(data)) {\n return data.map(item => {\n return toFront(modelType, item);\n });\n }\n\n const instance = new modelType();\n\n // Mapping fields\n const mappingFields = modelType[MODEL_MAPPING_FIELDS_KEY] as string[];\n const relation = modelType[MODEL_RELATION_KEY] as { [key: string]: ModelInterface };\n if (mappingFields) {\n for (const backField of Object.keys(mappingFields)) {\n const frontField = mappingFields[backField];\n const value = extractValue(backField, data);\n if (relation && relation.hasOwnProperty(frontField)) {\n instance[frontField] = relation[frontField].toFront(value);\n } else {\n instance[frontField] = value;\n }\n }\n }\n\n return instance;\n}\n\nfunction toBack(modelType: ModelTypeInterface, instance: any): any {\n if (!instance) {\n return instance;\n }\n\n // Check if recursion is required\n if (Array.isArray(instance)) {\n return instance.map(item => {\n return toBack(modelType, item);\n });\n }\n\n const data = {};\n const mappingFields = modelType[MODEL_MAPPING_FIELDS_KEY] as string[];\n const relation = modelType[MODEL_RELATION_KEY] as { [key: string]: ModelInterface };\n if (mappingFields) {\n for (const backField of Object.keys(mappingFields)) {\n const frontField = mappingFields[backField];\n if (relation && relation.hasOwnProperty(frontField) && instance[frontField] !== undefined) {\n data[backField] = relation[frontField].toBack(instance[frontField]);\n } else {\n data[backField] = instance[frontField];\n }\n }\n }\n\n return data;\n}\n","import { ModelInstance, ToFrontHook, ToBackHook, enumField, DateTimeField } from './util';\n\nexport enum FileEngine {\n django = 1,\n s3\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n original_name: 'originalName',\n path: 'path',\n resized_path: 'resizedPath',\n mime_type: 'mimeType',\n size: 'size',\n engine: 'engine',\n created_at: 'createdAt',\n },\n relation: {\n engine: enumField(FileEngine),\n createdAt: DateTimeField,\n }\n})\nexport class File {\n id: number;\n name: string;\n _originalName: string;\n _path: string;\n resizedPath: string;\n mimeType: string;\n size: number;\n engine: FileEngine;\n createdAt: Date;\n\n set originalName(name: string) {\n this._originalName = name;\n }\n\n get originalName(): string {\n return this._originalName || this.name;\n }\n\n set path(filePath: string) {\n this._path = filePath;\n }\n\n get path(): string {\n return this.resizedPath || this._path;\n }\n\n @ToFrontHook\n static toFront(data: any): File {\n return null;\n }\n\n @ToBackHook\n static toBack(file: File): any {\n return null;\n }\n}\n","import {ModelInstance, ToFrontHook, ToBackHook, BaseModel} from './util';\n\nexport enum SportTypes {\n basketball = 1,\n volleyball = 2,\n classic_basketball = 3,\n streetball = 4,\n classic_volleyball = 5,\n beach_volleyball = 6,\n hockey = 7,\n ice_hockey = 8,\n ball_hockey = 9,\n football = 10,\n classic_football = 11,\n mini_football = 12,\n handball = 13,\n handball_classic = 14,\n rugby = 15,\n rugby7 = 16,\n rugby15 = 17,\n basketball_1x1 = 18,\n waterpolo = 19,\n classic_waterpolo = 20,\n mini_waterpolo = 21\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n parent_id: 'parentId',\n sub_sports: 'subSports'\n }\n})\nexport class Sport extends BaseModel {\n id: number;\n name: string;\n parentId: number;\n subSports: Sport[];\n\n isBasketball() {\n return this.id === SportTypes.basketball || this.parentId === SportTypes.basketball;\n }\n\n isClassicBasketball() {\n return this.id === SportTypes.classic_basketball;\n }\n\n isStreetball() {\n return this.id === SportTypes.streetball;\n }\n\n isBasketball1x1() {\n return this.id === SportTypes.basketball_1x1;\n }\n\n isVolleyball() {\n return this.id === SportTypes.volleyball || this.parentId === SportTypes.volleyball;\n }\n\n isClassicVolleyball() {\n return this.id === SportTypes.classic_volleyball;\n }\n\n isBeachVolleyball() {\n return this.id === SportTypes.beach_volleyball;\n }\n\n isHockey(): boolean {\n return this.id === SportTypes.hockey || this.parentId === SportTypes.hockey;\n }\n\n isIceHockey(): boolean {\n return this.id === SportTypes.ice_hockey;\n }\n\n isBallHockey(): boolean {\n return this.id === SportTypes.ball_hockey;\n }\n\n isFootball() {\n return this.id === SportTypes.football || this.parentId === SportTypes.football;\n }\n\n isClassicFootball() {\n return this.id === SportTypes.classic_football;\n }\n\n isMiniFootball() {\n return this.id === SportTypes.mini_football;\n }\n\n isHandball() {\n return this.id === SportTypes.handball || this.parentId === SportTypes.handball;\n }\n\n isHandballClassic() {\n return this.id === SportTypes.handball_classic;\n }\n\n isRugby() {\n return this.id === SportTypes.rugby || this.parentId === SportTypes.rugby;\n }\n\n isRugby15() {\n return this.id === SportTypes.rugby15;\n }\n\n isRugby7() {\n return this.id === SportTypes.rugby7;\n }\n\n isWaterpolo() {\n return this.id === SportTypes.waterpolo || this.parentId === SportTypes.waterpolo;\n }\n\n isClassicWaterpolo() {\n return this.id === SportTypes.classic_waterpolo;\n }\n\n isMiniWaterpolo() {\n return this.id === SportTypes.mini_waterpolo;\n }\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(sport: Sport): any {\n return null;\n }\n}\n","import { ModelInstance, ToBackHook, ToFrontHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n height: 'height',\n weight: 'weight'\n }\n})\nexport class UserProfile {\n id: number;\n userId: number;\n height: number;\n weight: number;\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name'\n }\n})\nexport class City extends BaseModel {\n id: number;\n name: string;\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameBasketballPosition {\n point_guard = 1,\n shooting_guard,\n small_forward,\n power_forward,\n center\n}\n\nexport enum WorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameBasketballPosition),\n workHand: enumField(WorkHand)\n }\n})\nexport class BasketballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameBasketballPosition;\n workHand: WorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameVolleyballPosition {\n setter = 1,\n libero,\n middle_player,\n receiver_attacker,\n dioganal\n}\n\nexport enum VolleyballWorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameVolleyballPosition),\n workHand: enumField(VolleyballWorkHand)\n }\n})\nexport class VolleyballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameVolleyballPosition;\n workHand: VolleyballWorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameHockeyPosition {\n defensemen = 1,\n forward,\n goaltender\n}\n\nexport enum HockeyWorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameHockeyPosition),\n workHand: enumField(HockeyWorkHand)\n }\n})\nexport class HockeyProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameHockeyPosition;\n workHand: HockeyWorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameFootballPosition {\n defensemen = 1,\n midfielder,\n forward,\n goalkeeper\n}\n\nexport enum FootballWorkFoot {\n left = 1,\n right,\n both\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_foot: 'workFoot'\n },\n relation: {\n position: enumField(GameFootballPosition),\n workFoot: enumField(FootballWorkFoot)\n }\n})\nexport class FootballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameFootballPosition;\n workFoot: FootballWorkFoot;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { WorkHand } from './basketball-profile';\n\nexport enum GameHandballPosition {\n goalkeeper = 1,\n winger,\n pivot,\n centre_back,\n fullback\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameHandballPosition),\n workHand: enumField(WorkHand)\n }\n})\nexport class HandballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameHandballPosition;\n workHand: WorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameRugbyPosition {\n front_line = 1,\n second_line,\n back_line,\n halfback,\n three_quarter,\n fullback,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position'\n },\n relation: {\n position: enumField(GameRugbyPosition),\n }\n})\nexport class RugbyProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameRugbyPosition;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameWaterpoloPosition {\n goalkeeper = 1,\n defensemen,\n center_forward,\n mobile_forward\n}\n\nexport enum WaterpoloWorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameWaterpoloPosition),\n workHand: enumField(WaterpoloWorkHand)\n }\n})\nexport class WaterpoloProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameWaterpoloPosition;\n workHand: WaterpoloWorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, DateField, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { UserProfile } from './user-profile';\nimport { File } from './file';\nimport { City } from './city';\nimport { BasketballProfile } from './basketball-profile';\nimport { VolleyballProfile } from './volleyball-profile';\nimport { HockeyProfile } from './hockey-profile';\nimport { FootballProfile } from './football-profile';\nimport { HandballProfile } from './handball-profile';\nimport { RugbyProfile } from './rugby-profile';\nimport { WaterpoloProfile } from './waterpolo-profile';\n\nexport enum UserGender {\n male = 1,\n female\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n last_name: 'lastName',\n first_name: 'firstName',\n middle_name: 'middleName',\n email: 'email',\n phone: 'phone',\n birth_date: 'birthDate',\n photo: 'photo',\n profile: 'profile',\n basketball_profile: 'basketballProfile',\n volleyball_profile: 'volleyballProfile',\n hockey_profile: 'hockeyProfile',\n football_profile: 'footballProfile',\n handball_profile: 'handballProfile',\n rugby_profile: 'rugbyProfile',\n waterpolo_profile: 'waterpoloProfile',\n wizards: 'wizards',\n city: 'city',\n gender: 'gender',\n is_active: 'isActive',\n unique_code: 'uniqueCode',\n created_by_league_id: 'createdByLeagueId',\n },\n relation: {\n birthDate: DateField,\n photo: File,\n profile: UserProfile,\n basketballProfile: BasketballProfile,\n volleyballProfile: VolleyballProfile,\n hockeyProfile: HockeyProfile,\n footballProfile: FootballProfile,\n handballProfile: HandballProfile,\n rugbyProfile: RugbyProfile,\n waterpoloProfile: WaterpoloProfile,\n city: City,\n gender: enumField(UserGender)\n }\n})\nexport class User extends BaseModel {\n id: number;\n lastName: string;\n firstName: string;\n middleName: string;\n email: string;\n phone: string;\n birthDate: Date;\n profile: UserProfile;\n basketballProfile: BasketballProfile;\n volleyballProfile: VolleyballProfile;\n hockeyProfile: HockeyProfile;\n footballProfile: FootballProfile;\n handballProfile: HandballProfile;\n rugbyProfile: RugbyProfile;\n waterpoloProfile: WaterpoloProfile;\n photo: File;\n wizards: string[];\n city: City;\n gender: UserGender;\n isActive: boolean;\n uniqueCode: string;\n createdByLeagueId: number;\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(user: User): any {\n return null;\n }\n\n get fullName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get shortName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get initials(): string {\n return [this.lastName, this.firstName].filter(s => s).map(s => s.substr(0, 1)).join('');\n }\n\n get age(): number {\n if (!this.birthDate) {\n return null;\n }\n const diff = (new Date()).getTime() - this.birthDate.getTime();\n return Math.floor(diff / (365 * 86400 * 1000));\n }\n}\n","import { ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateField } from './util';\nimport { File } from './file';\nimport { Sport } from './sport';\nimport { User } from './user';\nimport { City } from './city';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n sport: 'sport',\n logo: 'logo',\n owner: 'owner',\n city: 'city',\n users_count: 'usersCount',\n won_games_count: 'wonGamesCount',\n games_count: 'gamesCount',\n score_sum: 'scoreSum',\n closest_game_datetime: 'closestGameDatetime',\n },\n relation: {\n sport: Sport,\n logo: File,\n owner: User,\n city: City,\n closestGameDatetime: DateField,\n }\n})\nexport class Team extends BaseModel {\n id: number;\n name: string;\n sport: Sport;\n logo: File;\n owner: User;\n city: City;\n usersCount: number;\n wonGamesCount: number;\n gamesCount: number;\n scoreSum: number;\n closestGameDatetime: Date;\n\n getEmptyLogoClass(): string {\n const classList = ['empty-logo'];\n if (this.sport.isBasketball()) {\n classList.push('empty-logo-basketball');\n }\n if (this.sport.isVolleyball()) {\n classList.push('empty-logo-volleyball');\n }\n if (this.sport.isHockey()) {\n classList.push('empty-logo-hockey');\n }\n if (this.sport.isFootball()) {\n classList.push('empty-logo-football');\n }\n if (this.sport.isHandball()) {\n classList.push('empty-logo-handball');\n }\n if (this.sport.isRugby()) {\n classList.push('empty-logo-rugby');\n }\n if (this.sport.isWaterpolo()) {\n classList.push('empty-logo-waterpolo');\n }\n return classList.join(' ');\n }\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(team: Team): any {\n return null;\n }\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, enumField } from './util';\nimport { User } from './user';\n\n\nexport enum OrganizationStatuses {\n active = 1,\n blocked,\n not_confirmed\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n owner_id: 'ownerId',\n owner: 'owner',\n status: 'status',\n name: 'name',\n phone: 'phone',\n email: 'email',\n unpaid_bills_sum: 'unpaidBillsSum',\n unpaid_game_bills_sum: 'unpaidGameBillsSum',\n },\n relation: {\n owner: User,\n status: enumField(OrganizationStatuses)\n }\n})\nexport class Organization extends BaseModel {\n id: number;\n ownerId: number;\n owner: User;\n status: OrganizationStatuses;\n name: string;\n phone: string;\n email: string;\n unpaidBillsSum: number;\n unpaidGameBillsSum: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { Organization } from './organization';\nimport { File } from './file';\nimport { Sport } from './sport';\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n logo: 'logo',\n contact_email: 'contactEmail',\n contact_phone: 'contactPhone',\n name: 'name',\n alias: 'alias',\n domain: 'domain',\n sport: 'sport',\n description: 'description',\n social_links: 'socialLinks',\n links: 'links',\n organization: 'organization',\n tournaments_count: 'tournamentsCount',\n documents_count: 'documentsCount',\n closest_game_datetime: 'closestGameDatetime',\n cover: 'cover',\n cover_mobile: 'coverMobile',\n about: 'about',\n },\n relation: {\n organization: Organization,\n logo: File,\n cover: File,\n coverMobile: File,\n sport: Sport,\n }\n})\nexport class League extends BaseModel {\n id: number;\n logo: File;\n contactEmail: string;\n contactPhone: string;\n name: string;\n alias: string;\n domain: string;\n sport: Sport;\n description: string;\n socialLinks: string[];\n links: string[];\n organization: Organization;\n tournamentsCount: number;\n documentsCount: number;\n closestGameDatetime: string;\n cover: File;\n coverMobile: File;\n about: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get vkLink(): string {\n return this.socialLinks.find(link => link.indexOf('vk.com/') > -1);\n }\n\n get fbLink(): string {\n return this.socialLinks.find(link => link.indexOf('facebook.com/') > -1);\n }\n\n get instaLink(): string {\n return this.socialLinks.find(link => link.indexOf('instagram.com/') > -1);\n }\n\n get youtubeLink(): string {\n return this.socialLinks.find(link => link.indexOf('youtube.com/') > -1);\n }\n\n get telegramLink(): string {\n return this.socialLinks.find(link =>\n link.substr(0, 13) === 'https://t.me/' ||\n link.substr(0, 17) === 'https://www.t.me/'\n );\n }\n\n get tiktokLink(): string {\n return this.socialLinks.find(link => link.indexOf('tiktok.com/') > -1);\n }\n\n checkRuDomain(): boolean {\n const domainSplit = this.domain.split('.');\n return domainSplit[(domainSplit.length - 1)] === 'ru';\n }\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, enumField, DateField } from './util';\nimport { File } from './file';\n\nexport enum TournamentSeasonStatuses {\n open,\n in_progress,\n closed,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n alias: 'alias',\n logo: 'logo',\n cover: 'cover',\n preview_image: 'previewImage',\n status: 'status',\n start_date: 'startDate',\n closed_date: 'closedDate',\n tournaments: 'tournaments',\n },\n relation: {\n logo: File,\n cover: File,\n previewImage: File,\n status: enumField(TournamentSeasonStatuses),\n startDate: DateField,\n closedDate: DateField,\n }\n})\nexport class TournamentSeason extends BaseModel {\n id: number;\n name: string;\n alias: string;\n logo: File;\n cover: File;\n previewImage: File;\n status: TournamentSeasonStatuses;\n startDate: Date;\n closedDate: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, enumField, ModelInstance, DateTimeField, ToBackHook, ToFrontHook } from './util';\nimport { City } from './city';\nimport { File } from './file';\nimport { League } from './league';\nimport { Sport } from './sport';\nimport { Team } from './team';\nimport { TournamentSeason } from './tournament-season';\n\nexport enum TournamentTypes {\n group = 'group',\n elimination = 'elimination',\n fiba = 'fiba'\n}\n\nexport enum TournamentStatuses {\n open,\n in_progress,\n closed,\n}\n\nexport enum TournamentGender {\n male= 1,\n female,\n all\n}\n\nexport enum BasketballStatisticTypes {\n standard = 1,\n light,\n advanced\n}\n\nexport enum VolleyballStatisticTypes {\n standard = 1,\n light,\n advanced\n}\n\nexport enum RugbyStatisticTypes {\n light = 1,\n standard,\n}\n\nexport enum GameTimeTypes {\n clean = 1,\n dirty,\n}\n\nexport enum OvertimeTypes {\n to_score_total = 1,\n to_score_diff,\n time,\n without_overtime,\n to_first_goal,\n to_first_goal_and_bullitts,\n bullitts,\n penalties,\n time_and_penalties\n}\n\nexport enum TimerTypes {\n backward = 1,\n forward,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n gender: 'gender',\n birth_year_from: 'birthYearFrom',\n birth_year_to: 'birthYearTo',\n max_team_players: 'maxTeamPlayers',\n max_game_players: 'maxGamePlayers',\n type: 'type',\n tours_count: 'toursCount',\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_score: 'overtimeScore',\n game_type: 'gameType',\n timeout_count: 'timeoutCount',\n timeout_time: 'timeoutTime',\n substitute_count: 'substituteCount',\n game_up_to_score: 'gameUpToScore',\n volleyball_score_in_set: 'volleyballScoreInSet',\n volleyball_score_in_last_set: 'volleyballScoreInLastSet',\n manage_team_application: 'manageTeamApplication',\n recruitment_is_open: 'recruitmentIsOpen',\n transfer_is_open: 'transferIsOpen',\n basketball_statistic_type: 'basketballStatisticType',\n volleyball_statistic_type: 'volleyballStatisticType',\n rugby_statistic_type: 'rugbyStatisticType',\n shot_clock_enabled: 'shotClockEnabled',\n game_time_type: 'gameTimeType',\n with_result_table: 'withResultTable',\n free_substitute_enabled: 'freeSubstituteEnabled',\n substitute_manage_enabled: 'substituteManageEnabled',\n bonus_points_enabled: 'bonusPointsEnabled',\n minor_penalty_time: 'minorPenaltyTime',\n major_penalty_time: 'majorPenaltyTime',\n misconduct_penalty_time: 'misconductPenaltyTime',\n game_misconduct_penalty_time: 'gameMisconductPenaltyTime',\n timer_type: 'timerType',\n hide_on_league_main_page: 'hideOnLeagueMainPage',\n },\n relation: {\n type: enumField(TournamentTypes),\n gender: enumField(TournamentGender),\n basketballStatisticType: enumField(BasketballStatisticTypes),\n volleyballStatisticType: enumField(VolleyballStatisticTypes),\n rugbyStatisticType: enumField(RugbyStatisticTypes),\n gameTimeType: enumField(GameTimeTypes),\n overtimeType: enumField(OvertimeTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class TournamentSettings extends BaseModel {\n id: number;\n gender: TournamentGender;\n birthYearFrom: number;\n birthYearTo: number;\n maxTeamPlayers: number;\n maxGamePlayers: number;\n type: TournamentTypes;\n toursCount: number;\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimeScore: number;\n gameType: string;\n timeoutCount: number;\n timeoutTime: number;\n substituteCount: number;\n gameUpToScore: number;\n volleyballScoreInSet: number;\n volleyballScoreInLastSet: number;\n manageTeamApplication: boolean;\n recruitmentIsOpen: boolean;\n transferIsOpen: boolean;\n basketballStatisticType: BasketballStatisticTypes;\n volleyballStatisticType: VolleyballStatisticTypes;\n rugbyStatisticType: RugbyStatisticTypes;\n shotClockEnabled: boolean;\n gameTimeType: GameTimeTypes;\n withResultTable: boolean;\n freeSubstituteEnabled: boolean;\n bonusPointsEnabled: boolean;\n substituteManageEnabled: boolean;\n minorPenaltyTime: number;\n majorPenaltyTime: number;\n misconductPenaltyTime: number;\n gameMisconductPenaltyTime: number;\n timerType: TimerTypes;\n hideOnLeagueMainPage: boolean;\n\n get genderTitle(): string {\n const yearDiff = new Date().getFullYear() - this.birthYearFrom;\n if (this.gender === TournamentGender.male) {\n if (yearDiff < 15) {\n return 'Мальчики';\n }\n if (yearDiff < 21) {\n return 'Юноши';\n }\n return 'Мужчины';\n }\n if (this.gender === TournamentGender.female) {\n if (yearDiff < 15) {\n return 'Девочки';\n }\n if (yearDiff < 21) {\n return 'Девушки';\n }\n return 'Женщины';\n }\n return 'Смешанный';\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n tournament_id: 'tournamentId',\n name: 'name',\n logo: 'logo',\n team: 'team',\n points: 'points',\n },\n relation: {\n logo: File,\n team: Team,\n }\n})\nexport class TournamentTeamWinner extends BaseModel {\n id: number;\n teamId: number;\n tournamentId: number;\n name: string;\n logo: File;\n team: Team;\n points: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n alias: 'alias',\n logo: 'logo',\n cover: 'cover',\n cover_mobile: 'coverMobile',\n preview_image: 'previewImage',\n city: 'city',\n sport: 'sport',\n location: 'location',\n description: 'description',\n date: 'date',\n price: 'price',\n regulation_files: 'regulationFiles',\n settings: 'settings',\n league: 'league',\n teams_count: 'teamsCount',\n closest_game_datetime: 'closestGameDatetime',\n status: 'status',\n team_winner: 'teamWinner',\n team_second: 'teamSecond',\n team_third: 'teamThird',\n season: 'season',\n season_id: 'seasonId',\n game_price: 'gamePrice',\n season_tournament_id: 'seasonTournamentId',\n },\n relation: {\n logo: File,\n cover: File,\n coverMobile: File,\n previewImage: File,\n city: City,\n sport: Sport,\n regulationFile: File,\n settings: TournamentSettings,\n date: DateTimeField,\n league: League,\n status: enumField(TournamentStatuses),\n teamWinner: TournamentTeamWinner,\n teamSecond: TournamentTeamWinner,\n teamThird: TournamentTeamWinner,\n season: TournamentSeason,\n }\n})\nexport class Tournament extends BaseModel {\n id: number;\n name: string;\n alias: string;\n logo: File;\n cover: File;\n coverMobile: File;\n previewImage: File;\n city: City;\n sport: Sport;\n location: string;\n description: string;\n date: Date;\n price: number;\n regulationFiles: File[];\n settings: TournamentSettings;\n league: League;\n teamsCount: number;\n closestGameDatetime: string;\n status: TournamentStatuses;\n teamWinner: TournamentTeamWinner;\n teamSecond: TournamentTeamWinner;\n teamThird: TournamentTeamWinner;\n season: TournamentSeason;\n seasonId: number;\n gamePrice: number;\n seasonTournamentId: number;\n\n getEmptyLogoClass(): string {\n const classList = ['empty-logo'];\n if (this.sport.isBasketball()) {\n classList.push('empty-logo-basketball');\n }\n if (this.sport.isVolleyball()) {\n classList.push('empty-logo-volleyball');\n }\n if (this.sport.isHockey()) {\n classList.push('empty-logo-hockey');\n }\n if (this.sport.isFootball()) {\n classList.push('empty-logo-football');\n }\n if (this.sport.isHandball()) {\n classList.push('empty-logo-handball');\n }\n if (this.sport.isRugby()) {\n classList.push('empty-logo-rugby');\n }\n if (this.sport.isWaterpolo()) {\n classList.push('empty-logo-waterpolo');\n }\n return classList.join(' ');\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { BasketballStatisticTypes, GameTimeTypes, OvertimeTypes, TimerTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n game_up_to_score: 'gameUpToScore',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_score: 'overtimeScore',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n statistic_type: 'statisticType',\n shot_clock_enabled: 'shotClockEnabled',\n game_time_type: 'gameTimeType',\n timer_type: 'timerType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n statisticType: enumField(BasketballStatisticTypes),\n gameTimeType: enumField(GameTimeTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class BasketballGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n gameUpToScore: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimeScore: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n statisticType: BasketballStatisticTypes;\n shotClockEnabled: boolean;\n gameTimeType: GameTimeTypes;\n timerType: TimerTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { VolleyballStatisticTypes } from './tournament';\n\nexport enum VolleyballGameTypes {\n best_of_five = 1,\n best_of_three\n}\n\n@ModelInstance({\n mappingFields: {\n game_type: 'gameType',\n timeout_count: 'timeoutCount',\n timeout_time: 'timeoutTime',\n substitute_count: 'substituteCount',\n score_in_set: 'scoreInSet',\n score_in_last_set: 'scoreInLastSet',\n statistic_type: 'statisticType',\n libero_user_ids: 'liberoUserIds',\n },\n relation: {\n gameType: enumField(VolleyballGameTypes),\n statisticType: enumField(VolleyballStatisticTypes),\n }\n})\nexport class VolleyballGameConfig extends BaseModel {\n gameType: VolleyballGameTypes;\n timeoutCount: number;\n timeoutTime: number;\n substituteCount: number;\n scoreInSet: number;\n scoreInLastSet: number;\n statisticType: VolleyballStatisticTypes;\n liberoUserIds: number[];\n\n get setsCount(): number {\n return this.gameType === VolleyballGameTypes.best_of_three ? 3 : 5;\n }\n\n getSetMaxScore(set: number) {\n return set === this.setsCount ? this.scoreInLastSet : this.scoreInSet;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n address: 'address',\n league_id: 'leagueId',\n active_games_count: 'activeGamesCount',\n }\n})\nexport class LeagueCourt extends BaseModel {\n id: number;\n name: string;\n address: string;\n leagueId: number;\n activeGamesCount: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n original_photo: 'originalPhoto',\n list_photo: 'listPhoto',\n detail_photo: 'detailPhoto',\n game: 'game',\n tournament: 'tournament',\n game_id: 'gameId',\n tournament_id: 'tournament_id',\n video_url: 'videoUrl',\n video_preview: 'videoPreview',\n is_live: 'isLive',\n },\n relation: {\n originalPhoto: File,\n listPhoto: File,\n detailPhoto: File,\n videoPreview: File\n }\n})\nexport class MediaItem extends BaseModel {\n id: number;\n originalPhoto: File;\n listPhoto: File;\n detailPhoto: File;\n gameId: number;\n tournamentId: number;\n videoUrl: string;\n videoPreview: File;\n isLive: boolean;\n\n get isVideo(): boolean {\n return Boolean(this.videoUrl);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n game_time_type: 'gameTimeType',\n substitute_manage_enabled: 'substituteManageEnabled',\n minor_penalty_time: 'minorPenaltyTime',\n major_penalty_time: 'majorPenaltyTime',\n misconduct_penalty_time: 'misconductPenaltyTime',\n game_misconduct_penalty_time: 'gameMisconductPenaltyTime',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class HockeyGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteManageEnabled: boolean;\n minorPenaltyTime: number;\n majorPenaltyTime: number;\n misconductPenaltyTime: number;\n gameMisconductPenaltyTime: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get overtimePeriod(): number {\n return this.periodsCount + 1;\n }\n\n get bullitsPeriod(): number {\n return this.periodsCount + 2;\n }\n\n get playoffBullitsPeriod(): number {\n return this.periodsCount + 3;\n }\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_periods: 'overtimePeriods',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n game_time_type: 'gameTimeType',\n substitute_count: 'substituteCount',\n free_substitute_enabled: 'freeSubstituteEnabled',\n substitute_manage_enabled: 'substituteManageEnabled',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class FootballGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimePeriods: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteCount: number;\n freeSubstituteEnabled: boolean;\n substituteManageEnabled: boolean;\n\n get penaltyPeriod(): number {\n if (this.overtimeType !== OvertimeTypes.time_and_penalties) {\n return +this.periodsCount + 1;\n }\n return +this.periodsCount + this.overtimePeriods + 1;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n game_time_type: 'gameTimeType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class HandballGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","export function generateArray(length: number): number[] {\n if (+length <= 0) {\n return [];\n }\n return Array.apply(null, Array(length)).map((_, i) => i + 1);\n}\n\nexport function getArrayChunks(array: any[], length: number): any[][] {\n const chunks = [];\n const chunkLength = Math.ceil(array.length / length);\n if (chunkLength === 0) {\n return [array];\n }\n for (let i = 0; i < chunkLength; i++) {\n chunks.push(array.slice(i * length, (i + 1) * length));\n }\n return chunks;\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { generateArray } from '../utils/array';\n\nexport enum PlayoffTypes {\n double_elimination = 'double_elimination',\n elimination = 'elimination'\n}\n\n@ModelInstance({\n mappingFields: {\n rounds: 'rounds',\n final_rounds: 'finalRounds',\n third_place_rounds: 'thirdPlaceRounds',\n teams_count: 'teamsCount',\n type: 'type',\n min_player_games_count: 'minPlayerGamesCount',\n min_player_time: 'minPlayerTime',\n },\n relation: {\n type: enumField(PlayoffTypes)\n }\n})\nexport class PlayoffSettings extends BaseModel {\n rounds: number;\n finalRounds: number;\n thirdPlaceRounds: number;\n teamsCount: number;\n type: PlayoffTypes;\n minPlayerGamesCount: number;\n minPlayerTime: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n settings: 'settings',\n tournament_id: 'tournamentId',\n tournament_stage_id: 'tournamentStageId',\n is_official: 'isOfficial',\n tournament_round_id: 'tournamentRoundId',\n division_id: 'divisionId',\n },\n relation: {\n settings: PlayoffSettings\n }\n})\nexport class Playoff extends BaseModel {\n id: number;\n name: string;\n settings: PlayoffSettings;\n tournamentId: number;\n tournamentStageId: number;\n isOfficial: boolean;\n tournamentRoundId: number;\n divisionId: number;\n private stages: {title: string, value: number}[] = [];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get stagesCount(): number {\n return Math.log(this.settings.teamsCount) / Math.log(2);\n }\n\n getPlayoffStages() {\n if (this.stages.length === 0 && this.settings.teamsCount) {\n const stagesCount = Math.log(this.settings.teamsCount) / Math.log(2);\n this.stages = generateArray(stagesCount).map(stage => {\n const playoffStage = this.settings.teamsCount / 2 ** stage;\n let title = '';\n if (playoffStage === 1) {\n title = 'Финал';\n } else {\n title = `1 / ${playoffStage}`;\n }\n return {\n value: stage,\n title\n };\n });\n }\n return this.stages;\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { TournamentTeam } from './tournament-team';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n sort: 'sort',\n tournament_stage_id: 'tournamentStageId',\n tournament_round_id: 'tournamentRoundId',\n division_id: 'divisionId',\n }\n})\nexport class TournamentGroup extends BaseModel {\n id: number;\n name: string;\n sort: number;\n tournamentStageId: number;\n tournamentRoundId: number;\n divisionId: number;\n teams: TournamentTeam[];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { GameTimeTypes, OvertimeTypes, RugbyStatisticTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_periods: 'overtimePeriods',\n max_game_players: 'maxGamePlayers',\n game_time_type: 'gameTimeType',\n substitute_count: 'substituteCount',\n free_substitute_enabled: 'freeSubstituteEnabled',\n statistic_type: 'statisticType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n statisticType: enumField(RugbyStatisticTypes),\n }\n})\nexport class RugbyGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimePeriods: number;\n maxGamePlayers: number;\n gameTimeType: GameTimeTypes;\n substituteCount: number;\n freeSubstituteEnabled: boolean;\n statisticType: RugbyStatisticTypes;\n\n get penaltyPeriod(): number {\n if (this.overtimeType !== OvertimeTypes.time_and_penalties) {\n return +this.periodsCount + 1;\n }\n return +this.periodsCount + this.overtimePeriods + 1;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n game_time_type: 'gameTimeType',\n substitute_manage_enabled: 'substituteManageEnabled',\n shot_clock_enabled: 'shotClockEnabled',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class WaterpoloGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteManageEnabled: boolean;\n shotClockEnabled: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get overtimePeriod(): number {\n return this.periodsCount + 1;\n }\n\n get bullitsPeriod(): number {\n return this.periodsCount + 2;\n }\n\n get playoffBullitsPeriod(): number {\n return this.periodsCount + 3;\n }\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField, listField } from './util';\nimport { Team } from './team';\nimport { BasketballGameConfig } from './basketball-game-config';\nimport { VolleyballGameConfig } from './volleyball-game-config';\nimport { LeagueCourt } from './league-court';\nimport { MediaItem } from './media-item';\nimport { HockeyGameConfig } from './hockey-game-config';\nimport { Tournament } from './tournament';\nimport { FootballGameConfig } from './football-game-config';\nimport { HandballGameConfig } from './handball-game-config';\nimport { Playoff } from './playoff';\nimport { TournamentGroup } from './tournament-group';\nimport { File } from './file';\nimport { RugbyGameConfig } from './rugby-game-config';\nimport { WaterpoloGameConfig } from './waterpolo-game-config';\n\nexport enum GameStatuses {\n open = 1,\n in_progress,\n closed,\n archived,\n draft\n}\n\nexport enum GameResultTypes {\n team_won = 1,\n competitor_team_won,\n team_technical_defeat,\n competitor_team_technical_defeat,\n draw\n}\n\n@ModelInstance({\n mappingFields: {\n nickname: 'nickname',\n color: 'color',\n }\n})\nexport class GameTeamAdditionalData {\n nickname: string;\n color: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n logo: 'logo',\n additional_data: 'additionalData',\n },\n relation: {\n logo: File,\n additionalData: GameTeamAdditionalData,\n }\n})\nexport class TournamentTeamShort extends BaseModel {\n id: number;\n name: string;\n logo: File;\n additionalData: GameTeamAdditionalData;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n status: 'status',\n team: 'team',\n tournament_team: 'tournamentTeam',\n tournament_team_id: 'tournamentTeamId',\n team_id: 'teamId',\n competitor_team: 'competitorTeam',\n competitor_tournament_team: 'competitorTournamentTeam',\n competitor_tournament_team_id: 'competitorTournamentTeamId',\n competitor_team_id: 'competitorTeamId',\n competitor_team_name: 'competitorTeamName',\n datetime: 'datetime',\n location: 'location',\n team_score: 'teamScore',\n competitor_team_score: 'competitorTeamScore',\n result_type: 'resultType',\n playoff_number: 'playoffNumber',\n tournament_id: 'tournamentId',\n tournament_tour: 'tournamentTour',\n game_config: 'gameConfig',\n basketball_game_config: 'basketballGameConfig',\n volleyball_game_config: 'volleyballGameConfig',\n hockey_game_config: 'hockeyGameConfig',\n football_game_config: 'footballGameConfig',\n handball_game_config: 'handballGameConfig',\n rugby_game_config: 'rugbyGameConfig',\n waterpolo_game_config: 'waterpoloGameConfig',\n score_by_period: 'scoreByPeriod',\n playoff_stage: 'playoffStage',\n playoff_round: 'playoffRound',\n tournament_stage_id: 'tournamentStageId',\n tournament_playoff_id: 'tournamentPlayoffId',\n tournament_playoff: 'tournamentPlayoff',\n tournament_court: 'tournamentCourt',\n media_count: 'mediaCount',\n media_live_count: 'mediaLiveCount',\n media: 'media',\n tournament: 'tournament',\n tournament_group: 'tournamentGroup',\n },\n relation: {\n status: enumField(GameStatuses),\n team: Team,\n tournamentTeam: TournamentTeamShort,\n competitorTeam: Team,\n competitorTournamentTeam: TournamentTeamShort,\n datetime: DateTimeField,\n resultType: enumField(GameResultTypes),\n basketballGameConfig: BasketballGameConfig,\n volleyballGameConfig: VolleyballGameConfig,\n hockeyGameConfig: HockeyGameConfig,\n footballGameConfig: FootballGameConfig,\n handballGameConfig: HandballGameConfig,\n rugbyGameConfig: RugbyGameConfig,\n waterpoloGameConfig: WaterpoloGameConfig,\n tournamentPlayoff: Playoff,\n tournamentCourt: LeagueCourt,\n media: listField(MediaItem),\n tournament: Tournament,\n tournamentGroup: TournamentGroup,\n }\n})\nexport class Game extends BaseModel {\n private _basketballGameConfig: BasketballGameConfig;\n private _volleyballGameConfig: VolleyballGameConfig;\n private _hockeyGameConfig: HockeyGameConfig;\n private _footballGameConfig: FootballGameConfig;\n private _handballGameConfig: HandballGameConfig;\n private _rugbyGameConfig: RugbyGameConfig;\n private _waterpoloGameConfig: WaterpoloGameConfig;\n\n id: number;\n status: GameStatuses;\n team: Team;\n tournamentTeam: TournamentTeamShort;\n teamId: number;\n tournamentTeamId: number;\n competitorTeam: Team;\n competitorTournamentTeam: TournamentTeamShort;\n competitorTeamId: number;\n competitorTournamentTeamId: number;\n competitorTeamName: string;\n gameConfig: any;\n datetime: Date;\n location: string;\n teamScore: number;\n competitorTeamScore: number;\n resultType: GameResultTypes;\n playoffNumber: string;\n tournamentId: number;\n tournamentTour: number;\n scoreByPeriod: any;\n playoffStage: string;\n playoffRound: number;\n tournamentStageId: number;\n tournamentPlayoffId: number;\n tournamentPlayoff: Playoff;\n tournamentCourt: LeagueCourt;\n mediaCount: number;\n mediaLiveCount: number;\n media: MediaItem[];\n tournament: Tournament;\n tournamentGroup: TournamentGroup;\n\n get basketballGameConfig(): BasketballGameConfig {\n if (this._basketballGameConfig && this._basketballGameConfig.periodsCount) {\n return this._basketballGameConfig;\n }\n if (this.gameConfig) {\n this._basketballGameConfig = BasketballGameConfig.toFront(this.gameConfig);\n }\n return this._basketballGameConfig;\n }\n\n set basketballGameConfig(value) {\n this._basketballGameConfig = value;\n }\n\n get volleyballGameConfig(): VolleyballGameConfig {\n if (this._volleyballGameConfig && this._volleyballGameConfig.setsCount) {\n return this._volleyballGameConfig;\n }\n if (this.gameConfig) {\n this._volleyballGameConfig = VolleyballGameConfig.toFront(this.gameConfig);\n }\n return this._volleyballGameConfig;\n }\n\n set volleyballGameConfig(value) {\n this._volleyballGameConfig = value;\n }\n\n get hockeyGameConfig(): HockeyGameConfig {\n if (this._hockeyGameConfig && this._hockeyGameConfig.periodsCount) {\n return this._hockeyGameConfig;\n }\n if (this.gameConfig) {\n this._hockeyGameConfig = HockeyGameConfig.toFront(this.gameConfig);\n }\n return this._hockeyGameConfig;\n }\n\n set hockeyGameConfig(value) {\n this._hockeyGameConfig = value;\n }\n\n get handballGameConfig(): HandballGameConfig {\n if (this._handballGameConfig && this._handballGameConfig.periodsCount) {\n return this._handballGameConfig;\n }\n if (this.gameConfig) {\n this._handballGameConfig = HandballGameConfig.toFront(this.gameConfig);\n }\n return this._handballGameConfig;\n }\n\n set handballGameConfig(value) {\n this._handballGameConfig = value;\n }\n\n get footballGameConfig(): FootballGameConfig {\n if (this._footballGameConfig && this._footballGameConfig.periodsCount) {\n return this._footballGameConfig;\n }\n if (this.gameConfig) {\n this._footballGameConfig = FootballGameConfig.toFront(this.gameConfig);\n }\n return this._footballGameConfig;\n }\n\n set footballGameConfig(value) {\n this._footballGameConfig = value;\n }\n\n get rugbyGameConfig(): RugbyGameConfig {\n if (this._rugbyGameConfig && this._rugbyGameConfig.periodsCount) {\n return this._rugbyGameConfig;\n }\n if (this.gameConfig) {\n this._rugbyGameConfig = RugbyGameConfig.toFront(this.gameConfig);\n }\n return this._rugbyGameConfig;\n }\n\n set rugbyGameConfig(value) {\n this._rugbyGameConfig = value;\n }\n\n get waterpoloGameConfig(): WaterpoloGameConfig {\n if (this._waterpoloGameConfig && this._waterpoloGameConfig.periodsCount) {\n return this._waterpoloGameConfig;\n }\n if (this.gameConfig) {\n this._waterpoloGameConfig = WaterpoloGameConfig.toFront(this.gameConfig);\n }\n return this._waterpoloGameConfig;\n }\n\n set waterpoloGameConfig(value) {\n this._waterpoloGameConfig = value;\n }\n\n get scoreByPeriodList(): {period: number, teamScore: number, competitorTeamScore: number}[] {\n if (!this.scoreByPeriod) {\n return [];\n }\n return Object.keys(this.scoreByPeriod).map(period => ({\n period: +period,\n teamScore: this.scoreByPeriod[period][0],\n competitorTeamScore: this.scoreByPeriod[period][1]\n }));\n }\n\n get isClosed(): boolean {\n return this.status === GameStatuses.closed;\n }\n\n get isTeamWon() {\n return [GameResultTypes.team_won, GameResultTypes.competitor_team_technical_defeat].includes(this.resultType);\n }\n\n get isCompetitorTeamWon() {\n return [GameResultTypes.competitor_team_won, GameResultTypes.team_technical_defeat].includes(this.resultType);\n }\n\n get teamWinnerId() {\n if (!this.isClosed) {\n return null;\n }\n if (this.isTeamWon) {\n return this.team.id || this.teamId;\n }\n if (this.isCompetitorTeamWon) {\n return this.competitorTeam.id || this.competitorTeamId;\n }\n return null;\n }\n\n get teamLoserId() {\n if (!this.isClosed) {\n return null;\n }\n if (this.isTeamWon) {\n return this.competitorTeam.id || this.competitorTeamId;\n }\n if (this.isCompetitorTeamWon) {\n return this.team.id || this.teamId;\n }\n return null;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","export function updateItemInArray(data: any[], item: any, force = false, checkFunction?: (item: any) => boolean): any[] {\n if (!Array.isArray(data)) {\n return data;\n }\n return data.map(v => {\n if (checkFunction && isFunction(checkFunction)) {\n if (!checkFunction(v)) {\n return v;\n }\n } else if (v.id !== item.id) {\n return v;\n }\n if (v.updatedAt && item.updatedAt && !force) {\n return v.updatedAt > item.updatedAt ? v : item;\n }\n return item;\n });\n}\n\nexport function updateItemsInArray(data: any[], items: any[], force: boolean = false, checkFunction?: (item: any) => boolean): any[] {\n items.forEach(item => {\n data = updateItemInArray(data, item, force, checkFunction);\n });\n return data;\n}\n\nexport function patchItemInArray(data: any[], item: any, checkFunction?: (item: any) => boolean): any[] {\n if (!Array.isArray(data)) {\n return data;\n }\n return data.map(v => {\n if (checkFunction && isFunction(checkFunction)) {\n if (!checkFunction(v)) {\n return v;\n }\n } else if (v.id !== item.id) {\n return v;\n }\n return Object.assign(v, item);\n });\n}\n\nexport function addItemInArray(data: any[], item: any, atEnd: boolean = false, checkFunction?: (item: any) => boolean): any[] {\n if (!Array.isArray(data)) {\n return [item];\n }\n if (data.find(i => isFunction(checkFunction) ? checkFunction(i) : i.id === item.id)) {\n return data;\n }\n\n return atEnd\n ? [...data, item]\n : [item, ...data];\n}\n\nexport function addItemsInArray(data: any[], items: any[], atEnd: boolean = false, checkFunction?: (item: any) => boolean): any[] {\n (!atEnd\n ? Object.assign([], items).reverse()\n : items\n ).forEach(item => {\n data = addItemInArray(data, item, atEnd, checkFunction);\n });\n return data;\n}\n\nexport function deleteItemFromArray(data: any[], item: any): any[] {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isFunction(item)) {\n return data.filter(i => !item(i));\n } else {\n return data.filter(v => v.id !== item.id);\n }\n}\n\nfunction isFunction(functionToCheck) {\n return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { addItemInArray, addItemsInArray, deleteItemFromArray, updateItemInArray, updateItemsInArray } from '../utils/data';\nimport { StorageEngine } from './storage-engine';\n\nexport class Store {\n private data: {[key: string]: BehaviorSubject<any>} = {};\n\n constructor(private engine?: StorageEngine) {\n }\n\n get(key: string, defaultValue?: any): Observable<any> {\n return this.getSubject(key).pipe(\n map(item => item === undefined ? defaultValue : item),\n filter(item => item !== undefined)\n );\n }\n\n value(key: string, defaultValue?: any): any {\n return this.getSubject(key).value === undefined ? defaultValue : this.getSubject(key).value;\n }\n\n save(key: string, value: any): void {\n this.getSubject(key).next(value);\n if (this.engine) {\n this.engine.save(key, value);\n }\n }\n\n appendItem(key: string, value: any, checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemInArray(this.value(key) || [], value, true, checkFunction));\n }\n\n appendItems(key: string, value: any[], checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemsInArray(this.value(key) || [], value, true));\n }\n\n prependItem(key: string, value: any, checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemInArray(this.value(key) || [], value, false, checkFunction));\n }\n\n prependItems(key: string, value: any[], checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemsInArray(this.value(key) || [], value, false, checkFunction));\n }\n\n updateItem(key: string, value: any, force?: boolean, checkFunction?: (item: any) => boolean): void {\n this.save(key, updateItemInArray(this.value(key) || [], value, force, checkFunction));\n }\n\n updateItems(key: string, value: any, force?: boolean, checkFunction?: (item: any) => boolean): void {\n this.save(key, updateItemsInArray(this.value(key) || [], value, force, checkFunction));\n }\n\n deleteItem(key: string, value: any): void {\n this.save(key, deleteItemFromArray(this.value(key) || [], value));\n }\n\n dispose(): void {\n for (const key of Object.keys(this.data)) {\n this.data[key].complete();\n delete this.data[key];\n }\n }\n\n clearStorageData(): void {\n if (this.engine) {\n this.engine.clear();\n }\n }\n\n getEngine(): StorageEngine {\n return this.engine;\n }\n\n private getSubject(key: string): BehaviorSubject<any> {\n if (!this.data[key]) {\n this.data[key] = new BehaviorSubject<any>(this.engine ? this.engine.get(key) : undefined);\n }\n return this.data[key];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '../storage/store';\n\n@Injectable({providedIn: 'root'})\nexport class BaseService {\n protected store = new Store();\n\n dispose(): void {\n this.store.dispose();\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { BaseService } from './base.service';\n\nconst CONFIG_STORE_KEY = 'config';\n\nexport const CONFIG_DATA = 'mtg-core-config-data';\n\n@Injectable({providedIn: 'root'})\nexport class ConfigService extends BaseService {\n constructor(\n @Optional() @Inject(CONFIG_DATA) private configData: any\n ) {\n super();\n if (configData) {\n this.initialize(configData);\n }\n }\n\n get config$() {\n return this.store.get(CONFIG_STORE_KEY);\n }\n\n get config() {\n return this.store.value(CONFIG_STORE_KEY) || {};\n }\n\n initialize(data: any): void {\n this.store.save(CONFIG_STORE_KEY, data);\n }\n\n set(key: string, value: any): void {\n this.store.save(CONFIG_STORE_KEY, {\n ...this.config,\n [key]: value\n });\n }\n\n get(key: string): any {\n return this.store.value(CONFIG_STORE_KEY) && this.store.value(CONFIG_STORE_KEY)[key];\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n cover: 'cover',\n },\n relation: {\n cover: File\n }\n})\nexport class TournamentDivision extends BaseModel {\n id: number;\n name: string;\n cover: File;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel } from './util';\nimport { File } from './file';\n\nexport class LeagueFieldBaseValue extends BaseModel {\n id: number;\n value: string;\n file: File;\n}\n","import { BaseModel } from './util';\n\nexport enum LeagueFieldTypes {\n text = 1,\n select,\n file,\n}\n\nexport class LeagueFieldBase extends BaseModel {\n private _variantsMapping = {};\n private _variants = [];\n\n id: number;\n leagueId: number;\n name: string;\n type: LeagueFieldTypes;\n isMultiple: boolean;\n\n set variants(value: { uuid: string, name: string }[]) {\n this._variants = value;\n this._variantsMapping = value.reduce((acc, item) => ({\n ...acc,\n [item.uuid]: item.name\n }), {});\n }\n\n get variants(): {uuid: string, name: string}[] {\n return this._variants;\n }\n\n getName(uuid: string): string {\n return this._variantsMapping[uuid];\n }\n}\n","import { LeagueFieldBase, LeagueFieldTypes } from './league-field-base';\nimport { enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n league_id: 'leagueId',\n name: 'name',\n type: 'type',\n is_multiple: 'isMultiple',\n variants: 'variants',\n },\n relation: {\n type: enumField(LeagueFieldTypes)\n }\n})\nexport class LeagueTeamField extends LeagueFieldBase {\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { LeagueFieldBaseValue } from './league-field-base-value';\nimport { ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { File } from './file';\nimport { LeagueTeamField } from './league-team-field';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n league_team_field_id: 'leagueTeamFieldId',\n league_team_field: 'leagueTeamField',\n value: 'value',\n file: 'file',\n },\n relation: {\n file: File,\n leagueTeamField: LeagueTeamField,\n }\n})\nexport class TournamentTeamFieldValue extends LeagueFieldBaseValue {\n leagueTeamFieldId: number;\n leagueTeamField: LeagueTeamField;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { Team } from './team';\nimport { TournamentGroup } from './tournament-group';\nimport { Game } from './game';\nimport { Tournament } from './tournament';\nimport { File } from './file';\nimport { TournamentDivision } from './tournament-division';\nimport { TournamentTeamFieldValue } from './tournament-team-field-value';\n\n@ModelInstance({\n mappingFields: {\n nickname: 'nickname',\n color: 'color',\n }\n})\nexport class TeamAdditionalData {\n nickname: string;\n color: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n logo: 'logo',\n team_photo: 'teamPhoto',\n team_uniform: 'teamUniform',\n team_id: 'teamId',\n tournament_id: 'tournamentId',\n tournament: 'tournament',\n team: 'team',\n group: 'group',\n division: 'division',\n final_standing: 'finalStanding',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n draw_games_count: 'drawGamesCount',\n lose_games_count: 'loseGamesCount',\n last_games_count: 'lastGamesCount',\n last_games_won: 'lastGamesWon',\n score_sum: 'scoreSum',\n missed_sum: 'missedSum',\n score_points_sum: 'scorePointsSum',\n missed_points_sum: 'missedPointsSum',\n points: 'points',\n mt_points: 'mtPoints',\n users_count: 'usersCount',\n games: 'games',\n notifications_count: 'notificationsCount',\n win_normal_time_games_count: 'winNormalTimeGamesCount',\n lose_normal_time_games_count: 'loseNormalTimeGamesCount',\n win_overtime_games_count: 'winOvertimeGamesCount',\n lose_overtime_games_count: 'loseOvertimeGamesCount',\n last_five_games: 'lastFiveGames',\n tries_scored: 'triesScored',\n tries_missed: 'triesMissed',\n attack_bonuses: 'attackBonuses',\n defense_bonuses: 'defenseBonuses',\n team_additional_data: 'teamAdditionalData',\n field_values: 'fieldValues',\n },\n relation: {\n logo: File,\n teamPhoto: File,\n teamUniform: File,\n tournament: Tournament,\n team: Team,\n group: TournamentGroup,\n games: Game,\n lastFiveGames: Game,\n division: TournamentDivision,\n teamAdditionalData: TeamAdditionalData,\n fieldValues: listField(TournamentTeamFieldValue),\n }\n})\nexport class TournamentTeam extends BaseModel {\n id: number;\n name: string;\n logo: File;\n teamPhoto: File;\n teamUniform: File;\n teamId: number;\n tournamentId: number;\n tournament: Tournament;\n team: Team;\n group: TournamentGroup;\n division: TournamentDivision;\n teamAdditionalData: TeamAdditionalData;\n finalStanding: number;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n lastGamesCount: number;\n lastGamesWon: number;\n scoreSum: number;\n missedSum: number;\n scorePointsSum: number;\n missedPointsSum: number;\n points: number;\n mtPoints: number;\n usersCount: number;\n games: Game[];\n notificationsCount: number;\n winNormalTimeGamesCount: number;\n loseNormalTimeGamesCount: number;\n winOvertimeGamesCount: number;\n loseOvertimeGamesCount: number;\n lastFiveGames: Game[];\n triesScored: number;\n triesMissed: number;\n attackBonuses: number;\n defenseBonuses: number;\n fieldValues: TournamentTeamFieldValue[];\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { User } from './user';\nimport { Team } from './team';\n\nexport enum TeamUserRole {\n member = 1,\n moderator,\n admin,\n coach,\n head_coach,\n playing_coach,\n manager,\n head_manager,\n captain,\n assistant,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n user: 'user',\n role: 'role',\n number: 'number',\n team: 'team',\n },\n relation: {\n user: User,\n team: Team,\n role: enumField(TeamUserRole)\n }\n})\nexport class TeamUser extends BaseModel {\n id: number;\n teamId: number;\n user: User;\n team: Team;\n number: number;\n role: TeamUserRole;\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(teamPlayer: TeamUser): any {\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team_user_id: 'tournamentTeamUserId',\n date_from: 'dateFrom',\n date_to: 'dateTo',\n matches_count: 'matchesCount',\n reason: 'reason',\n },\n relation: {\n dateFrom: DateField,\n dateTo: DateField,\n }\n})\nexport class TournamentDisqualification extends BaseModel {\n id: number;\n tournamentTeamUserId: number;\n dateFrom: Date;\n dateTo: Date;\n matchesCount: number;\n reason: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { LeagueFieldBase, LeagueFieldTypes } from './league-field-base';\nimport { enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n league_id: 'leagueId',\n name: 'name',\n type: 'type',\n is_multiple: 'isMultiple',\n variants: 'variants',\n },\n relation: {\n type: enumField(LeagueFieldTypes)\n }\n})\nexport class LeaguePlayerField extends LeagueFieldBase {\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { LeagueFieldBaseValue } from './league-field-base-value';\nimport { ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { File } from './file';\nimport { LeaguePlayerField } from './league-player-field';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n league_player_field_id: 'leaguePlayerFieldId',\n league_player_field: 'leaguePlayerField',\n value: 'value',\n file: 'file',\n },\n relation: {\n file: File,\n leaguePlayerField: LeaguePlayerField\n }\n})\nexport class LeaguePlayerFieldValue extends LeagueFieldBaseValue {\n leaguePlayerFieldId: number;\n leaguePlayerField: LeaguePlayerField;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField, enumField, listField } from './util';\nimport { File } from './file';\nimport { User, UserGender } from './user';\nimport { LeaguePlayerFieldValue } from './league-player-field-value';\n\nexport enum Qualification {\n practician = 1,\n amateur,\n practician2,\n practician3,\n amateur2,\n theorist,\n theorist2,\n theorist3,\n sportsman,\n lider,\n master,\n profi,\n goalkeeper,\n goalkeeper2,\n goalkeeper_sh,\n goalkeeper_ul,\n goalkeeper_mhl,\n goalkeeper_vhl,\n goalkeeper_khl,\n beginner,\n junior,\n debutant,\n schoolchild,\n preschool_child\n}\n\nexport const QualificationLocalization = {\n [Qualification.practician]: 'Практик',\n [Qualification.practician2]: 'Практик 2',\n [Qualification.practician3]: 'Практик 3',\n [Qualification.amateur]: 'Любитель',\n [Qualification.amateur2]: 'Любитель 2',\n [Qualification.theorist]: 'Теоретик',\n [Qualification.theorist2]: 'Теоретик 2',\n [Qualification.theorist3]: 'Теоретик 3',\n [Qualification.sportsman]: 'Спортсмен',\n [Qualification.lider]: 'Лидер',\n [Qualification.master]: 'Мастер',\n [Qualification.profi]: 'Профи',\n [Qualification.goalkeeper]: 'Вратарь',\n [Qualification.goalkeeper2]: 'Вратарь 2',\n [Qualification.goalkeeper_sh]: 'Вратарь СШ',\n [Qualification.goalkeeper_ul]: 'Вратарь ЮЛ',\n [Qualification.goalkeeper_mhl]: 'Вратарь МХЛ',\n [Qualification.goalkeeper_vhl]: 'Вратарь ВХЛ',\n [Qualification.goalkeeper_khl]: 'Вратарь КХЛ',\n [Qualification.beginner]: 'Новичок',\n [Qualification.junior]: 'Юниор',\n [Qualification.debutant]: 'Дебютант',\n [Qualification.schoolchild]: 'Школьник',\n [Qualification.preschool_child]: 'Дошкольник',\n};\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n league_id: 'leagueId',\n first_name: 'firstName',\n last_name: 'lastName',\n middle_name: 'middleName',\n birth_date: 'birthDate',\n photo: 'photo',\n user: 'user',\n gender: 'gender',\n has_changes: 'hasChanges',\n rating: 'rating',\n qualification: 'qualification',\n field_values: 'fieldValues',\n },\n relation: {\n birthDate: DateField,\n photo: File,\n user: User,\n qualification: enumField(Qualification),\n fieldValues: listField(LeaguePlayerFieldValue),\n gender: enumField(UserGender),\n }\n})\nexport class LeaguePlayer extends BaseModel {\n id: number;\n userId: number;\n leagueId: number;\n firstName: string;\n lastName: string;\n middleName: string;\n birthDate: Date;\n photo: File;\n user: User;\n gender: UserGender;\n hasChanges: boolean;\n rating: number;\n qualification: Qualification;\n fieldValues: LeaguePlayerFieldValue[];\n\n get fullName(): string {\n return [this.lastName, this.firstName, this.middleName].filter(s => s).join(' ');\n }\n\n get shortName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get initials(): string {\n return [this.lastName, this.firstName].filter(s => s).map(s => s.substr(0, 1)).join('');\n }\n\n get age(): number {\n if (!this.birthDate) {\n return null;\n }\n const diff = (new Date()).getTime() - this.birthDate.getTime();\n return Math.floor(diff / (365 * 86400 * 1000));\n }\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { TournamentTeam } from './tournament-team';\nimport { TeamUser } from './team-user';\nimport { TournamentDisqualification } from './tournament-disqualification';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n active: 'active',\n tournament_team: 'tournamentTeam',\n team_user: 'teamUser',\n disqualified: 'disqualified',\n disqualification: 'disqualification',\n league_player: 'leaguePlayer',\n games_count: 'gamesCount',\n mvp_count: 'mvpCount',\n },\n relation: {\n tournamentTeam: TournamentTeam,\n teamUser: TeamUser,\n disqualification: TournamentDisqualification,\n leaguePlayer: LeaguePlayer,\n }\n})\nexport class TournamentTeamUser extends BaseModel {\n id: number;\n active: boolean;\n tournamentTeam: TournamentTeam;\n teamUser: TeamUser;\n disqualified: boolean;\n disqualification: TournamentDisqualification;\n leaguePlayer: LeaguePlayer;\n gamesCount: number;\n mvpCount: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n two_points_made: 'twoPointsMade',\n three_points_made: 'threePointsMade',\n free_throws_made: 'freeThrowsMade',\n one_points_made: 'onePointsMade',\n two_point_attempts: 'twoPointAttempts',\n three_point_attempts: 'threePointAttempts',\n free_throw_attempts: 'freeThrowAttempts',\n one_point_attempts: 'onePointAttempts',\n two_point_percent: 'twoPointPercent',\n three_point_percent: 'threePointPercent',\n free_throw_percent: 'freeThrowPercent',\n one_point_percent: 'onePointPercent',\n assists: 'assists',\n blocks: 'blocks',\n rebounds: 'rebounds',\n offensive_rebounds: 'offensiveRebounds',\n defensive_rebounds: 'defensiveRebounds',\n steals: 'steals',\n turnovers: 'turnovers',\n personal_fouls: 'personalFouls',\n technical_fouls: 'technicalFouls',\n unsportsmanlike_fouls: 'unsportsmanlikeFouls',\n disqualification_fouls: 'disqualificationFouls',\n drawn_fouls: 'drawnFouls',\n player_efficiency: 'playerEfficiency',\n shots_blocked: 'shotsBlocked',\n game_time: 'gameTime',\n newbie: 'newbie',\n rank: 'rank',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class BasketballStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n twoPointsMade: number;\n threePointsMade: number;\n freeThrowsMade: number;\n onePointsMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n onePointAttempts: number;\n twoPointPercent: number;\n threePointPercent: number;\n freeThrowPercent: number;\n onePointPercent: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n technicalFouls: number;\n unsportsmanlikeFouls: number;\n disqualificationFouls: number;\n drawnFouls: number;\n playerEfficiency: number;\n shotsBlocked: number;\n gameTime: number;\n newbie: boolean;\n rank: number;\n\n get totalFouls() {\n return this.personalFouls + this.technicalFouls + this.unsportsmanlikeFouls + this.disqualificationFouls;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get onePointsPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n get twoPointsPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n get threePointsPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n get freeThrowsPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n get totalRebounds(): number {\n return Math.floor(10 * ((this.offensiveRebounds || 0) + (this.defensiveRebounds || 0))) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { BasketballStatistic } from './basketball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: BasketballStatistic,\n competitorTeam: BasketballStatistic\n }\n})\nexport class BasketballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: BasketballStatistic;\n competitorTeam: BasketballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n points: 'points',\n free_throws_made: 'freeThrowsMade',\n two_points_made: 'twoPointsMade',\n three_points_made: 'threePointsMade',\n one_points_made: 'onePointsMade',\n two_point_attempts: 'twoPointAttempts',\n three_point_attempts: 'threePointAttempts',\n free_throw_attempts: 'freeThrowAttempts',\n one_point_attempts: 'onePointAttempts',\n assists: 'assists',\n blocks: 'blocks',\n rebounds: 'rebounds',\n offensive_rebounds: 'offensiveRebounds',\n defensive_rebounds: 'defensiveRebounds',\n steals: 'steals',\n turnovers: 'turnovers',\n personal_fouls: 'personalFouls',\n technical_fouls: 'technicalFouls',\n unsportsmanlike_fouls: 'unsportsmanlikeFouls',\n disqualification_fouls: 'disqualificationFouls',\n drawn_fouls: 'drawnFouls',\n player_efficiency: 'playerEfficiency',\n shots_blocked: 'shotsBlocked',\n updated_at: 'updatedAt',\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class BasketballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n freeThrowsMade: number;\n twoPointsMade: number;\n threePointsMade: number;\n onePointsMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n onePointAttempts: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n technicalFouls: number;\n unsportsmanlikeFouls: number;\n disqualificationFouls: number;\n drawnFouls: number;\n playerEfficiency: number;\n shotsBlocked: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get totalFouls(): number {\n return (this.personalFouls || 0) + (this.technicalFouls || 0) + (this.unsportsmanlikeFouls || 0) + (this.disqualificationFouls || 0);\n }\n\n get onePointsPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n get twoPointsPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n get threePointsPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n get freeThrowsPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n get totalRebounds(): number {\n return Math.floor(10 * ((this.offensiveRebounds || 0) + (this.defensiveRebounds || 0))) / 10;\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum BasketballGameLogTypes {\n enter_game = 1,\n exit_game,\n remove_game,\n two_point_made,\n three_point_made,\n free_throw_made,\n two_point_attempt,\n three_point_attempt,\n free_throw_attempt,\n assist,\n block,\n rebound,\n offensive_rebound,\n defensive_rebound,\n steal,\n turnover,\n personal_foul,\n technical_foul,\n unsportsmanlike_foul,\n disqualification_foul,\n one_point_attempt,\n one_point_made,\n timeout,\n team_rebound,\n}\n\nexport enum BasketballSubLogTypes {\n // Miss, Made\n jump_shot = 1,\n step_back_jump_shot,\n floating_jump_shot,\n fade_away_jump_shot,\n pull_up_jump_shot,\n turnaround_jump_shot,\n dunk,\n layup,\n driving_layup,\n alley_oop,\n hook_shot,\n\n // foul\n offensive_foul,\n shot_foul,\n mutual_foul,\n\n // Turnover\n bad_pass,\n ball_handling,\n travel,\n double_dribble,\n out_of_bounds,\n three_seconds,\n five_seconds,\n eight_seconds,\n twenty_four_seconds,\n back_court,\n offensive_goal_tending,\n other_turnover,\n}\n\nexport enum BasketballCourtZones {\n paint = 1,\n left_short_corner,\n right_short_corner,\n left_middle_post,\n right_middle_post,\n high_post,\n left_corner,\n right_corner,\n left_wing,\n right_wing,\n top,\n}\n\nexport enum BasketballCourtSides {\n front = 1,\n back,\n}\n\nexport enum BasketballPenaltyTypes {\n one_shot = 1,\n two_shots,\n three_shots,\n possession,\n one_shot_and_possession,\n two_shots_and_possession,\n three_shots_and_possession,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n sub_log_type: 'subLogType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n zone: 'zone',\n court_side: 'courtSide',\n foul_on_game_user_id: 'foulOnGameUserId',\n penalty_type: 'penaltyType',\n fast_break: 'fastBreak',\n is_coach: 'isCoach',\n is_bench: 'isBench',\n group: 'group',\n marked: 'marked',\n coords: 'coords',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(BasketballGameLogTypes),\n subLogType: enumField(BasketballSubLogTypes),\n penaltyType: enumField(BasketballPenaltyTypes),\n zone: enumField(BasketballCourtZones),\n courtSide: enumField(BasketballCourtSides),\n }\n})\nexport class BasketballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: BasketballGameLogTypes;\n subLogType: BasketballSubLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n combined: BasketballGameLog;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n zone: BasketballCourtZones;\n courtSide: BasketballCourtSides;\n penaltyType: BasketballPenaltyTypes;\n foulOnGameUserId: number;\n foulOnGameUser: GameUser;\n fastBreak: boolean;\n isCoach: boolean;\n isBench: boolean;\n group: string;\n marked: boolean;\n coords: [number, number];\n\n isPointsType() {\n return [\n BasketballGameLogTypes.two_point_made,\n BasketballGameLogTypes.three_point_made,\n BasketballGameLogTypes.free_throw_made,\n BasketballGameLogTypes.one_point_made,\n ].indexOf(this.logType) > -1;\n }\n\n isReboundType() {\n return [\n BasketballGameLogTypes.rebound,\n BasketballGameLogTypes.offensive_rebound,\n BasketballGameLogTypes.defensive_rebound,\n BasketballGameLogTypes.team_rebound,\n ].indexOf(this.logType) > -1;\n }\n\n isFoulType() {\n return [\n BasketballGameLogTypes.personal_foul,\n BasketballGameLogTypes.technical_foul,\n BasketballGameLogTypes.unsportsmanlike_foul,\n BasketballGameLogTypes.disqualification_foul,\n ].indexOf(this.logType) > -1;\n }\n\n getScore() {\n const scoreMapping = {\n [BasketballGameLogTypes.one_point_made]: 1,\n [BasketballGameLogTypes.free_throw_made]: 1,\n [BasketballGameLogTypes.two_point_made]: 2,\n [BasketballGameLogTypes.three_point_made]: 3\n };\n return scoreMapping[this.logType];\n }\n\n compare(model: BasketballGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n if (this.datetime.getTime() === model.datetime.getTime()) {\n return this.id > model.id ? 1 : -1;\n }\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { TeamUser } from './team-user';\nimport { TournamentTeamUser } from './tournament-team-user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n game_id: 'gameId',\n team_user: 'teamUser',\n tournament_team_user: 'tournamentTeamUser',\n is_mvp: 'isMvp',\n number: 'number',\n updated_at: 'updatedAt'\n },\n relation: {\n teamUser: TeamUser,\n tournamentTeamUser: TournamentTeamUser,\n updatedAt: DateTimeField,\n }\n})\nexport class GameUser extends BaseModel {\n id: number;\n gameId: number;\n teamUser: TeamUser;\n tournamentTeamUser: TournamentTeamUser;\n isMvp: boolean;\n number: number;\n updatedAt: Date;\n\n get gameUserNumber(): number {\n return this.number ? this.number : this.teamUser.number;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField, listField } from './util';\n\ninterface LimitationValue {\n current: number;\n required: number;\n}\n\n@ModelInstance({\n mappingFields: {\n min_user_games_count: 'minUserGamesCount',\n min_user_time: 'minUserTime',\n min_goalkeeper_user_games_count: 'minGoalkeeperUserGamesCount',\n min_goalkeeper_user_time: 'minGoalkeeperUserTime',\n manual: 'manual',\n },\n})\nexport class GameUserLimitationTypes extends BaseModel {\n minUserGamesCount: LimitationValue;\n minUserTime: LimitationValue;\n minGoalkeeperUserGamesCount: LimitationValue;\n minGoalkeeperUserTime: LimitationValue;\n manual: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n\n\n@ModelInstance({\n mappingFields: {\n tournament_team_user_id: 'tournamentTeamUserId',\n limitations: 'limitations'\n },\n relation: {\n limitations: GameUserLimitationTypes\n }\n})\nexport class GameUserLimitations extends BaseModel {\n tournamentTeamUserId: number;\n limitations: GameUserLimitationTypes;\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { TournamentDisqualification } from './tournament-disqualification';\n\n@ModelInstance({\n mappingFields: {\n tournament_team_user_id: 'tournamentTeamUserId',\n disqualification: 'disqualification'\n },\n relation: {\n disqualification: TournamentDisqualification\n }\n})\nexport class GameUserDisqualification extends BaseModel {\n tournamentTeamUserId: number;\n disqualification: TournamentDisqualification;\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { GameUser } from '../models/game-user';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\nimport { GameUserLimitations } from '../models/game-user-limitation';\nimport { GameUserDisqualification } from '../models/game-user-disqualification';\n\n@Injectable({providedIn: 'root'})\nexport class GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService,\n ) {\n }\n\n async getUsers(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users/`).pipe(\n map(result => GameUser.toFront(result))\n ).toPromise();\n }\n\n async getMvp(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/mvp/`).pipe(\n map(result => GameUser.toFront(result))\n ).toPromise();\n }\n\n async getUsersLimitation(gameId: number): Promise<GameUserLimitations[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users_limitation/`).pipe(\n map(result => GameUserLimitations.toFront(result))\n ).toPromise();\n }\n\n async getUsersDisqualification(gameId: number): Promise<GameUserDisqualification[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users_disqualification/`).pipe(\n map(result => GameUserDisqualification.toFront(result))\n ).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user' | 'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/game_application/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { BasketballGameTeamStatistic } from '../models/basketball-game-team-statistic';\nimport { BasketballGameStatistic } from '../models/basketball-game-statistic';\nimport { BasketballGameLog } from '../models/basketball-game-log';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class BasketballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<BasketballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/team_statistic/`).pipe(\n map(result => BasketballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<BasketballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/user_statistic/`).pipe(\n map(result => BasketballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<BasketballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/logs/`).pipe(\n map(result => BasketballGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, fileType: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/game_protocol/?file_type=${fileType}`,\n {responseType: 'blob'}\n )\n .toPromise();\n }\n\n async downloadFibaProtocol(gameId: number, fileType: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/game_protocol_fiba/?file_type=${fileType}`,\n {responseType: 'blob'}\n )\n .toPromise();\n }\n}\n","import { ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n theme: 'theme',\n message: 'message',\n files: 'files',\n email: 'email',\n captcha: 'captcha',\n },\n relation: {\n files: File\n }\n})\nexport class Feedback {\n id: number;\n theme: string;\n message: string;\n email: string;\n captcha: string;\n files: File[];\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(value: any): any {\n return null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Feedback } from '../models/feedback';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class FeedbackApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async sendFeedback(data: any): Promise<Feedback> {\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/feedback/`, Feedback.toBack(data))\n .pipe(map(response => Feedback.toFront(response)))\n .toPromise();\n }\n\n async sendLeagueFeedback(leagueId: number, data: any): Promise<Feedback> {\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/feedback/`, Feedback.toBack(data))\n .pipe(map(response => Feedback.toFront(response)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { map } from 'rxjs/operators';\nimport { File } from '../models/file';\n\n@Injectable({providedIn: 'root'})\nexport class FileApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async upload(fileData: any, filename?: string, width?: number, height?: number): Promise<File> {\n let params = new HttpParams();\n if (width && height) {\n params = params.set('width', width.toString()).set('height', height.toString());\n }\n\n const formData = new FormData();\n formData.append('file', fileData, filename);\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/file/`, formData, {params})\n .pipe(map(data => File.toFront(data)))\n .toPromise();\n }\n\n async createZipArchive(files: {file: any, filename: string}[]): Promise<any> {\n const formData = new FormData();\n for (const file of files) {\n formData.append('files', file.file, file.filename);\n }\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/file/zip_archive/`, formData, {responseType: 'blob'})\n .toPromise();\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField, penaltyTypeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum HockeyGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n shootout_attempt,\n shootout_goal,\n assist,\n block_shot ,\n minor_penalty ,\n major_penalty ,\n misconduct_penalty ,\n game_misconduct_penalty ,\n match_penalty ,\n penalty_shot ,\n face_off_lose ,\n face_off_win ,\n save ,\n timeout,\n penalty_start,\n penalty_end,\n after_game_shootout_attempt,\n after_game_shootout_goal,\n after_game_shootout_save,\n shootout_save,\n steal,\n loss,\n sharp_pass,\n}\n\nexport enum HockeyAdvantageTypes {\n power_play = 1,\n shorthanded,\n even_strength\n}\n\nexport interface PenaltyType {\n id: number;\n code: string;\n title: string;\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n advantage: 'advantage',\n advantage_num: 'advantageNum',\n is_goalie: 'isGoalie',\n penalty_type: 'penaltyType',\n penalized_game_user_id: 'penalizedGameUserId',\n mutual_penalty: 'mutualPenalty',\n foul_on_game_user_id: 'foulOnGameUserId',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(HockeyGameLogTypes),\n advantage: enumField(HockeyAdvantageTypes),\n penaltyType: penaltyTypeField()\n }\n})\nexport class HockeyGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: HockeyGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n advantage: HockeyAdvantageTypes;\n advantageNum: number;\n isGoalie: boolean;\n penaltyType: PenaltyType;\n _penalizedGameUserId: number;\n mutualPenalty: boolean;\n foulOnGameUserId: number;\n\n get penalizedGameUserId(): number {\n if (this._penalizedGameUserId) {\n return this._penalizedGameUserId;\n }\n return this.gameUserId;\n }\n\n set penalizedGameUserId(value: number) {\n this._penalizedGameUserId = value;\n }\n\n compare(model: HockeyGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [HockeyGameLogTypes.goal, HockeyGameLogTypes.shootout_goal, HockeyGameLogTypes.after_game_shootout_goal].indexOf(this.logType) > -1;\n }\n\n isPenaltyType(): boolean {\n return [\n HockeyGameLogTypes.minor_penalty, HockeyGameLogTypes.major_penalty,\n HockeyGameLogTypes.misconduct_penalty, HockeyGameLogTypes.game_misconduct_penalty,\n HockeyGameLogTypes.penalty_shot, HockeyGameLogTypes.match_penalty\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: HockeyGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n updated_at: 'updatedAt',\n points: 'points',\n pp_shot_misses: 'ppShotMisses',\n pp_shots_on_goal: 'ppShotsOnGoal',\n pp_shots_blocked: 'ppShotsBlocked',\n ev_shot_misses: 'evShotMisses',\n ev_shots_on_goal: 'evShotsOnGoal',\n ev_shots_blocked: 'evShotsBlocked',\n sh_shot_misses: 'shShotMisses',\n sh_shots_on_goal: 'shShotsOnGoal',\n sh_shots_blocked: 'shShotsBlocked',\n pp_goals: 'ppGoals',\n ev_goals: 'evGoals',\n sh_goals: 'shGoals',\n pp_assists: 'ppAssists',\n ev_assists: 'evAssists',\n sh_assists: 'shAssists',\n shootout_attempts: 'shootoutAttempts',\n shootout_goals: 'shootoutGoals',\n after_game_shootout_attempts: 'afterGameShootoutAttempts',\n after_game_shootout_goals: 'afterGameShootoutGoals',\n block_shots: 'blockShots',\n face_off_losses: 'faceOffLosses',\n face_off_wins: 'faceOffWins',\n saves: 'saves',\n shootout_save: 'shootoutSaves',\n after_game_shootout_saves: 'afterGameShootoutSaves',\n goals_against: 'goalsAgainst',\n shootout_goals_against: 'shootoutGoalsAgainst',\n after_game_shootout_goals_against: 'afterGameShootoutGoalsAgainst',\n safety_rate: 'safetyRate',\n penalty_minutes: 'penaltyMinutes',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n steals: 'steals',\n pp_steals: 'ppSteals',\n ev_steals: 'evSteals',\n sh_steals: 'shSteals',\n losses: 'losses',\n pp_losses: 'ppLosses',\n ev_losses: 'evLosses',\n sh_losses: 'shLosses',\n sharp_passes: 'sharpPasses',\n pp_sharp_passes: 'ppSharpPasses',\n ev_sharp_passes: 'evSharpPasses',\n sh_sharp_passes: 'shSharpPasses',\n drawn_fouls: 'drawnFouls',\n efficiency: 'efficiency',\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class HockeyGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n saves: number;\n shootoutSaves: number;\n afterGameShootoutSaves: number;\n goalsAgainst: number;\n shootoutGoalsAgainst: number;\n afterGameShootoutGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n steals: number;\n ppSteals: number;\n evSteals: number;\n shSteals: number;\n losses: number;\n ppLosses: number;\n evLosses: number;\n shLosses: number;\n sharpPasses: number;\n ppSharpPasses: number;\n evSharpPasses: number;\n shSharpPasses: number;\n drawnFouls: number;\n efficiency: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shotsOnGoal(): number {\n return (this.evShotsOnGoal || 0) + (this.ppShotsOnGoal || 0) + (this.shShotsOnGoal || 0);\n }\n\n get shotsBlocked(): number {\n return (this.evShotsBlocked || 0) + (this.ppShotsBlocked || 0) + (this.shShotsBlocked || 0);\n }\n\n get shotMisses(): number {\n return (this.evShotMisses || 0) + (this.ppShotMisses || 0) + (this.shShotMisses || 0);\n }\n\n get ppShots(): number {\n return (this.ppShotMisses || 0) + (this.ppShotsOnGoal || 0) + (this.ppShotsBlocked || 0);\n }\n\n get evShots(): number {\n return (this.evShotMisses || 0) + (this.evShotsOnGoal || 0) + (this.evShotsBlocked || 0);\n }\n\n get shShots(): number {\n return (this.shShotMisses || 0) + (this.shShotsOnGoal || 0) + (this.shShotsBlocked || 0);\n }\n\n get shots(): number {\n return this.ppShots + this.evShots + this.shShots + (this.shootoutAttempts || 0);\n }\n\n get totalShots(): number {\n return this.shots + (this.shootoutAttempts || 0);\n }\n\n get goals(): number {\n return (this.ppGoals || 0) + (this.shGoals || 0) + (this.evGoals || 0);\n }\n\n get totalGoals(): number {\n return this.goals + (this.shootoutGoals || 0);\n }\n\n get assists(): number {\n return (this.ppAssists || 0) + (this.evAssists || 0) + (this.shAssists || 0);\n }\n\n get faceOffs(): number {\n return (this.faceOffWins || 0) + (this.faceOffLosses || 0);\n }\n\n get shootOuts(): number {\n return (this.shootoutAttempts || 0) + (this.shootoutGoals || 0);\n }\n\n get shotsAgainst(): number {\n return (this.saves || 0) + (this.goalsAgainst || 0);\n }\n\n get shootoutShotsAgainst(): number {\n return (this.shootoutSaves || 0) + (this.shootoutGoalsAgainst || 0);\n }\n\n get totalShotsAgainst(): number {\n return this.shotsAgainst + this.shootoutShotsAgainst;\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get totalSaves(): number {\n return (this.saves || 0) + (this.shootoutSaves || 0);\n }\n\n get totalSavesPercent(): number {\n if (!this.totalShotsAgainst || !this.totalSaves) {\n return 0;\n }\n return Math.round(1000 * this.totalSaves / this.totalShotsAgainst) / 10;\n }\n\n get totalGoalsAgainst(): number {\n return (this.goalsAgainst || 0) + (this.shootoutGoalsAgainst || 0);\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get goalsPercent(): number {\n if (!this.totalGoals || !this.totalShots) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.totalShots) / 10;\n }\n\n get faceOffPercent(): number {\n if (!this.faceOffWins || !this.faceOffs) {\n return 0;\n }\n return Math.round(1000 * this.faceOffWins / this.faceOffs) / 10;\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n lose_games_count: 'loseGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n pp_shots: 'ppShots',\n pp_shot_misses: 'ppShotMisses',\n pp_shots_on_goal: 'ppShotsOnGoal',\n pp_shots_blocked: 'ppShotsBlocked',\n ev_shots: 'evShots',\n ev_shot_misses: 'evShotMisses',\n ev_shots_on_goal: 'evShotsOnGoal',\n ev_shots_blocked: 'evShotsBlocked',\n sh_shots: 'shShots',\n sh_shot_misses: 'shShotMisses',\n sh_shots_on_goal: 'shShotsOnGoal',\n sh_shots_blocked: 'shShotsBlocked',\n pp_goals_percent: 'ppGoalsPercent',\n pp_goals: 'ppGoals',\n ev_goals_percent: 'evGoalsPercent',\n ev_goals: 'evGoals',\n sh_goals_percent: 'shGoalsPercent',\n goals: 'goals',\n total_goals: 'totalGoals',\n sh_goals: 'shGoals',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n shots: 'shots',\n total_shots: 'totalShots',\n goals_percent: 'goalsPercent',\n total_goals_percent: 'totalGoalsPercent',\n pp_assists: 'ppAssists',\n ev_assists: 'evAssists',\n sh_assists: 'shAssists',\n shootout_attempts: 'shootoutAttempts',\n shootout_goals: 'shootoutGoals',\n after_game_shootout_attempts: 'afterGameShootoutAttempts',\n after_game_shootout_goals: 'afterGameShootoutGoals',\n block_shots: 'blockShots',\n face_off_losses: 'faceOffLosses',\n face_off_wins: 'faceOffWins',\n face_offs: 'faceOffs',\n face_off_percent: 'faceOffPercent',\n saves: 'saves',\n total_saves: 'totalSaves',\n shootout_saves: 'shootoutSaves',\n shots_against: 'shotsAgainst',\n shootout_shots_against: 'shootoutShotsAgainst',\n total_shots_against: 'totalShotsAgainst',\n saves_percent: 'savesPercent',\n total_saves_percent: 'totalSavesPercent',\n goals_against: 'goalsAgainst',\n shootout_goals_against: 'shootoutGoalsAgainst',\n total_goals_against: 'totalGoalsAgainst',\n safety_rate: 'safetyRate',\n penalty_minutes: 'penaltyMinutes',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n steals: 'steals',\n pp_steals: 'ppSteals',\n ev_steals: 'evSteals',\n sh_steals: 'shSteals',\n losses: 'losses',\n pp_losses: 'ppLosses',\n ev_losses: 'evLosses',\n sh_losses: 'shLosses',\n sharp_passes: 'sharpPasses',\n pp_sharp_passes: 'ppSharpPasses',\n ev_sharp_passes: 'evSharpPasses',\n sh_sharp_passes: 'shSharpPasses',\n drawn_fouls: 'drawnFouls',\n efficiency: 'efficiency',\n newbie: 'newbie',\n rank: 'rank',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class HockeyStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n ppShots: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShots: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShots: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppGoalsPercent: number;\n ppGoals: number;\n evGoalsPercent: number;\n evGoals: number;\n shGoalsPercent: number;\n shGoals: number;\n goals: number;\n totalGoals: number;\n totalGoalsPercent;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shots: number;\n totalShots: number;\n goalsPercent: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n faceOffs: number;\n faceOffPercent: number;\n savesPercent: number;\n totalSavesPercent: number;\n saves: number;\n shootoutSaves: number;\n totalSaves: number;\n shotsAgainst: number;\n shootoutShotsAgainst: number;\n totalShotsAgainst: number;\n goalsAgainst: number;\n shootoutGoalsAgainst: number;\n totalGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n steals: number;\n ppSteals: number;\n evSteals: number;\n shSteals: number;\n losses: number;\n ppLosses: number;\n evLosses: number;\n shLosses: number;\n sharpPasses: number;\n ppSharpPasses: number;\n evSharpPasses: number;\n shSharpPasses: number;\n drawnFouls: number;\n efficiency: number;\n newbie: boolean;\n rank: number;\n\n get assists(): number {\n return (this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0);\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { HockeyStatistic } from './hockey-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: HockeyStatistic,\n competitorTeam: HockeyStatistic\n }\n})\nexport class HockeyGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: HockeyStatistic;\n competitorTeam: HockeyStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { HockeyGameLog } from '../models/hockey-game-log';\nimport { HockeyGameStatistic } from '../models/hockey-game-statistic';\nimport { HockeyGameTeamStatistic } from '../models/hockey-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class HockeyGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<HockeyGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/team_statistic/`).pipe(\n map(result => HockeyGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<HockeyGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/user_statistic/`).pipe(\n map(result => HockeyGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<HockeyGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/logs/`).pipe(\n map(result => HockeyGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user'|'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField, penaltyTypeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum FootballGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n penalty_attempt,\n penalty_goal,\n penalty_save,\n small_penalty_attempt,\n small_penalty_goal,\n small_penalty_save,\n assist,\n block_shot,\n corner,\n free_kick,\n foul,\n save,\n yellow_card,\n red_card,\n perfect_pass,\n loss,\n steal,\n out,\n timeout,\n auto_goal,\n end_game_penalty_miss,\n end_game_penalty_goal,\n end_game_penalty_save\n}\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n is_goalie: 'isGoalie',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(FootballGameLogTypes)\n }\n})\nexport class FootballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: FootballGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n isGoalie: boolean;\n\n compare(model: FootballGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [\n FootballGameLogTypes.goal,\n FootballGameLogTypes.penalty_goal,\n FootballGameLogTypes.small_penalty_goal,\n FootballGameLogTypes.auto_goal,\n FootballGameLogTypes.end_game_penalty_goal,\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: FootballGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n updated_at: 'updatedAt',\n points: 'points',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n goals: 'goals',\n assists: 'assists',\n corners: 'corners',\n free_kicks: 'freeKicks',\n penalty_goals: 'penaltyGoals',\n penalty_attempts: 'penaltyAttempts',\n penalty_goals_against: 'penaltyGoalsAgainst',\n penalty_saves: 'penaltySaves',\n small_penalty_goals: 'smallPenaltyGoals',\n small_penalty_attempts: 'smallPenaltyAttempts',\n small_penalty_goals_against: 'smallPenaltyGoalsAgainst',\n small_penalty_saves: 'smallPenaltySaves',\n saves: 'saves',\n goals_against: 'goalsAgainst',\n safety_rate: 'safetyRate',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n fouls: 'fouls',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n perfect_passes: 'perfectPasses',\n losses: 'losses',\n steals: 'steals',\n outs: 'outs',\n block_shots: 'blockShots',\n auto_goals: 'autoGoals',\n auto_goals_against: 'autoGoalsAgainst',\n end_game_penalty_goals: 'endGamePenaltyGoals',\n end_game_penalty_misses: 'endGamePenaltyMisses',\n end_game_penalty_saves: 'endGamePenaltySaves'\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class FootballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n blockShots: number;\n corners: number;\n freeKicks: number;\n penaltyGoals: number;\n penaltyAttempts: number;\n penaltyGoalsAgainst: number;\n penaltySaves: number;\n smallPenaltyGoals: number;\n smallPenaltyAttempts: number;\n smallPenaltyGoalsAgainst: number;\n smallPenaltySaves: number;\n saves: number;\n goalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n perfectPasses: number;\n losses: number;\n steals: number;\n outs: number;\n gameTime: number;\n plusMinus: number;\n updatedAt: Date;\n autoGoals: number;\n autoGoalsAgainst: number;\n endGamePenaltyGoals: number;\n endGamePenaltyMisses: number;\n endGamePenaltySaves: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shots(): number {\n return Math.floor(10 * ((this.shotMisses || 0) + (this.shotsOnGoal || 0) + (this.shotsBlocked || 0))) / 10;\n }\n\n\n get totalGoals(): number {\n return Math.floor(10 * ((this.goals || 0) + (this.penaltyGoals || 0) + (this.smallPenaltyGoals || 0))) / 10;\n }\n\n get goalsPercent(): number {\n if (!this.shots || !this.totalGoals) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.shots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get penalties(): number {\n return Math.floor(10 * ((this.penaltyGoals || 0) + (this.penaltyAttempts || 0))) / 10;\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penalties || !this.penaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.penaltyGoals / this.penalties) / 10;\n }\n\n get smallPenalties(): number {\n return Math.floor(10 * ((this.smallPenaltyGoals || 0) + (this.smallPenaltyAttempts || 0))) / 10;\n }\n\n get smallPenaltyGoalsPercent(): number {\n if (!this.smallPenalties || !this.smallPenaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.smallPenaltyGoals / this.smallPenalties) / 10;\n }\n\n get shotsAgainst(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.goalsAgainst || 0))) / 10;\n }\n\n get penaltyShotsAgainst(): number {\n return Math.floor(10 * ((this.penaltySaves || 0) + (this.penaltyGoalsAgainst || 0))) / 10;\n }\n\n get smallPenaltyShotsAgainst(): number {\n return Math.floor(10 * ((this.smallPenaltySaves || 0) + (this.smallPenaltyGoalsAgainst || 0))) / 10;\n }\n\n get totalGoalsAgainst(): number {\n return Math.floor(10 * ((this.goalsAgainst || 0) + (this.penaltyGoalsAgainst || 0) + (this.smallPenaltyGoalsAgainst || 0) + (this.autoGoalsAgainst || 0))) / 10;\n }\n\n\n get totalSaves(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.penaltySaves || 0) + (this.smallPenaltySaves || 0))) / 10;\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get penaltySavesPercent(): number {\n if (!this.penaltyShotsAgainst || !this.penaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.penaltySaves / this.penaltyShotsAgainst) / 10;\n }\n\n get smallPenaltySavesPercent(): number {\n if (!this.smallPenaltyShotsAgainst || !this.smallPenaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.smallPenaltySaves / this.smallPenaltyShotsAgainst) / 10;\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n lose_games_count: 'loseGamesCount',\n draw_games_count: 'drawGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n shots_on_goal_percent: 'shotsOnGoalPercent',\n shots: 'shots',\n goals: 'goals',\n goals_percent: 'goalsPercent',\n total_goals: 'totalGoals',\n assists: 'assists',\n penalty_goals: 'penaltyGoals',\n penalty_attempts: 'penaltyAttempts',\n penalty_goals_percent: 'penaltyGoalsPercent',\n penalty_saves: 'penaltySaves',\n penalty_goals_against: 'penaltyGoalsAgainst',\n penalty_shots_against: 'penaltyShotsAgainst',\n penalty_saves_percent: 'penaltySavesPercent',\n small_penalty_goals: 'smallPenaltyGoals',\n small_penalty_attempts: 'smallPenaltyAttempts',\n small_penalty_goals_percent: 'smallPenaltyGoalsPercent',\n small_penalty_saves: 'smallPenaltySaves',\n small_penalty_goals_against: 'smallPenaltyGoalsAgainst',\n small_penalty_shots_against: 'smallPenaltyShotsAgainst',\n small_penalty_saves_percent: 'smallPenaltySavesPercent',\n saves: 'saves',\n saves_percent: 'savesPercent',\n total_saves: 'totalSaves',\n goals_against: 'goalsAgainst',\n total_goals_against: 'totalGoalsAgainst',\n shots_against: 'shotsAgainst',\n safety_rate: 'safetyRate',\n fouls: 'fouls',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n perfect_passes: 'perfectPasses',\n losses: 'losses',\n steals: 'steals',\n outs: 'outs',\n block_shots: 'blockShots',\n corners: 'corners',\n free_kicks: 'freeKicks',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n newbie: 'newbie',\n rank: 'rank',\n auto_goals: 'autoGoals',\n auto_goals_against: 'autoGoalsAgainst',\n end_game_penalty_goals: 'endGamePenaltyGoals',\n end_game_penalty_misses: 'endGamePenaltyMisses',\n end_game_penalty_saves: 'endGamePenaltySaves'\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class FootballStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shotsOnGoalPercent: number;\n shots: number;\n goals: number;\n totalGoals: number;\n goalsPercent: number;\n assists: number;\n penaltyGoals: number;\n penaltyAttempts: number;\n penaltyGoalsPercent: number;\n penaltySaves: number;\n penaltyGoalsAgainst: number;\n penaltyShotsAgainst: number;\n penaltySavesPercent: number;\n smallPenaltyGoals: number;\n smallPenaltyAttempts: number;\n smallPenaltyGoalsPercent: number;\n smallPenaltySaves: number;\n smallPenaltyGoalsAgainst: number;\n smallPenaltyShotsAgainst: number;\n smallPenaltySavesPercent: number;\n saves: number;\n savesPercent: number;\n totalSaves: number;\n goalsAgainst: number;\n totalGoalsAgainst: number;\n shotsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n perfectPasses: number;\n losses: number;\n steals: number;\n outs: number;\n gameTime: number;\n plusMinus: number;\n blockShots: number;\n corners: number;\n freeKicks: number;\n newbie: boolean;\n rank: number;\n autoGoals: number;\n autoGoalsAgainst: number;\n endGamePenaltyGoals: number;\n endGamePenaltyMisses: number;\n endGamePenaltySaves: number;\n\n get teamPlusMinus(): number {\n return (this.teamScoreSum || 0) - (this.teamMissedSum || 0);\n }\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get penalties(): number {\n return Math.floor(10 * ((this.penaltyGoals || 0) + (this.penaltyAttempts || 0))) / 10;\n }\n\n get smallPenalties(): number {\n return Math.floor(10 * ((this.smallPenaltyGoals || 0) + (this.smallPenaltyAttempts || 0))) / 10;\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get tournamentTeamGamesCount(): number {\n return this.tournamentTeam && this.tournamentTeam.gamesCount;\n }\n\n get tournamentTeamWonGamesCount(): number {\n return this.tournamentTeam && this.tournamentTeam.wonGamesCount;\n }\n\n get tournamentTeamDrawGamesCount(): number {\n return this.tournamentTeam && this.tournamentTeam.drawGamesCount;\n }\n\n get tournamentTeamLostGamesCount(): number {\n if (!this.tournamentTeam) {\n return null;\n }\n return this.tournamentTeam.gamesCount - this.tournamentTeam.drawGamesCount - this.tournamentTeam.wonGamesCount;\n }\n\n get tournamentTeamScoreSum(): number {\n return this.tournamentTeam && this.tournamentTeam.scoreSum;\n }\n\n get tournamentTeamMissedSum(): number {\n return this.tournamentTeam && this.tournamentTeam.missedSum;\n }\n\n get tournamentTeamPlusMinus(): number {\n if (!this.tournamentTeam) {\n return null;\n }\n return this.tournamentTeam.scoreSum - this.tournamentTeam.missedSum;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { FootballStatistic } from './football-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: FootballStatistic,\n competitorTeam: FootballStatistic\n }\n})\nexport class FootballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: FootballStatistic;\n competitorTeam: FootballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { FootballGameLog } from '../models/football-game-log';\nimport { FootballGameStatistic } from '../models/football-game-statistic';\nimport { FootballGameTeamStatistic } from '../models/football-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class FootballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<FootballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/team_statistic/`).pipe(\n map(result => FootballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<FootballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/user_statistic/`).pipe(\n map(result => FootballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<FootballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/logs/`).pipe(\n map(result => FootballGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user' | 'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\n\nexport enum HandballGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n assist,\n penalty_miss,\n penalty_shot_on_goal,\n penalty_goal,\n save,\n penalty_save,\n foul,\n yellow_card,\n red_card,\n two_minute_foul,\n turnover,\n steal,\n block_shot,\n timeout\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n is_goalie: 'isGoalie',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(HandballGameLogTypes)\n }\n})\nexport class HandballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: HandballGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n isGoalie: boolean;\n\n compare(model: HandballGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [HandballGameLogTypes.goal, HandballGameLogTypes.penalty_goal].indexOf(this.logType) > -1;\n }\n\n isAfter(log: HandballGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n isFoulType(): boolean {\n return [HandballGameLogTypes.foul, HandballGameLogTypes.yellow_card, HandballGameLogTypes.red_card].indexOf(this.logType) > -1;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n points: 'points',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n goals: 'goals',\n assists: 'assists',\n penalty_goals: 'penaltyGoals',\n penalty_misses: 'penaltyMisses',\n penalty_shots_on_goal: 'penaltyShotsOnGoal',\n saves: 'saves',\n penalty_saves: 'penaltySaves',\n goals_against: 'goalsAgainst',\n penalty_goals_against: 'penaltyGoalsAgainst',\n safety_rate: 'safetyRate',\n fouls: 'fouls',\n yellowCards: 'yellowCards',\n red_cards: 'redCards',\n two_minute_fouls: 'twoMinuteFouls',\n turnovers: 'turnovers',\n steals: 'steals',\n block_shots: 'blockShots',\n game_time: 'gameTime',\n plus_minus: 'plusMinus'\n }\n})\nexport class HandballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n penaltyGoals: number;\n penaltyMisses: number;\n penaltyShotsOnGoal: number;\n saves: number;\n penaltySaves: number;\n goalsAgainst: number;\n penaltyGoalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n twoMinuteFouls: number;\n turnovers: number;\n steals: number;\n blockShots: number;\n gameTime: number;\n plusMinus: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shots(): number {\n return Math.floor(10 * ((this.shotMisses || 0) + (this.shotsOnGoal || 0) + (this.shotsBlocked || 0))) / 10;\n }\n\n\n get totalGoals(): number {\n return Math.floor(10 * ((this.goals || 0) + (this.penaltyGoals || 0))) / 10;\n }\n\n get goalsPercent(): number {\n if (!this.shots || !this.totalGoals) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.shots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get penaltyShots(): number {\n return Math.floor(10 * ((this.penaltyShotsOnGoal || 0) + (this.penaltyMisses || 0))) / 10;\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penaltyShots || !this.penaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.penaltyGoals / this.penaltyShots) / 10;\n }\n\n get shotsAgainst(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.goalsAgainst || 0))) / 10;\n }\n\n get penaltyShotsAgainst(): number {\n return Math.floor(10 * ((this.penaltySaves || 0) + (this.penaltyGoalsAgainst || 0))) / 10;\n }\n\n get totalGoalsAgainst(): number {\n return Math.floor(10 * ((this.goalsAgainst || 0) + (this.penaltyGoalsAgainst || 0))) / 10;\n }\n\n get totalSaves(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.penaltySaves || 0))) / 10;\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get penaltySavesPercent(): number {\n if (!this.penaltyShotsAgainst || !this.penaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.penaltySaves / this.penaltyShotsAgainst) / 10;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n goals: 'goals',\n assists: 'assists',\n penalty_goals: 'penaltyGoals',\n penalty_misses: 'penaltyMisses',\n penalty_shots_on_goal: 'penaltyShotsOnGoal',\n saves: 'saves',\n penalty_saves: 'penaltySaves',\n goals_against: 'goalsAgainst',\n penalty_goals_against: 'penaltyGoalsAgainst',\n safety_rate: 'safetyRate',\n fouls: 'fouls',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n two_minute_fouls: 'twoMinuteFouls',\n turnovers: 'turnovers',\n steals: 'steals',\n block_shots: 'blockShots',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n shots: 'shots',\n goals_percent: 'goalsPercent',\n penalty_shots: 'penaltyShots',\n penalty_goals_percent: 'penaltyGoalsPercent',\n shots_against: 'shotsAgainst',\n saves_percent: 'savesPercent',\n penalty_shots_against: 'penaltyShotsAgainst',\n penalty_saves_percent: 'penaltySavesPercent',\n total_goals: 'totalGoals',\n total_saves: 'totalSaves',\n total_goals_against: 'totalGoalsAgainst',\n newbie: 'newbie',\n rank: 'rank',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class HandballStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n penaltyGoals: number;\n penaltyMisses: number;\n penaltyShotsOnGoal: number;\n saves: number;\n penaltySaves: number;\n goalsAgainst: number;\n penaltyGoalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n twoMinuteFouls: number;\n turnovers: number;\n steals: number;\n blockShots: number;\n gameTime: number;\n plusMinus: number;\n shots: number;\n goalsPercent: number;\n penaltyShots: number;\n penaltyGoalsPercent: number;\n shotsAgainst: number;\n savesPercent: number;\n penaltyShotsAgainst: number;\n penaltySavesPercent: number;\n totalGoals: number;\n totalSaves: number;\n totalGoalsAgainst: number;\n newbie: boolean;\n rank: number;\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { HandballStatistic } from './handball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: HandballStatistic,\n competitorTeam: HandballStatistic\n }\n})\nexport class HandballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: HandballStatistic;\n competitorTeam: HandballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { HandballGameLog } from '../models/handball-game-log';\nimport { HandballGameStatistic } from '../models/handball-game-statistic';\nimport { HandballGameTeamStatistic } from '../models/handball-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class HandballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<HandballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/team_statistic/`).pipe(\n map(result => HandballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<HandballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/user_statistic/`).pipe(\n map(result => HandballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<HandballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/logs/`).pipe(\n map(result => HandballGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user' | 'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { File } from './file';\nimport { User } from './user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n picture: 'picture',\n text: 'text',\n author: 'author',\n created_at: 'createdAt',\n },\n relation: {\n picture: File,\n author: User,\n createdAt: DateTimeField,\n }\n})\nexport class TournamentNews extends BaseModel {\n id: number;\n title: string;\n picture: File;\n text: string;\n author: User;\n createdAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\n\n@ModelInstance({\n mappingFields: {\n stage_id: 'stageId',\n tours_count: 'toursCount',\n playoff_stages_count: 'playoffStagesCount',\n playoff_teams_count: 'playoffTeamsCount',\n }\n})\nexport class GameTimelineStageItem {\n stageId: number;\n toursCount: number;\n playoffStagesCount: number;\n playoffTeamsCount: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n tours_count: 'toursCount',\n playoff_stages_count: 'playoffStagesCount',\n playoff_teams_count: 'playoffTeamsCount',\n current_tour: 'currentTour',\n current_playoff_stage: 'currentPlayoffStage',\n current_playoff_round: 'currentPlayoffRound',\n stages: 'stages',\n tournament_stage_id: 'tournamentStageId',\n tournament_round_id: 'tournamentRoundId',\n },\n relation: {\n stages: listField(GameTimelineStageItem)\n }\n})\nexport class GameTimelineStages extends BaseModel {\n toursCount: number;\n playoffStagesCount: number;\n playoffTeamsCount: number;\n currentTour: number;\n currentPlayoffStage: number;\n currentPlayoffRound: number;\n stages: GameTimelineStageItem[];\n tournamentStageId: number;\n tournamentRoundId: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField, DateField } from './util';\n\nexport enum TournamentStageStatuses {\n open,\n in_progress,\n closed\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n date: 'date',\n tournament_id: 'tournamentId',\n status: 'status',\n },\n relation: {\n date: DateField,\n status: enumField(TournamentStageStatuses)\n }\n})\nexport class TournamentStage extends BaseModel {\n id: number;\n name: string;\n date: Date;\n tournamentId: number;\n status: TournamentStageStatuses;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField } from './util';\nimport { Team } from './team';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { TeamUser } from './team-user';\nimport { TournamentTeam } from './tournament-team';\nimport { User } from './user';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n team_user: 'teamUser',\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n tournament_team: 'tournamentTeam',\n user: 'user',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n serve_hits: 'serveHits',\n serve_faults: 'serveFaults',\n serve_aces: 'serveAces',\n serve_percent: 'servePercent',\n good_serves: 'goodServes',\n ace_percent: 'acePercent',\n stuff_blocks: 'stuffBlocks',\n block_faults: 'blockFaults',\n block_rebounds: 'blockRebounds',\n block_percent: 'blockPercent',\n attack_spikes: 'attackSpikes',\n attack_faults: 'attackFaults',\n attack_shots: 'attackShots',\n attack_percent: 'attackPercent',\n receives: 'receives',\n receive_faults: 'receiveFaults',\n excellent_receives: 'excellentReceives',\n receive_percent: 'receivePercent',\n serve_receives: 'serveReceives',\n serve_receive_faults: 'serveReceiveFaults',\n excellent_serve_receives: 'excellentServeReceives',\n serve_receive_percent: 'serveReceivePercent',\n points: 'points',\n faults: 'faults',\n newbie: 'newbie',\n rank: 'rank',\n },\n relation: {\n team: Team,\n teamUser: TeamUser,\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n tournamentTeam: TournamentTeam,\n user: User,\n month: DateField,\n }\n})\nexport class VolleyballStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n newbie: boolean;\n rank: number;\n serveHits: number;\n serveFaults: number;\n serveAces: number;\n goodServes: number;\n servePercent: number;\n acePercent: number;\n stuffBlocks: number;\n blockFaults: number;\n blockRebounds: number;\n blockPercent: number;\n attackSpikes: number;\n attackFaults: number;\n attackShots: number;\n attackPercent: number;\n receives: number;\n receiveFaults: number;\n excellentReceives: number;\n receivePercent: number;\n serveReceives: number;\n serveReceiveFaults: number;\n excellentServeReceives: number;\n serveReceivePercent: number;\n points: number;\n faults: number;\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get totalReceives(): number {\n return Math.floor(10 * (this.receives + this.excellentReceives + this.receiveFaults)) / 10;\n }\n\n get totalServeReceives(): number {\n return Math.floor(10 * (this.serveReceives + this.excellentServeReceives + this.serveReceiveFaults)) / 10;\n }\n\n get totalServes(): number {\n return Math.floor(10 * (this.serveAces + this.serveHits + this.serveFaults + this.goodServes)) / 10;\n }\n\n get totalAttacks(): number {\n return Math.floor(10 * (this.attackSpikes + this.attackShots + this.attackFaults)) / 10;\n }\n\n get totalBlocks(): number {\n return Math.floor(10 * (this.stuffBlocks + this.blockRebounds + this.blockFaults)) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { TournamentTeam } from './tournament-team';\nimport { TournamentGroup } from './tournament-group';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team: 'tournamentTeam',\n group: 'group',\n tournament_stage_id: 'tournamentStageId',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n score_sum: 'scoreSum',\n missed_sum: 'missedSum',\n last_games_count: 'lastGamesCount',\n last_games_won: 'lastGamesWon',\n points: 'points',\n mt_points: 'mtPoints',\n final_standing: 'finalStanding',\n received_points: 'receivedPoints',\n received_mt_points: 'receivedMtPoints',\n },\n relation: {\n tournamentTeam: TournamentTeam,\n group: TournamentGroup\n }\n})\nexport class TournamentStageTeam extends BaseModel {\n id: number;\n tournamentTeam: TournamentTeam;\n group: TournamentGroup;\n tournamentStageId: number;\n gamesCount: number;\n wonGamesCount: number;\n scoreSum: number;\n missedSum: number;\n lastGamesCount: number;\n lastGamesWon: number;\n points: number;\n mtPoints: number;\n finalStanding: number;\n receivedPoints: number;\n receivedMtPoints: number;\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField, DateTimeField, enumField } from './util';\nimport { File } from './file';\nimport { Tournament } from './tournament';\n\nexport enum LeagueNewsType {\n text = 1,\n video\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n datetime: 'datetime',\n preview_text: 'previewText',\n detail_text: 'detailText',\n picture: 'picture',\n cover: 'cover',\n mobile_picture: 'mobilePicture',\n is_main: 'isMain',\n tournaments: 'tournaments',\n type: 'type',\n video_link: 'videoLink',\n tag: 'tag',\n },\n relation: {\n datetime: DateTimeField,\n picture: File,\n cover: File,\n mobilePicture: File,\n tournaments: listField(Tournament),\n type: enumField(LeagueNewsType),\n }\n})\nexport class LeagueNews extends BaseModel {\n id: number;\n title: string;\n datetime: Date;\n previewText: string;\n detailText: string;\n picture: File;\n cover: File;\n mobilePicture: File;\n isMain: boolean;\n tournaments: Tournament[];\n type: LeagueNewsType;\n videoLink: string;\n tag: string;\n\n @ToFrontHook\n static toFront(data: any): any {\n return undefined;\n }\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField, enumField, listField } from './util';\nimport { Game } from './game';\nimport { Tournament } from './tournament';\nimport { League } from './league';\nimport { LeagueNews } from './league-news';\n\nexport enum TournamentEventTypes {\n game_closed = 1,\n media_added,\n news\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n game: 'game',\n news: 'news',\n league: 'league',\n tournaments: 'tournaments',\n event: 'event',\n datetime: 'datetime'\n },\n relation: {\n game: Game,\n news: LeagueNews,\n league: League,\n tournaments: listField(Tournament),\n datetime: DateField,\n event: enumField(TournamentEventTypes)\n }\n})\nexport class TournamentEvent extends BaseModel {\n id: number;\n game: Game;\n news: LeagueNews;\n tournaments: Tournament[];\n event: TournamentEventTypes;\n datetime: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { User } from './user';\nimport { BaseModel, enumField, listField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\n\nexport enum LeagueUserRoles {\n admin = 1,\n moderator,\n game_manager\n}\n\nexport enum LeagueUserPermissions {\n settings = 1,\n users,\n teams,\n media,\n news,\n game_export,\n schedule,\n game_management\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user: 'user',\n role: 'role',\n permissions: 'permissions'\n },\n relation: {\n user: User,\n permissions: listField(enumField(LeagueUserPermissions))\n }\n})\nexport class LeagueUser extends BaseModel {\n id: number;\n user: User;\n _role: LeagueUserRoles;\n permissions: LeagueUserPermissions[];\n\n set role(value: LeagueUserRoles|string) {\n this._role = LeagueUserRoles[value];\n }\n\n get role(): LeagueUserRoles|string {\n return this._role;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n lose_games_count: 'loseGamesCount',\n draw_games_count: 'drawGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n newbie: 'newbie',\n // User statistic\n points: 'points',\n tries: 'tries',\n conversion_kicks: 'conversionKicks',\n conversion_goals: 'conversionGoals',\n conversion_misses: 'conversionMisses',\n conversion_goals_percent: 'conversionGoalsPercent',\n penalties: 'penalties',\n penalty_kicks_on_goal: 'penaltyKicksOnGoal',\n penalty_misses: 'penaltyMisses',\n penalty_goals: 'penaltyGoals',\n tap_penalties: 'tapPenalties',\n penalty_kicks_to_touch: 'penaltyKicksToTouch',\n penalty_goals_percent: 'penaltyGoalsPercent',\n drop_goal_kicks: 'dropGoalKicks',\n drop_goals: 'dropGoals',\n drop_goal_misses: 'dropGoalMisses',\n drop_goals_percent: 'dropGoalsPercent',\n total_goals: 'totalGoals',\n free_kicks: 'freeKicks',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n offloads: 'offloads',\n tackles: 'tackles',\n handling_errors: 'handlingErrors',\n carries_over_gainline: 'carriesOverGainline',\n foot_field_shots: 'footFieldShots',\n foot_out_shots: 'footOutShots',\n foot_shots: 'footShots',\n plus_minus: 'plusMinus',\n game_time: 'gameTime',\n\n // Team statistic\n penalty_tries: 'penaltyTries',\n scrums: 'scrums',\n scrums_won: 'scrumsWon',\n scrums_lost: 'scrumsLost',\n scrums_won_percent: 'scrumsWonPercent',\n scrums_won_free: 'scrumsWonFree',\n opponent_scrums_won: 'opponentScrumsWon',\n opponent_scrums_lost: 'opponentScrumsLost',\n lineouts: 'lineouts',\n lineouts_won: 'lineoutsWon',\n lineouts_lost: 'lineoutsLost',\n lineouts_steal: 'lineoutsSteal',\n lineouts_won_percent: 'lineoutsWonPercent',\n opponent_lineouts_lost: 'opponentLineoutsLost',\n quick_throws: 'quickThrows',\n rucks: 'rucks',\n rucks_won: 'rucksWon',\n rucks_lost: 'rucksLost',\n rucks_won_percent: 'rucksWonPercent',\n opponent_rucks_won: 'opponentRucksWon',\n opponent_rucks_lost: 'opponentRucksLost',\n mauls: 'mauls',\n mauls_won: 'maulsWon',\n mauls_lost: 'maulsLost',\n mauls_won_percent: 'maulWonPercent',\n opponent_mauls_won: 'opponentMaulsWon',\n opponent_mauls_lost: 'opponentMaulsLost',\n fouls: 'fouls',\n team_fouls: 'teamFouls',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class RugbyStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n newbie: boolean;\n rank: number;\n points: number;\n tries: number;\n penaltyTries: number;\n conversionKicks: number;\n conversionGoals: number;\n conversionMisses: number;\n conversionGoalsPercent: number;\n penalties: number;\n penaltyKicksOnGoal: number;\n penaltyMisses: number;\n penaltyGoals: number;\n penaltyGoalsPercent: number;\n tapPenalties: number;\n penaltyKicksToTouch: number;\n dropGoalKicks: number;\n dropGoals: number;\n dropGoalMisses: number;\n dropGoalsPercent: number;\n totalGoals: number;\n freeKicks: number;\n yellowCards: number;\n redCards: number;\n offloads: number;\n tackles: number;\n handlingErrors: number;\n carriesOverGainline: number;\n footFieldShots: number;\n footOutShots: number;\n footShots: number;\n plusMinus: number;\n gameTime: number;\n\n scrums: number;\n scrumsWon: number;\n scrumsLost: number;\n scrumsWonPercent: number;\n scrumsWonFree: number;\n opponentScrumsWon: number;\n opponentScrumsLost: number;\n lineouts: number;\n lineoutsWon: number;\n lineoutsLost: number;\n lineoutsSteal: number;\n lineoutsWonPercent: number;\n opponentLineoutsLost: number;\n quickThrows: number;\n rucks: number;\n rucksWon: number;\n rucksLost: number;\n rucksWonPercent: number;\n opponentRucksWon: number;\n opponentRucksLost: number;\n mauls: number;\n maulsWon: number;\n maulsLost: number;\n maulWonPercent: number;\n opponentMaulsWon: number;\n opponentMaulsLost: number;\n fouls: number;\n teamFouls: number;\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get totalFouls(): number {\n return (this.fouls || 0) + (this.teamFouls || 0);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum AchievementTypes {\n by_game = 1,\n by_stage\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n alias: 'type',\n value: 'value',\n type: 'type',\n },\n relation: {\n type: enumField(AchievementTypes),\n }\n})\nexport class Achievement extends BaseModel {\n id: number;\n name: string;\n alias: string;\n type: AchievementTypes;\n value: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Achievement } from './achievement';\nimport { Game } from './game';\nimport { TournamentStage } from './tournament-stage';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n achievement: 'achievement',\n tournament_stage: 'tournamentStage',\n team_id: 'teamId',\n game: 'game',\n mt_points: 'mtPoints',\n },\n relation: {\n achievement: Achievement,\n tournamentStage: TournamentStage,\n game: Game\n }\n})\nexport class TeamAchievement extends BaseModel {\n id: number;\n teamId: number;\n achievement: Achievement;\n game: Game;\n tournamentStage: TournamentStage;\n mtPoints: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n lose_games_count: 'loseGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n pp_shot_misses: 'ppShotMisses',\n pp_shots_on_goal: 'ppShotsOnGoal',\n pp_shots_blocked: 'ppShotsBlocked',\n ev_shot_misses: 'evShotMisses',\n ev_shots_on_goal: 'evShotsOnGoal',\n ev_shots_blocked: 'evShotsBlocked',\n sh_shot_misses: 'shShotMisses',\n sh_shots_on_goal: 'shShotsOnGoal',\n sh_shots_blocked: 'shShotsBlocked',\n pp_total_shots_on_goal: 'ppTotalShotsOnGoal',\n ev_total_shots_on_goal: 'evTotalShotsOnGoal',\n sh_total_shots_on_goal: 'shTotalShotsOnGoal',\n pp_goals: 'ppGoals',\n ev_goals: 'evGoals',\n sh_goals: 'shGoals',\n pp_counterattack_goals: 'ppCounterAttackGoals',\n pp_counterattack_on_goals: 'ppCounterAttackOnGoals',\n pp_counterattack_misses: 'ppCounterAttackMisses',\n pp_counterattack_shots_blocked: 'ppCounterAttackShotsBlocked',\n ev_counterattack_goals: 'evCounterAttackGoals',\n ev_counterattack_on_goals: 'evCounterAttackOnGoals',\n ev_counterattack_misses: 'evCounterAttackMisses',\n ev_counterattack_shots_blocked: 'evCounterAttackShotsBlocked',\n sh_counterattack_goals: 'shCounterAttackGoals',\n sh_counterattack_on_goals: 'shCounterAttackOnGoals',\n sh_counterattack_misses: 'shCounterAttackMisses',\n sh_counterattack_shots_blocked: 'shCounterAttackShotsBlocked',\n pp_maneuver_goals: 'ppManeuverGoals',\n pp_maneuver_on_goals: 'ppManeuverOnGoals',\n pp_maneuver_misses: 'ppManeuverMisses',\n pp_maneuver_shots_blocked: 'ppManeuverShotsBlocked',\n ev_maneuver_goals: 'evManeuverGoals',\n ev_maneuver_on_goals: 'evManeuverOnGoals',\n ev_maneuver_misses: 'evManeuverMisses',\n ev_maneuver_shots_blocked: 'evManeuverShotsBlocked',\n sh_maneuver_goals: 'shManeuverGoals',\n sh_maneuver_on_goals: 'shManeuverOnGoals',\n sh_maneuver_misses: 'shManeuverMisses',\n sh_maneuver_shots_blocked: 'shManeuverShotsBlocked',\n pp_center_forward_goals: 'ppCenterForwardGoals',\n pp_center_forward_on_goals: 'ppCenterForwardOnGoals',\n pp_center_forward_misses: 'ppCenterForwardMisses',\n pp_center_forward_shots_blocked: 'ppCenterForwardShotsBlocked',\n ev_center_forward_goals: 'evCenterForwardGoals',\n ev_center_forward_on_goals: 'evCenterForwardOnGoals',\n ev_center_forward_misses: 'evCenterForwardMisses',\n ev_center_forward_shots_blocked: 'evCenterForwardShotsBlocked',\n sh_center_forward_goals: 'shCenterForwardGoals',\n sh_center_forward_on_goals: 'shCenterForwardOnGoals',\n sh_center_forward_misses: 'shCenterForwardMisses',\n sh_center_forward_shots_blocked: 'shCenterForwardShotsBlocked',\n pp_assists: 'ppAssists',\n ev_assists: 'evAssists',\n sh_assists: 'shAssists',\n shootout_attempts: 'shootoutAttempts',\n shootout_goals: 'shootoutGoals',\n after_game_shootout_attempts: 'afterGameShootoutAttempts',\n after_game_shootout_goals: 'afterGameShootoutGoals',\n block_shots: 'blockShots',\n face_off_losses: 'faceOffLosses',\n face_off_wins: 'faceOffWins',\n pp_saves: 'ppSaves',\n sh_saves: 'shSaves',\n ev_saves: 'evSaves',\n pp_counterattack_saves: 'ppCounterAttackSaves',\n sh_counterattack_saves: 'shCounterAttackSaves',\n ev_counterattack_saves: 'evCounterAttackSaves',\n pp_maneuver_saves: 'ppManeuverSaves',\n sh_maneuver_saves: 'shManeuverSaves',\n ev_maneuver_saves: 'evManeuverSaves',\n pp_center_forward_saves: 'ppCenterForwardSaves',\n sh_center_forward_saves: 'shCenterForwardSaves',\n ev_center_forward_saves: 'evCenterForwardSaves',\n pp_free_kick_saves: 'ppFreeKickSaves',\n sh_free_kick_saves: 'shFreeKickSaves',\n ev_free_kick_saves: 'evFreeKickSaves',\n pp_corner_saves: 'ppCornerSaves',\n sh_corner_saves: 'shCornerSaves',\n ev_corner_saves: 'evCornerSaves',\n pp_total_game_saves: 'ppTotalGameSaves',\n sh_total_game_saves: 'shTotalGameSaves',\n ev_total_game_saves: 'evTotalGameSaves',\n shootout_saves: 'shootoutSaves',\n after_game_shootout_saves: 'afterGameShootoutSaves',\n pp_goals_against: 'ppGoalsAgainst',\n sh_goals_against: 'shGoalsAgainst',\n ev_goals_against: 'evGoalsAgainst',\n goals_against: 'goalsAgainst',\n pp_counterattack_goals_against: 'ppCounterAttackGoalsAgainst',\n sh_counterattack_goals_against: 'shCounterAttackGoalsAgainst',\n ev_counterattack_goals_against: 'evCounterAttackGoalsAgainst',\n counterattack_goals_against: 'counterAttackGoalsAgainst',\n pp_maneuver_goals_against: 'ppManeuverGoalsAgainst',\n sh_maneuver_goals_against: 'shManeuverGoalsAgainst',\n ev_maneuver_goals_against: 'evManeuverGoalsAgainst',\n maneuver_goals_against: 'maneuverGoalsAgainst',\n pp_center_forward_goals_against: 'ppCenterForwardGoalsAgainst',\n sh_center_forward_goals_against: 'shCenterForwardGoalsAgainst',\n ev_center_forward_goals_against: 'evCenterForwardGoalsAgainst',\n center_forward_goals_against: 'centerForwardGoalsAgainst',\n pp_free_kick_goals_against: 'ppFreeKickGoalsAgainst',\n sh_free_kick_goals_against: 'shFreeKickGoalsAgainst',\n ev_free_kick_goals_against: 'evFreeKickGoalsAgainst',\n free_kick_goals_against: 'freeKickGoalsAgainst',\n pp_corner_goals_against: 'ppCornerGoalsAgainst',\n sh_corner_goals_against: 'shCornerGoalsAgainst',\n ev_corner_goals_against: 'evCornerGoalsAgainst',\n corner_goals_against: 'cornerGoalsAgainst',\n shootout_goals_against: 'shootoutGoalsAgainst',\n after_game_shootout_goals_against: 'afterGameShootoutGoalsAgainst',\n safety_rate: 'safetyRate',\n penalty_minutes: 'penaltyMinutes',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n fouls: 'fouls',\n minor_penalties: 'minorPenalties',\n major_penalties: 'majorPenalties',\n match_penalties: 'matchPenalties',\n penalty_fouls: 'penaltyFouls',\n turnovers: 'turnovers',\n attack_fouls: 'attackFouls',\n personal_fouls: 'personalFouls',\n drawn_fouls: 'drawnFouls',\n drawn_turnovers: 'drawnTurnovers',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n losses: 'losses',\n steals: 'steals',\n pp_free_kick_goals: 'ppFreeKickGoals',\n pp_free_kick_on_goals: 'ppFreeKickOnGoals',\n pp_free_kick_misses: 'ppFreeKickMisses',\n pp_free_kick_shots_blocked: 'ppFreeKickShotsBlocked',\n sh_free_kick_goals: 'shFreeKickGoals',\n sh_free_kick_on_goals: 'shFreeKickOnGoals',\n sh_free_kick_misses: 'shFreeKickMisses',\n sh_free_kick_shots_blocked: 'shFreeKickShotsBlocked',\n ev_free_kick_goals: 'evFreeKickGoals',\n ev_free_kick_on_goals: 'evFreeKickOnGoals',\n ev_free_kick_misses: 'evFreeKickMisses',\n ev_free_kick_shots_blocked: 'evFreeKickShotsBlocked',\n free_kick_passes: 'freeKickPasses',\n free_kick_selfs: 'freeKickSelfs',\n pp_corner_goals: 'ppCornerGoals',\n pp_corner_on_goals: 'ppCornerOnGoals',\n pp_corner_misses: 'ppCornerMisses',\n pp_corner_shots_blocked: 'ppCornerShotsBlocked',\n sh_corner_goals: 'shCornerGoals',\n sh_corner_on_goals: 'shCornerOnGoals',\n sh_corner_misses: 'shCornerMisses',\n sh_corner_shots_blocked: 'shCornerShotsBlocked',\n ev_corner_goals: 'evCornerGoals',\n ev_corner_on_goals: 'evCornerOnGoals',\n ev_corner_misses: 'evCornerMisses',\n ev_corner_shots_blocked: 'evCornerShotsBlocked',\n corner_passes: 'cornerPasses',\n corner_selfs: 'cornerSelfs',\n tackles: 'tackles',\n player_efficiency: 'playerEfficiency',\n\n pp_shots: 'ppShots',\n ev_shots: 'evShots',\n sh_shots: 'shShots',\n pp_goals_percent: 'ppGoalsPercent',\n sh_goals_percent: 'shGoalsPercent',\n ev_goals_percent: 'evGoalsPercent',\n total_pp_goals: 'totalPpGoals',\n total_sh_goals: 'totalShGoals',\n total_ev_goals: 'totalEvGoals',\n goals: 'goals',\n total_goals: 'totalGoals',\n position_attack_goals: 'positionAttackGoals',\n position_attack_shots_on_goal: 'positionAttackShotsOnGoal',\n position_attack_shots_miss: 'positionAttackShotsMiss',\n position_attack_shots: 'positionAttackShots',\n position_attack_goals_percent: 'positionAttackGoalsPercent',\n total_counterattack_goals: 'totalCounterAttackGoals',\n counterattack_shot_on_goals: 'counterAttackShotOnGoals',\n counterattack_shot_misses: 'counterAttackShotMisses',\n counterattack_shots: 'counterAttackShots',\n counterattack_goals_percent: 'counterAttackGoalsPercent',\n total_maneuver_goals: 'totalManeuverGoals',\n maneuver_shot_misses: 'maneuverShotMisses',\n maneuver_shot_on_goals: 'maneuverShotOnGoals',\n maneuver_shots: 'maneuverShots',\n maneuver_goals_percent: 'maneuverGoalsPercent',\n total_center_forward_goals: 'totalCenterForwardGoals',\n center_forward_shot_on_goals: 'centerForwardShotOnGoals',\n center_forward_shot_misses: 'centerForwardShotMisses',\n center_forward_shots: 'centerForwardShots',\n center_forward_goals_percent: 'centerForwardGoalsPercent',\n total_free_kick_goals: 'totalFreeKickGoals',\n free_kick_shot_misses: 'freeKickShotMisses',\n free_kick_on_goals: 'freeKickOnGoals',\n total_free_kicks: 'totalFreeKicks',\n free_kick_goals_percent: 'freeKickGoalsPercent',\n total_corner_goals: 'totalCornerGoals',\n total_corners: 'totalCorners',\n total_in_game_goals: 'totalInGameGoals',\n in_game_shot_misses: 'inGameShotMisses',\n total_pp_shot_misses: 'totalPpShotMisses',\n shot_misses: 'shotMisses',\n total_pp_shots_on_goal: 'totalPpShotsOnGoal',\n in_game_shots_on_goals: 'inGameShotsOnGoals',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n shots: 'shots',\n shots_on_goal_percent: 'shotsOnGoalPercent',\n total_shots: 'totalShots',\n goals_percent: 'goalsPercent',\n total_goals_percent: 'totalGoalsPercent',\n face_offs: 'faceOffs',\n face_off_percent: 'faceOffPercent',\n total_fouls: 'totalFouls',\n total_penalties: 'totalPenalties',\n shootout_shots: 'shootoutShots',\n shootout_goals_percent: 'shootoutGoalsPercent',\n\n /*goalie stat*/\n position_attack_saves: 'positionAttackSaves',\n position_attack_shots_against: 'positionAttackShotsAgainst',\n position_attack_saves_percent: 'positionAttackSavesPercent',\n counterattack_saves: 'counterAttackSaves',\n counterattack_shots_against: 'counterAttackShotsAgainst',\n counterattack_saves_percent: 'counterAttackSavesPercent',\n center_forward_saves: 'centerForwardSaves',\n center_forward_shots_against: 'centerForwardShotsAgainst',\n center_forward_saves_percent: 'centerForwardSavesPercent',\n maneuver_saves: 'maneuverSaves',\n maneuver_shots_against: 'maneuverShotsAgainst',\n maneuver_saves_percent: 'maneuverSavesPercent',\n free_kick_saves: 'freeKickSaves',\n free_kick_shots_against: 'freeKickShotsAgainst',\n free_kick_saves_percent: 'freeKickSavesPercent',\n corner_saves: 'cornerSaves',\n corner_shots_against: 'cornerShotsAgainst',\n corner_saves_percent: 'cornerSavesPercent',\n in_game_saves: 'inGameSaves',\n saves: 'saves',\n total_saves: 'totalSaves',\n shootout_shots_against: 'shootoutShotsAgainst',\n shootout_saves_percent: 'shootoutSavesPercent',\n game_shots_against: 'gameShotsAgainst',\n saves_percent: 'savesPercent',\n total_shots_against: 'totalShotsAgainst',\n total_saves_percent: 'totalSavesPercent',\n in_game_goals_against: 'inGameGoalsAgainst',\n total_goals_against: 'totalGoalsAgainst',\n total_sh_saves: 'totalShSaves',\n total_sh_goals_against: 'totalShGoalsAgainst',\n total_sh_shots_against: 'totalShShotsAgainst',\n total_sh_saves_percent: 'totalShSavesPercent',\n total_ev_saves: 'totalEvSaves',\n total_ev_goals_against: 'totalEvGoalsAgainst',\n total_ev_shots_against: 'totalEvShotsAgainst',\n total_ev_saves_percent: 'totalEvSavesPercent',\n\n newbie: 'newbie',\n rank: 'rank',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class WaterpoloStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppTotalShotsOnGoal: number;\n evTotalShotsOnGoal: number;\n shTotalShotsOnGoal: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppCounterAttackGoals: number;\n ppCounterAttackOnGoals: number;\n ppCounterAttackMisses: number;\n ppCounterAttackShotsBlocked: number;\n evCounterAttackGoals: number;\n evCounterAttackOnGoals: number;\n evCounterAttackMisses: number;\n evCounterAttackShotsBlocked: number;\n shCounterAttackGoals: number;\n shCounterAttackOnGoals: number;\n shCounterAttackMisses: number;\n shCounterAttackShotsBlocked: number;\n ppManeuverGoals: number;\n ppManeuverOnGoals: number;\n ppManeuverMisses: number;\n ppManeuverShotsBlocked: number;\n evManeuverGoals: number;\n evManeuverOnGoals: number;\n evManeuverMisses: number;\n evManeuverShotsBlocked: number;\n shManeuverGoals: number;\n shManeuverOnGoals: number;\n shManeuverMisses: number;\n shManeuverShotsBlocked: number;\n ppCenterForwardGoals: number;\n ppCenterForwardOnGoals: number;\n ppCenterForwardMisses: number;\n ppCenterForwardShotsBlocked: number;\n evCenterForwardGoals: number;\n evCenterForwardOnGoals: number;\n evCenterForwardMisses: number;\n evCenterForwardShotsBlocked: number;\n shCenterForwardGoals: number;\n shCenterForwardOnGoals: number;\n shCenterForwardMisses: number;\n shCenterForwardShotsBlocked: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n ppSaves: number;\n shSaves: number;\n evSaves: number;\n ppCounterAttackSaves: number;\n shCounterAttackSaves: number;\n evCounterAttackSaves: number;\n ppManeuverSaves: number;\n shManeuverSaves: number;\n evManeuverSaves: number;\n ppCenterForwardSaves: number;\n shCenterForwardSaves: number;\n evCenterForwardSaves: number;\n ppFreeKickSaves: number;\n shFreeKickSaves: number;\n evFreeKickSaves: number;\n ppCornerSaves: number;\n shCornerSaves: number;\n evCornerSaves: number;\n ppTotalGameSaves: number;\n shTotalGameSaves: number;\n evTotalGameSaves: number;\n shootoutSaves: number;\n afterGameShootoutSaves: number;\n ppGoalsAgainst: number;\n shGoalsAgainst: number;\n evGoalsAgainst: number;\n goalsAgainst: number;\n ppCounterAttackGoalsAgainst: number;\n shCounterAttackGoalsAgainst: number;\n evCounterAttackGoalsAgainst: number;\n counterAttackGoalsAgainst: number;\n ppManeuverGoalsAgainst: number;\n shManeuverGoalsAgainst: number;\n evManeuverGoalsAgainst: number;\n maneuverGoalsAgainst: number;\n ppCenterForwardGoalsAgainst: number;\n shCenterForwardGoalsAgainst: number;\n evCenterForwardGoalsAgainst: number;\n centerForwardGoalsAgainst: number;\n ppFreeKickGoalsAgainst: number;\n shFreeKickGoalsAgainst: number;\n evFreeKickGoalsAgainst: number;\n freeKickGoalsAgainst: number;\n ppCornerGoalsAgainst: number;\n shCornerGoalsAgainst: number;\n evCornerGoalsAgainst: number;\n cornerGoalsAgainst: number;\n shootoutGoalsAgainst: number;\n afterGameShootoutGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n fouls: number;\n minorPenalties: number;\n majorPenalties: number;\n matchPenalties: number;\n penaltyFouls: number;\n turnovers: number;\n attackFouls: number;\n personalFouls: number;\n drawnFouls: number;\n drawnTurnovers: number;\n yellowCards: number;\n redCards: number;\n losses: number;\n steals: number;\n ppFreeKickGoals: number;\n ppFreeKickOnGoals: number;\n ppFreeKickMisses: number;\n ppFreeKickShotsBlocked: number;\n shFreeKickGoals: number;\n shFreeKickOnGoals: number;\n shFreeKickMisses: number;\n shFreeKickShotsBlocked: number;\n evFreeKickGoals: number;\n evFreeKickOnGoals: number;\n evFreeKickMisses: number;\n evFreeKickShotsBlocked: number;\n freeKickPasses: number;\n freeKickSelfs: number;\n ppCornerGoals: number;\n ppCornerOnGoals: number;\n ppCornerMisses: number;\n ppCornerShotsBlocked: number;\n shCornerGoals: number;\n shCornerOnGoals: number;\n shCornerMisses: number;\n shCornerShotsBlocked: number;\n evCornerGoals: number;\n evCornerOnGoals: number;\n evCornerMisses: number;\n evCornerShotsBlocked: number;\n cornerPasses: number;\n cornerSelfs: number;\n tackles: number;\n playerEfficiency: number;\n\n /*additional statistic*/\n ppShots: number;\n shShots: number;\n evShots: number;\n ppGoalsPercent: number;\n shGoalsPercent: number;\n evGoalsPercent: number;\n totalPpGoals: number;\n totalShGoals: number;\n totalEvGoals: number;\n goals: number;\n totalGoals: number;\n positionAttackGoals: number;\n positionAttackShotsOnGoal: number;\n positionAttackShotsMiss: number;\n positionAttackShots: number;\n positionAttackGoalsPercent: number;\n totalCounterAttackGoals: number;\n counterAttackShotOnGoals: number;\n counterAttackShotMisses: number;\n counterAttackShots: number;\n counterAttackGoalsPercent: number;\n totalManeuverGoals: number;\n maneuverShotMisses: number;\n maneuverShotOnGoals: number;\n maneuverShots: number;\n maneuverGoalsPercent: number;\n totalCenterForwardGoals: number;\n centerForwardShotOnGoals: number;\n centerForwardShotMisses: number;\n centerForwardShots: number;\n centerForwardGoalsPercent: number;\n totalFreeKickGoals: number;\n freeKickShotMisses: number;\n freeKickOnGoals: number;\n totalFreeKicks: number;\n freeKickGoalsPercent: number;\n totalCornerGoals: number;\n totalCorners: number;\n totalInGameGoals: number;\n inGameShotMisses: number;\n totalPpShotMisses: number;\n shotMisses: number;\n totalPpShotsOnGoal: number;\n inGameShotsOnGoals: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shots: number;\n shotsOnGoalPercent: number;\n totalShots: number;\n goalsPercent: number;\n totalGoalsPercent: number;\n faceOffs: number;\n faceOffPercent: number;\n totalFouls: number;\n totalPenalties: number;\n shootoutShots: number;\n shootoutGoalsPercent: number;\n\n /*goalie stat*/\n positionAttackSaves: number;\n positionAttackShotsAgainst: number;\n positionAttackSavesPercent: number;\n counterAttackSaves: number;\n counterAttackShotsAgainst: number;\n counterAttackSavesPercent: number;\n centerForwardSaves: number;\n centerForwardShotsAgainst: number;\n centerForwardSavesPercent: number;\n maneuverSaves: number;\n maneuverShotsAgainst: number;\n maneuverSavesPercent: number;\n freeKickSaves: number;\n freeKickShotsAgainst: number;\n freeKickSavesPercent: number;\n cornerSaves: number;\n cornerShotsAgainst: number;\n cornerSavesPercent: number;\n inGameSaves: number;\n saves: number;\n totalSaves: number;\n shootoutShotsAgainst: number;\n shootoutSavesPercent: number;\n gameShotsAgainst: number;\n savesPercent: number;\n totalShotsAgainst: number;\n totalSavesPercent: number;\n inGameGoalsAgainst: number;\n totalGoalsAgainst: number;\n totalShSaves: number;\n totalShGoalsAgainst: number;\n totalShShotsAgainst: number;\n totalShSavesPercent: number;\n totalEvSaves: number;\n totalEvGoalsAgainst: number;\n totalEvShotsAgainst: number;\n totalEvSavesPercent: number;\n\n newbie: boolean;\n rank: number;\n\n get assists(): number {\n return (this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0);\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get penaltyTime(): string {\n if (!this.penaltyMinutes) {\n return '00:00';\n }\n const minutes = Math.floor(this.penaltyMinutes / 60);\n const seconds = Math.floor(this.penaltyMinutes - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ToFrontHook, ToBackHook, ModelInstance, enumField, listField } from './util';\nimport { TournamentDivision } from './tournament-division';\n\nexport enum TournamentRoundTypes {\n group = 1,\n playoff,\n}\n\nexport class TournamentRoundSettings extends BaseModel {\n toursCount: number;\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n type: 'type',\n divisions: 'divisions',\n },\n relation: {\n type: enumField(TournamentRoundTypes),\n divisions: listField(TournamentDivision),\n }\n})\nexport class TournamentRound extends BaseModel {\n id: number;\n name: string;\n type: TournamentRoundTypes;\n divisions: TournamentDivision[];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Tournament } from '../models/tournament';\nimport { map } from 'rxjs/operators';\nimport { TournamentNews } from '../models/tournament-news';\nimport { Game, GameStatuses } from '../models/game';\nimport { GameTimelineStages } from '../models/game-timeline-stages';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TournamentStage } from '../models/tournament-stage';\nimport { Playoff } from '../models/playoff';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\nimport { TournamentStageTeam } from '../models/tournament-stage-team';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { ConfigService } from '../services/config.service';\nimport { HockeyStatistic } from '../models/hockey-statistic';\nimport { FootballStatistic } from '../models/football-statistic';\nimport { LeagueUserPermissions } from '../models/league-user';\nimport { HandballStatistic } from '../models/handball-statistic';\nimport { RugbyStatistic } from '../models/rugby-statistic';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { TeamAchievement } from '../models/team-achievement';\nimport { WaterpoloStatistic } from '../models/waterpolo-statistic';\nimport { TournamentRound } from '../models/tournament-round';\nimport { TournamentDivision } from '../models/tournament-division';\nimport { UserGender } from '../models/user';\n\nexport interface TournamentGamesFilters {\n tournamentIds?: number[];\n tournamentSeasonId?: number;\n tournamentStageId?: number;\n tournamentRoundId?: number;\n divisionId?: number;\n tournamentTour?: number;\n teamId?: number;\n playoffStage?: number;\n playoffRound?: number;\n playoffId?: number;\n isPlayoff?: boolean;\n status?: GameStatuses;\n statuses?: GameStatuses[];\n tournamentCourtId?: number;\n leaguePlayerId?: number;\n userId?: number;\n query?: string;\n}\n\nexport type StatisticGroupByTypes = 'team' | 'user' | 'team_user' | 'tournament_team' | 'league_player' | 'tournament_team_user'\n | 'month' | 'win_loses';\n\nexport interface StatisticFilters {\n league_id?: number;\n tournament_id?: number;\n tournament_ids?: number[];\n tournament_season_id?: number;\n tournament_team_id?: number;\n league_player_id?: number;\n tournament_team_user_id?: number;\n team_id?: number;\n team_user_id?: number;\n user_id?: number;\n tournament_stage_id?: number;\n tournament_round_id?: number;\n division_id?: number;\n tournament_group_id?: number;\n tournament_tour?: number;\n playoff_stage?: number;\n playoff_round?: number;\n playoff_id?: number;\n is_playoff?: boolean;\n date_from?: string;\n date_to?: string;\n query?: string;\n gender?: UserGender;\n per_game?: boolean;\n group_by: StatisticGroupByTypes;\n order_by?: string;\n page?: number;\n size?: number;\n}\n\nexport interface StatisticLeadersFilters {\n tournament_id?: number;\n tournament_ids?: number[];\n tournament_season_id?: number;\n tournament_team_id?: number;\n team_id?: number;\n tournament_stage_id?: number;\n tournament_tour?: number;\n playoff_stage?: number;\n playoff_id?: number;\n date_from?: string;\n date_to?: string;\n per_game?: boolean;\n group_by: StatisticGroupByTypes;\n size?: number;\n fields: string[];\n}\n\nexport interface TournamentEventsListFilter {\n event?: TournamentEventTypes;\n search?: string;\n tournamentTour?: number;\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(tournamentId: number): Promise<Tournament> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/`)\n .pipe(map(result => Tournament.toFront(result)))\n .toPromise();\n }\n\n async getByAlias(leagueId: number, alias: string): Promise<Tournament> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/${alias}/`)\n .pipe(map(result => Tournament.toFront(result)))\n .toPromise();\n }\n\n async getSeasonTournaments(seasonTournamentId: number): Promise<Tournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/season_tournament/${seasonTournamentId}/tournaments/`)\n .pipe(map(result => Tournament.toFront(result)))\n .toPromise();\n }\n\n async getNews(tournamentId: number): Promise<TournamentNews[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/news/`)\n .pipe(map(result => TournamentNews.toFront(result)))\n .toPromise();\n }\n\n async getEvents(tournamentId: number, page: number, size: number, filters?: TournamentEventsListFilter): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/events/`, {params, observe: 'response'})\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentEvent.toFront(result.body)\n })))\n .toPromise();\n }\n\n async getTournamentStages(tournamentId: number): Promise<TournamentStage[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/stages/`).pipe(\n map(data => TournamentStage.toFront(data))\n ).toPromise();\n }\n\n async getTournamentRounds(tournamentId: number): Promise<TournamentRound[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/rounds/`).pipe(\n map(data => TournamentRound.toFront(data)),\n ).toPromise();\n }\n\n async getTournamentDivisions(tournamentId: number): Promise<TournamentDivision[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/divisions/`).pipe(\n map(data => TournamentDivision.toFront(data)),\n ).toPromise();\n }\n\n async getPlayoff(tournamentId: number): Promise<Playoff[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/playoff/`).pipe(\n map(result => Playoff.toFront(result))\n ).toPromise();\n }\n\n async getPlayoffGames(playoffId: number, playoffNumber?: string): Promise<Game[]> {\n let params = new HttpParams();\n if (playoffNumber) {\n params = params.set('playoff_number', playoffNumber);\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_playoff/${playoffId}/games/`,\n {params}\n ).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getGamesStages(tournamentId: number, roundId?: number): Promise<GameTimelineStages> {\n let params = new HttpParams();\n if (roundId) {\n params = params.set('tournament_round_id', roundId.toString());\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games_stages/`,\n {params}\n )\n .pipe(map(data => GameTimelineStages.toFront(data)))\n .toPromise();\n }\n\n async getGames(tournamentId: number, page: number, size: number, filters: TournamentGamesFilters = {}): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games/`, {params, observe: 'response'})\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))).toPromise();\n }\n\n async getGamesDates(tournamentId: number): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games_dates/`,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body\n }))\n ).toPromise();\n }\n\n async getGroups(tournamentId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/groups/`)\n .pipe(map(result => TournamentGroup.toFront(result)))\n .toPromise();\n }\n\n async getTeams(tournamentId: number, groupId?: number, short?: boolean): Promise<TournamentTeam[]> {\n let params = new HttpParams();\n if (groupId) {\n params = params.set('group_id', groupId.toString());\n }\n if (short) {\n params = params.set('short', '1');\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/teams/`, {params})\n .pipe(map(result => TournamentTeam.toFront(result)))\n .toPromise();\n }\n\n async getStageTeams(tournamentId: number): Promise<TournamentStageTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/stage_teams/`)\n .pipe(map(result => TournamentStageTeam.toFront(result)))\n .toPromise();\n }\n\n async getTeamsAchievements(tournamentId: number): Promise<TeamAchievement[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/achievements/`)\n .pipe(map(result => TeamAchievement.toFront(result)))\n .toPromise();\n }\n\n async getTeamById(tournamentTeamId: number): Promise<TournamentTeam> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/`)\n .pipe(map(result => TournamentTeam.toFront(result)))\n .toPromise();\n }\n\n async getUserById(userId: number): Promise<TournamentTeamUser> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${userId}/`)\n .pipe(map(result => TournamentTeamUser.toFront(result)))\n .toPromise();\n }\n\n async getUserGames(tournamentUserId: number): Promise<Game[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${tournamentUserId}/games/`)\n .pipe(map(result => Game.toFront(result)))\n .toPromise();\n }\n\n async downloadTable(tournamentId: number, format: 'pdf' | 'xlsx', isChess?: boolean): Promise<any> {\n let httpParams = new HttpParams().set('file_type', format);\n if (isChess) {\n httpParams = httpParams.set('isChess', true);\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/table_file/`, {\n params: httpParams,\n responseType: 'blob'\n }).toPromise();\n }\n\n async getBasketballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: BasketballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/basketball_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = BasketballStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getVolleyballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: VolleyballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/volleyball_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = VolleyballStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getHockeyStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: HockeyStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/hockey_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = HockeyStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getFootballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: FootballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/football_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = FootballStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getHandballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: HandballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/handball_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = HandballStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getWaterpoloStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: WaterpoloStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/waterpolo_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = WaterpoloStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getBasketballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<BasketballStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/basketball_statistic/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: BasketballStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getVolleyballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<VolleyballStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/volleyball_statistic/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: VolleyballStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getHockeyStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<HockeyStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/hockey_statistic/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: HockeyStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getFootballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<FootballStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/football_statistic/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: FootballStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getHandballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<HandballStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/handball_statistic/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: HandballStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getRugbyStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<RugbyStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/rugby_statistic/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: RugbyStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getWaterpoloStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<WaterpoloStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/waterpolo_statistic/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: WaterpoloStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getTournamentTeamUsers(tournamentTeamId: number): Promise<TournamentTeamUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/users/`).pipe(\n map(result => TournamentTeamUser.toFront(result))\n ).toPromise();\n }\n\n async myPermission(tournamentId: number): Promise<LeagueUserPermissions[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/permission/`).pipe(\n map((data: any) => (data.permissions || []).map(item => LeagueUserPermissions[item]))\n ).toPromise();\n }\n\n async getTournamentTeamTournaments(tournamentTeamId: number): Promise<Tournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/tournaments/`).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n async getTournamentUserTournaments(tournamentTeamUserId: number): Promise<Tournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${tournamentTeamUserId}/tournaments/`).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n}\n\nexport function applyGamesFilters(filters: TournamentGamesFilters, params: HttpParams): HttpParams {\n if (filters.tournamentIds) {\n params = params.set('tournament_ids', filters.tournamentIds.join(','));\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.tournamentRoundId) {\n params = params.set('tournament_round_id', filters.tournamentRoundId.toString());\n }\n if (filters.divisionId) {\n params = params.set('division_id', filters.divisionId.toString());\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.playoffRound) {\n params = params.set('playoff_round', filters.playoffRound.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n if (filters.statuses) {\n const statuses = filters.statuses.map(i => GameStatuses[i]);\n params = params.set('statuses', statuses.join(','));\n }\n if (filters.tournamentCourtId) {\n params = params.set('tournament_court_id', filters.tournamentCourtId.toString());\n }\n if (filters.leaguePlayerId) {\n params = params.set('league_player_id', filters.leaguePlayerId.toString());\n }\n if (filters.userId) {\n params = params.set('user_id', filters.userId.toString());\n }\n if (filters.query) {\n params = params.set('query', filters.query);\n }\n if (filters.isPlayoff !== undefined && filters.isPlayoff !== null) {\n params = params.set('is_playoff', filters.isPlayoff ? '1' : '0');\n }\n return params;\n}\n\nexport function applyStatisticFilters(filters: StatisticFilters, params: HttpParams): HttpParams {\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n params = params.set(key, filters[key]);\n }\n }\n\n if (filters.per_game !== undefined) {\n params = params.set('per_game', filters.per_game ? '1' : '0');\n }\n\n if (filters.tournament_ids) {\n params = params.set('tournament_ids', filters.tournament_ids.join(','));\n }\n\n if (filters.is_playoff !== undefined && filters.is_playoff !== null) {\n params = params.set('is_playoff', filters.is_playoff ? '1' : '0');\n }\n\n return params;\n}\n\nexport function applyStatisticLeadersFilters(filters: StatisticLeadersFilters, params: HttpParams): HttpParams {\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n params = params.set(key, filters[key]);\n }\n }\n\n if (filters.per_game !== undefined) {\n params = params.set('per_game', filters.per_game ? '1' : '0');\n }\n\n if (filters.tournament_ids) {\n params = params.set('tournament_ids', filters.tournament_ids.join(','));\n }\n if (filters.fields) {\n params = params.set('fields', filters.fields.join(','));\n }\n return params;\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n picture: 'picture',\n link: 'link',\n sort: 'sort',\n },\n relation: {\n picture: File\n }\n})\nexport class LeaguePartner extends BaseModel {\n id: number;\n title: string;\n picture: File;\n link: string;\n sort: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import {ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField} from './util';\nimport {File} from './file';\n\nexport enum BannerLocation {\n slider = 'slider',\n central = 'central',\n media = 'media',\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n picture: 'picture',\n link: 'link',\n sort: 'sort',\n location: 'location',\n },\n relation: {\n picture: File,\n location: enumField(BannerLocation),\n }\n})\nexport class LeagueBanner extends BaseModel {\n id: number;\n title: string;\n picture: File;\n link: string;\n sort: number;\n location: BannerLocation;\n\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n file: 'file',\n },\n relation: {\n file: File,\n }\n})\nexport class LeagueDocument extends BaseModel {\n id: number;\n file: File;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { Team } from './team';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n teams: 'teams',\n league_players: 'leaguePlayers',\n },\n relation: {\n teams: listField(Team),\n leaguePlayers: listField(LeaguePlayer),\n }\n})\nexport class TeamsAndUsers extends BaseModel {\n teams: Team[];\n leaguePlayers: LeaguePlayer[];\n\n get isEmpty(): boolean {\n return (!this.teams || this.teams.length === 0) &&\n (!this.leaguePlayers || this.leaguePlayers.length === 0);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n },\n})\nexport class SeasonTournament extends BaseModel {\n id: number;\n name: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { League } from '../models/league';\nimport { map } from 'rxjs/operators';\nimport { Tournament, TournamentStatuses } from '../models/tournament';\nimport { ConfigService } from '../services/config.service';\nimport { applyGamesFilters, TournamentEventsListFilter, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { GameMediaFilters } from './media-api';\nimport { TournamentSeason } from '../models/tournament-season';\nimport { Game, GameStatuses } from '../models/game';\nimport { LeaguePartner } from '../models/league-partner';\nimport { LeagueCourt } from '../models/league-court';\nimport { BannerLocation, LeagueBanner } from '../models/league-banner';\nimport { LeagueDocument } from '../models/league-document';\nimport { TeamsAndUsers } from '../models/teams-and-users';\nimport { SeasonTournament } from '../models/season-tournament';\n\nexport interface TournamentListFilters {\n statuses: TournamentStatuses[];\n}\n\n@Injectable({providedIn: 'root'})\nexport class LeagueApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getByAlias(alias: string): Promise<League> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${alias}/`).pipe(\n map(result => League.toFront(result))\n ).toPromise();\n }\n\n async getByDomain(domain: string): Promise<League> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/by_domain/${domain}/`).pipe(\n map(result => League.toFront(result))\n ).toPromise();\n }\n\n async getSeasonTournaments(leagueId: number): Promise<SeasonTournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/season_tournaments/`).pipe(\n map(response => SeasonTournament.toFront(response)),\n ).toPromise();\n }\n\n async getTournaments(leagueId: number, filters?: TournamentListFilters): Promise<Tournament[]> {\n let params = new HttpParams();\n if (filters) {\n if (filters.statuses) {\n params = params.set('statuses', filters.statuses.map(s => TournamentStatuses[s]).join(','));\n }\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/`, {params}).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n async getEvents(leagueId: number, page: number, size: number, filters?: TournamentEventsListFilter): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/events/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentEvent.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getTournamentSeasons(leagueId: number): Promise<TournamentSeason[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/`).pipe(\n map(result => TournamentSeason.toFront(result))\n ).toPromise();\n }\n\n async getGames(leagueId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/games/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getSeasons(leagueId: number, page = 1, size = 20, notClosed?: boolean, include?: string[]): Promise<PaginatedResponse<TournamentSeason[]>> {\n const params = new HttpParams()\n .set('page', page.toString())\n .set('size', size.toString())\n .set('not_closed', notClosed ? '1' : '')\n .set('include', include ? include.join(',') : '');\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/`, {\n params,\n observe: 'response'\n })\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentSeason.toFront(result.body)\n })))\n .toPromise();\n }\n\n async getPartners(leagueId: number): Promise<LeaguePartner[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/partners/`).pipe(\n map(result => LeaguePartner.toFront(result))\n ).toPromise();\n }\n\n async getBanners(leagueId: number, location?: BannerLocation): Promise<LeagueBanner[]> {\n const params = location ? new HttpParams().set('location', location) : new HttpParams();\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/banners/`, {params}).pipe(\n map(result => LeagueBanner.toFront(result))\n ).toPromise();\n }\n\n async getCourts(leagueId: number): Promise<LeagueCourt[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/courts/`).pipe(\n map(result => LeagueCourt.toFront(result))\n ).toPromise();\n }\n\n async getGraphicSettings(leagueId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/graphic_settings/`)\n .toPromise();\n }\n\n async getDocuments(leagueId: number): Promise<LeagueDocument[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/documents/`).pipe(\n map(result => LeagueDocument.toFront(result))\n ).toPromise();\n }\n\n async searchTeamsAndUsers(leagueId: number, query: string): Promise<TeamsAndUsers> {\n const params = (new HttpParams()).set('query', query);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/team_and_user_search/`, {params}\n ).pipe(\n map(result => TeamsAndUsers.toFront(result))\n ).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { LeagueNews, LeagueNewsType } from '../models/league-news';\nimport { map } from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class LeagueNewsApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getLeagueNewsList(leagueId: number, page: number, size: number, type: LeagueNewsType = LeagueNewsType.text, seasonId?: number): Promise<PaginatedResponse<LeagueNews[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString())\n .set('type', LeagueNewsType[type]);\n if (seasonId) {\n params = params.set('season', seasonId.toString());\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/`, {params, observe: 'response'})\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: LeagueNews.toFront(response.body)\n })))\n .toPromise();\n }\n\n async getMainLeagueNews(leagueId: number): Promise<LeagueNews> {\n return this.httpClient.get<any[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/?is_main=true`)\n .pipe(map(response => response && response.length > 0 ? LeagueNews.toFront(response[0]) : null))\n .toPromise();\n }\n\n async getMainLeagueNewsList(leagueId: number): Promise<LeagueNews[]> {\n return this.httpClient.get<any[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/?is_main=true`)\n .pipe(map(response => LeagueNews.toFront(response)))\n .toPromise();\n }\n\n async getNewsById(newsId: number): Promise<LeagueNews> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_news/${newsId}/`)\n .pipe(map(response => LeagueNews.toFront(response)))\n .toPromise();\n }\n\n async getTournamentNewsList(tournamentId: number): Promise<PaginatedResponse<LeagueNews[]>> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/news/`, {observe: 'response'})\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: LeagueNews.toFront(response.body)\n })))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { LeaguePlayer } from '../models/league-player';\nimport { map } from 'rxjs/operators';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\n\n@Injectable({providedIn: 'root'})\nexport class LeaguePlayerApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n getById(leaguePlayerId: number): Promise<LeaguePlayer> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_player/${leaguePlayerId}/`).pipe(\n map(item => LeaguePlayer.toFront(item))\n ).toPromise();\n }\n\n getTournamentUsers(leaguePlayerId: number, seasonId?: number): Promise<TournamentTeamUser[]> {\n let params = new HttpParams();\n if (seasonId) {\n params = params.set('season_id', seasonId.toString());\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_player/${leaguePlayerId}/tournament_users/`, {params}).pipe(\n map(item => TournamentTeamUser.toFront(item))\n ).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { MediaItem } from '../models/media-item';\nimport { Game, GameStatuses } from '../models/game';\nimport { map } from 'rxjs/operators';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { ConfigService } from '../services/config.service';\nimport { applyGamesFilters, TournamentGamesFilters } from './tournament-api';\n\nexport interface GameMediaFilters extends TournamentGamesFilters {\n mediaCount?: number;\n}\n\nexport interface MediaFilters {\n mediaType?: 'photo' | 'video' | 'live_video';\n sort?: string;\n teamId?: number;\n statuses?: GameStatuses[];\n}\n\n@Injectable({providedIn: 'root'})\nexport class MediaApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getMedia(mediaId: number): Promise<MediaItem> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/media/${mediaId}/`).pipe(\n map(result => MediaItem.toFront(result))\n ).toPromise();\n }\n\n async getTournamentGameMedia(tournamentId: number, page: number, size: number, filters?: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n params = applyGameMediaFilters(filters, params);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/game_media/`, {observe: 'response', params}).pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n })\n ).toPromise();\n }\n\n async getLeagueGameMedia(leagueId: number, page: number, size: number, filters?: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n params = applyGameMediaFilters(filters, params);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/game_media/`, {observe: 'response', params}).pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n })\n ).toPromise();\n }\n\n async getLeagueMedia(leagueId: number, page: number, size: number, filters: MediaFilters = {}): Promise<PaginatedResponse<MediaItem[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n if (filters.mediaType) {\n params = params.set('media_type', filters.mediaType);\n }\n if (filters.sort) {\n params = params.set('sort', filters.sort);\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.statuses) {\n const statuses = filters.statuses.map(i => GameStatuses[i]);\n params = params.set('statuses', statuses.join(','));\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/media/`, {params, observe: 'response'})\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: MediaItem.toFront(response.body)\n }))).toPromise();\n }\n\n async getGameMediaById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/game_media/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getGameMedia(gameId: number): Promise<MediaItem[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/media/?size=1000`).pipe(\n map(result => MediaItem.toFront(result))\n ).toPromise();\n }\n\n async createZip(mediaIds: number[]): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/media/zip/`, mediaIds, { responseType: 'blob' })\n .toPromise();\n }\n\n async downloadMedia(mediaId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/media/${mediaId}/download/`,{responseType: 'blob'})\n .toPromise();\n }\n}\n\nexport function applyGameMediaFilters(filters: GameMediaFilters, params: HttpParams, ): HttpParams {\n if (filters) {\n params = applyGamesFilters(filters, params);\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.playoffId) {\n params = params.set('playoff_id', filters.playoffId.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.playoffRound) {\n params = params.set('playoff_round', filters.playoffRound.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n if (filters.mediaCount) {\n params = params.set('media_count', filters.mediaCount.toString());\n }\n }\n return params;\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField } from './util';\nimport { User } from './user';\n\nexport enum PollStatuses {\n open = 1,\n closed,\n archived,\n}\n\n@ModelInstance({\n mappingFields: {\n uuid: 'uuid',\n name: 'name'\n }\n})\nexport class PollVariant extends BaseModel {\n uuid: string;\n name: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n answer_uuid: 'answerUuid',\n user: 'user',\n poll_id: 'pollId',\n },\n relation: {\n user: User\n }\n})\nexport class PollAnswer extends BaseModel {\n id: number;\n answerUuid: string;\n user: User;\n pollId: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n active: 'active',\n status: 'status',\n team_id: 'teamId',\n name: 'name',\n description: 'description',\n variants: 'variants',\n author: 'author',\n answers: 'answers',\n multiple_answer: 'multipleAnswer',\n anonymous: 'anonymous',\n created_at: 'createdAt'\n },\n relation: {\n status: enumField(PollStatuses),\n variants: PollVariant,\n author: User,\n answers: PollAnswer,\n createdAt: DateTimeField,\n }\n})\nexport class Poll extends BaseModel {\n id: number;\n active: boolean;\n teamId: number;\n status: PollStatuses;\n name: string;\n description: string;\n _variants: PollVariant[];\n author: User;\n _answers: PollAnswer[];\n multipleAnswer: boolean;\n anonymous: boolean;\n createdAt: Date;\n variantsWithAnswers: {variant: PollVariant, percent: number}[] = [];\n\n set variants(value: PollVariant[]) {\n this._variants = value || [];\n if (this._answers) {\n this.calculateAnswersPercentage();\n }\n }\n get variants(): PollVariant[] {\n return this._variants;\n }\n\n set answers(value: PollAnswer[]) {\n this._answers = value || [];\n if (this._variants) {\n this.calculateAnswersPercentage();\n }\n }\n get answers(): PollAnswer[] {\n return this._answers;\n }\n\n calculateAnswersPercentage() {\n if (!this._answers.length) {\n return;\n }\n\n const variants = this._variants.map(v => v.uuid);\n const answersByVariant = this._answers.reduce((acc, item) => {\n if (variants.indexOf(item.answerUuid) < 0) {\n return acc;\n }\n if (!acc[item.answerUuid]) {\n acc[item.answerUuid] = 0;\n }\n acc[item.answerUuid]++;\n return acc;\n }, {});\n this.variantsWithAnswers = this._variants.map(item => ({\n variant: item,\n percent: answersByVariant[item.uuid] ? Math.round(100 * answersByVariant[item.uuid] / this._answers.length) : 0\n }))\n .sort((a, b) => a.percent > b.percent ? -1 : 1);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { User } from './user';\nimport { Team } from './team';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n user: 'user',\n team: 'team',\n team_id: 'teamId',\n user_accept: 'userAccept',\n team_accept: 'teamAccept',\n users_count: 'usersCount',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n score_sum: 'scoreSum',\n created_at: 'createdAt',\n updated_at: 'updatedAt',\n },\n relation: {\n user: User,\n team: Team,\n createdAt: DateTimeField,\n updateAt: DateTimeField,\n }\n})\nexport class TeamInvite extends BaseModel {\n id: number;\n userId: number;\n user: User;\n teamId: number;\n team: Team;\n userAccept: boolean;\n teamAccept: boolean;\n usersCount: number;\n gamesCount: number;\n wonGamesCount: number;\n scoreSum: number;\n createdAt: Date;\n updatedAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { TeamUser } from './team-user';\nimport { Game } from './game';\n\nexport enum GameInviteStatus {\n accepted = 1,\n declined,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_user: 'teamUser',\n game_id: 'gameId',\n game: 'game',\n status: 'status',\n },\n relation: {\n game: Game,\n teamUser: TeamUser,\n status: enumField(GameInviteStatus),\n }\n})\nexport class GameInvite extends BaseModel {\n id: number;\n teamUser: TeamUser;\n gameId: number;\n game: Game;\n status: GameInviteStatus;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","export enum TeamEventTypes {\n training = 1,\n other = 2,\n}\n","import { TeamEventTypes } from '../models/team-event-type';\n\nexport const TeamEventTypeLocalization = {\n [TeamEventTypes.training]: 'Тренировка',\n [TeamEventTypes.other]: 'Другое'\n};\n","import { BaseModel, enumField, ModelInstance, DateTimeField, ToBackHook, ToFrontHook } from './util';\nimport { Team } from './team';\nimport { TeamEventTypeLocalization } from '../localization/team-event-type';\nimport { TeamEventTypes } from './team-event-type';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n team: 'team',\n event_type: 'eventType',\n event_custom_name: 'eventCustomName',\n description: 'description',\n datetime: 'datetime',\n location: 'location',\n },\n relation: {\n eventType: enumField(TeamEventTypes),\n team: Team,\n datetime: DateTimeField,\n }\n})\nexport class TeamEvent extends BaseModel {\n id: number;\n teamId: number;\n team: Team;\n eventType: TeamEventTypes;\n eventCustomName: string;\n description: string;\n datetime: Date;\n location: string;\n\n get name(): string {\n if (this.eventType === TeamEventTypes.other) {\n return this.eventCustomName;\n }\n return TeamEventTypeLocalization[this.eventType];\n }\n\n get isClosed(): boolean {\n return this.datetime.getTime() < new Date().getTime();\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum TeamEventInviteStatuses {\n accepted = 1,\n declined = 2\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_event_id: 'teamEventId',\n team_user_id: 'teamUserId',\n status: 'status',\n },\n relation: {\n status: enumField(TeamEventInviteStatuses)\n }\n})\nexport class TeamEventInvite {\n id: number;\n teamEventId: number;\n teamUserId: number;\n status: TeamEventInviteStatuses;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook } from './util';\nimport { TeamUser } from './team-user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team_invite_id: 'tournamentTeamInviteId',\n tournament_team_id: 'tournamentTeamId',\n team_user: 'teamUser',\n accepted: 'accepted'\n },\n relation: {\n teamUser: TeamUser\n }\n})\nexport class TournamentTeamUserInvite extends BaseModel {\n id: number;\n tournamentTeamInviteId: number;\n tournamentTeamId: number;\n teamUser: TeamUser;\n accepted: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Team } from './team';\nimport { Tournament } from './tournament';\nimport { TournamentTeamUserInvite } from './tournament-team-user-invite';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team: 'team',\n tournament: 'tournament',\n team_accept: 'teamAccept',\n organization_accept: 'organizationAccept',\n user_invites_count: 'userInvitesCount',\n user_invites: 'userInvites',\n notifications_count: 'notificationsCount',\n },\n relation: {\n team: Team,\n tournament: Tournament,\n userInvites: TournamentTeamUserInvite,\n }\n})\nexport class TournamentInvite extends BaseModel {\n id: number;\n team: Team;\n tournament: Tournament;\n teamAccept: boolean;\n organizationAccept: boolean;\n userInvitesCount: number;\n userInvites: TournamentTeamUserInvite[];\n notificationsCount: number;\n\n get isOpen(): boolean {\n return (this.teamAccept === null || this.organizationAccept === null) && this.teamAccept !== false && this.organizationAccept !== false;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField } from './util';\nimport { Team } from './team';\nimport { Poll } from './poll';\nimport { Game } from './game';\nimport { TeamInvite } from './team-invite';\nimport { TeamUser } from './team-user';\nimport { GameInvite } from './game-invite';\nimport { TeamEvent } from './team-event';\nimport { TeamEventInvite } from './team-event-invite';\nimport { Tournament } from './tournament';\nimport { TournamentInvite } from './tournament-invite';\nimport { TournamentTeam } from './tournament-team';\nimport { User } from './user';\n\nexport enum NotificationType {\n team_updated = 1,\n team_invited,\n team_join_request,\n team_join_declined_by_team,\n team_join_declined_by_user,\n team_join_canceled_by_team,\n team_join_canceled_by_user,\n team_joined_for_user,\n team_joined_for_team,\n team_user_role_changed_for_user,\n team_user_role_changed_for_team,\n team_user_number_changed,\n team_user_deleted_for_user,\n team_user_deleted_for_team,\n team_user_left,\n\n game_updated,\n game_invited,\n game_invite_accepted,\n game_invite_declined,\n game_remind,\n game_won,\n game_losing,\n game_tech_defeat,\n game_tech_victory,\n\n poll_created,\n poll_closed,\n\n team_event_invited,\n team_event_accepted,\n team_event_declined,\n team_event_remind,\n\n tournament_invited,\n tournament_joined,\n tournament_join_declined,\n tournament_join_canceled,\n tournament_user_invited,\n tournament_user_accepted_for_team,\n tournament_user_accepted_for_user,\n tournament_user_added,\n tournament_user_declined_for_team,\n tournament_user_declined_for_user,\n tournament_user_invite_deleted,\n tournament_user_deleted,\n tournament_user_disqualified_for_team,\n tournament_user_disqualified_for_user,\n tournament_user_disqualification_updated_for_team,\n tournament_user_disqualification_updated_for_user,\n tournament_team_deleted,\n\n org_tournament_invite_created,\n org_tournament_invite_declined,\n org_tournament_invite_deleted,\n org_tournament_invite_changed,\n org_tournament_user_deleted,\n org_tournament_user_invited,\n org_tournament_user_has_changes,\n org_tournament_team_leave,\n}\n\nexport enum NotificationServiceEnum {\n public = 1,\n org\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n event_type: 'event',\n data: 'data',\n initiator: 'initiator',\n team: 'team',\n team_invite: 'teamInvite',\n team_user: 'teamUser',\n poll: 'poll',\n game: 'game',\n game_invite: 'gameInvite',\n team_event: 'teamEvent',\n team_event_invite: 'teamEventInvite',\n tournament: 'tournament',\n tournament_invite: 'tournamentInvite',\n tournament_team: 'tournamentTeam',\n viewed: 'viewed',\n protected: 'protected',\n service: 'service',\n created_at: 'createdAt',\n },\n relation: {\n event: enumField(NotificationType),\n initiator: User,\n team: Team,\n teamInvite: TeamInvite,\n teamUser: TeamUser,\n poll: Poll,\n game: Game,\n gameInvite: GameInvite,\n teamEvent: TeamEvent,\n teamEventInvite: TeamEventInvite,\n tournament: Tournament,\n tournamentInvite: TournamentInvite,\n tournamentTeam: TournamentTeam,\n service: enumField(NotificationServiceEnum),\n createdAt: DateTimeField,\n }\n})\nexport class Notification extends BaseModel {\n id: number;\n event: NotificationType;\n data: any;\n initiator: User;\n team: Team;\n teamInvite: TeamInvite;\n teamUser: TeamUser;\n poll: Poll;\n game: Game;\n gameInvite: GameInvite;\n teamEvent: TeamEvent;\n teamEventInvite: TeamEventInvite;\n tournament: Tournament;\n tournamentInvite: TournamentInvite;\n tournamentTeam: TournamentTeam;\n viewed: boolean;\n protected: boolean;\n service: NotificationServiceEnum;\n createdAt: Date;\n\n get important(): boolean {\n return true;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum NotificationAllowTypes {\n all = 1,\n important,\n none\n}\n\n@ModelInstance({\n mappingFields: {\n user_id: 'userId',\n popup: 'popup',\n sound: 'sound',\n browser: 'browser',\n email: 'email'\n },\n relation: {\n sound: enumField(NotificationAllowTypes),\n browser: enumField(NotificationAllowTypes),\n }\n})\nexport class NotificationSettings extends BaseModel {\n userId: number;\n popup: boolean;\n sound: NotificationAllowTypes;\n browser: NotificationAllowTypes;\n email: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { Notification } from '../models/notification';\nimport { NotificationSettings } from '../models/notification-settings';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { ConfigService } from '../services/config.service';\n\nexport interface NotificationFilters {\n protected?: boolean;\n not_viewed?: boolean;\n important?: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class NotificationBaseApi {\n protected apiUrl: string;\n\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCount(): Promise<number> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/count/`)\n .pipe(map(data => +data))\n .toPromise();\n }\n\n async getList(page: number, size: number, filters: NotificationFilters = {}): Promise<PaginatedResponse<Notification[]>> {\n let params = new HttpParams()\n .set('page', page.toString())\n .set('size', size.toString());\n for (const key of Object.keys(filters)) {\n params = params.set(key, filters[key]);\n }\n\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/`, {params, observe: 'response'})\n .pipe(\n map(response => {\n const data: Notification[] = Notification.toFront(response.body);\n return {\n total: +response.headers.get('x-page-count'),\n data\n };\n }),\n ).toPromise();\n }\n\n async markViewed(notificationId: number, viewed: boolean): Promise<Notification> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/${notificationId}/viewed/`, {viewed})\n .pipe(map(data => Notification.toFront(data)))\n .toPromise();\n }\n\n async markAllViewed(): Promise<Notification[]> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/viewed/`, {})\n .pipe(map(data => Notification.toFront(data)))\n .toPromise();\n }\n\n async getNotificationSettings(): Promise<NotificationSettings> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification_settings/`)\n .pipe(map(data => NotificationSettings.toFront(data)))\n .toPromise();\n }\n\n async updateNotificationSettings(data: NotificationSettings): Promise<NotificationSettings> {\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}${this.apiUrl}/notification_settings/`,\n NotificationSettings.toBack(data)\n )\n .pipe(map(result => NotificationSettings.toFront(result)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NotificationBaseApi } from './notification-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class NotificationApi extends NotificationBaseApi {\n protected apiUrl = '/api/v1';\n}\n","import { Injectable } from '@angular/core';\nimport { NotificationBaseApi } from './notification-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class OrgNotificationApi extends NotificationBaseApi {\n protected apiUrl = '/org/api/v1';\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\nimport { City } from '../models/city';\nimport { Sport } from '../models/sport';\n\n@Injectable({providedIn: 'root'})\nexport class ReferenceApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCities(): Promise<City[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/reference/cities/`)\n .pipe(\n map(data => City.toFront(data))\n ).toPromise();\n }\n\n async getSports(): Promise<Sport[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/sport/`)\n .pipe(\n map(data => Sport.toFront(data))\n ).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { RugbyStatistic } from './rugby-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: RugbyStatistic,\n competitorTeam: RugbyStatistic\n }\n})\nexport class RugbyGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: RugbyStatistic;\n competitorTeam: RugbyStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n updated_at: 'updatedAt',\n points: 'points',\n tries: 'tries',\n penalty_tries: 'penaltyTries',\n conversion_goals: 'conversionGoals',\n conversion_misses: 'conversionMisses',\n penalty_misses: 'penaltyMisses',\n penalty_goals: 'penaltyGoals',\n drop_goals: 'dropGoals',\n drop_goal_misses: 'dropGoalMisses',\n free_kicks: 'freeKicks',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n offloads: 'offloads',\n tackles: 'tackles',\n handling_errors: 'handlingErrors',\n carries_over_gainline: 'carriesOverGainline',\n foot_field_shots: 'footFieldShots',\n foot_out_shots: 'footOutShots',\n fouls: 'fouls',\n team_fouls: 'teamFouls',\n game_time: 'gameTime',\n plus_minus: 'plusMinus'\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class RugbyGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n tries: number;\n penaltyTries: number;\n conversionGoals: number;\n conversionMisses: number;\n penaltyMisses: number;\n penaltyGoals: number;\n dropGoals: number;\n dropGoalMisses: number;\n freeKicks: number;\n yellowCards: number;\n redCards: number;\n offloads: number;\n tackles: number;\n handlingErrors: number;\n carriesOverGainline: number;\n footFieldShots: number;\n footOutShots: number;\n fouls: number;\n teamFouls: number;\n gameTime: number;\n plusMinus: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get conversionKicks(): number {\n return (this.conversionGoals || 0) + (this.conversionMisses || 0);\n }\n\n get conversionGoalsPercent(): number {\n if (!this.conversionKicks) {\n return 0;\n }\n return Math.floor(1000 * this.conversionGoals / this.conversionKicks) / 10;\n }\n\n get penaltyKicksOnGoal(): number {\n return (this.penaltyGoals || 0) + (this.penaltyMisses || 0);\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penaltyKicksOnGoal) {\n return 0;\n }\n return Math.floor(1000 * this.penaltyGoals / this.penaltyKicksOnGoal) / 10;\n }\n\n get dropGoalKicks(): number {\n return (this.dropGoals || 0) + (this.dropGoalMisses || 0);\n }\n\n get dropGoalsPercent(): number {\n if (!this.dropGoalKicks) {\n return 0;\n }\n return Math.floor(1000 * this.dropGoals / this.dropGoalKicks) / 10;\n }\n\n get totalGoals(): number {\n return (this.conversionGoals || 0) + (this.dropGoals || 0) + (this.penaltyGoals || 0);\n }\n\n get footShots(): number {\n return (this.footFieldShots || 0) + (this.footOutShots || 0);\n }\n\n get totalFouls(): number {\n return (this.fouls || 0) + (this.teamFouls || 0);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, listField, enumField } from './util';\n\nexport enum RugbyFoulSanctions {\n scrum = 1,\n lineout,\n free_kick,\n penalty_shot,\n yellow_card,\n red_card,\n start_kick,\n twenty_two_meters_kick,\n conversion_cancel\n}\n\nexport enum RugbyFoulGameStage {\n start_kick= 1,\n open_game,\n tackle,\n ruck_or_maul,\n scrum,\n out_and_lineout,\n scoring_field,\n kick_on_goal,\n free_kick,\n team,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n sanction: 'sanction',\n game_stage: 'gameStage',\n },\n relation: {\n sanction: listField(enumField(RugbyFoulSanctions)),\n gameStage: enumField(RugbyFoulGameStage),\n }\n})\nexport class RugbyFoulType extends BaseModel {\n id: number;\n name: string;\n sanction: RugbyFoulSanctions[];\n gameStage: RugbyFoulGameStage;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\nimport { RugbyFoulGameStage, RugbyFoulSanctions, RugbyFoulType } from './rugby-foul-type';\n\nexport enum RugbyGameLogTypes {\n enter_game = 1,\n exit_game,\n try,\n penalty_try,\n conversion_goal,\n conversion_miss,\n penalty_miss,\n penalty_goal,\n drop_goal,\n drop_goal_miss,\n free_kick,\n foul,\n yellow_card,\n red_card,\n offload,\n tackle,\n handling_error,\n carries_over_gainline,\n bleeding_injury,\n head_injury,\n end_game_penalty_miss,\n end_game_penalty_goal,\n foot_field_shot,\n foot_out_shot,\n\n // team actions\n timeout,\n tap_penalty,\n penalty_kick_to_touch,\n scrum_won,\n scrum_lost,\n scrum_won_free,\n lineout_won,\n lineout_lost,\n quick_throw,\n ruck_won,\n ruck_lost,\n maul_won,\n maul_lost,\n team_foul,\n start_kick,\n twenty_two_meters_kick,\n goal_kick\n}\n\nexport const RUGBY_GAME_LOG_TYPE_POINTS = {\n [RugbyGameLogTypes.penalty_try]: 7,\n [RugbyGameLogTypes.try]: 5,\n [RugbyGameLogTypes.conversion_goal]: 2,\n [RugbyGameLogTypes.penalty_goal]: 3,\n [RugbyGameLogTypes.drop_goal]: 3,\n [RugbyGameLogTypes.end_game_penalty_goal]: 1, // Не влияет на общий счет\n};\n\nexport const RUGBY_TEAM_LOG_TYPES = [\n RugbyGameLogTypes.timeout, RugbyGameLogTypes.scrum_won, RugbyGameLogTypes.scrum_lost, RugbyGameLogTypes.scrum_won_free,\n RugbyGameLogTypes.lineout_won, RugbyGameLogTypes.lineout_lost,\n RugbyGameLogTypes.quick_throw, RugbyGameLogTypes.ruck_won, RugbyGameLogTypes.ruck_lost,\n RugbyGameLogTypes.maul_won, RugbyGameLogTypes.maul_lost, RugbyGameLogTypes.team_foul,\n RugbyGameLogTypes.penalty_kick_to_touch, RugbyGameLogTypes.tap_penalty,\n RugbyGameLogTypes.start_kick, RugbyGameLogTypes.twenty_two_meters_kick, RugbyGameLogTypes.goal_kick,\n RugbyGameLogTypes.penalty_try\n];\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n group: 'group',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n foul_type: 'foulType',\n foul_sanction: 'foulSanction',\n foul_game_stage: 'foulGameStage',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(RugbyGameLogTypes),\n foulType: RugbyFoulType,\n foulSanction: enumField(RugbyFoulSanctions),\n foulGameStage: enumField(RugbyFoulGameStage),\n }\n})\nexport class RugbyGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n group: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: RugbyGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n foulType: RugbyFoulType;\n foulSanction: RugbyFoulSanctions;\n foulGameStage: RugbyFoulGameStage;\n\n compare(model: RugbyGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return RUGBY_GAME_LOG_TYPE_POINTS[this.logType] !== undefined;\n }\n\n scorePoints(): number {\n return RUGBY_GAME_LOG_TYPE_POINTS[this.logType];\n }\n\n isAfter(log: RugbyGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n isFoulType(): boolean {\n return [RugbyGameLogTypes.team_foul, RugbyGameLogTypes.foul].indexOf(this.logType) > -1;\n }\n\n isTeamType(): boolean {\n return RUGBY_TEAM_LOG_TYPES.includes(this.logType);\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { GameBaseApi } from './game-base-api';\nimport { RugbyGameTeamStatistic } from '../models/rugby-game-team-statistic';\nimport { RugbyGameStatistic } from '../models/rugby-game-statistic';\nimport { RugbyGameLog } from '../models/rugby-game-log';\nimport { RugbyFoulType } from '../models/rugby-foul-type';\n\n@Injectable({providedIn: 'root'})\nexport class RugbyGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<RugbyGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/team_statistic/`).pipe(\n map(result => RugbyGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<RugbyGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/user_statistic/`).pipe(\n map(result => RugbyGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<RugbyGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/logs/`).pipe(\n map(result => RugbyGameLog.toFront(result))\n ).toPromise();\n }\n\n async getFoulTypes(): Promise<RugbyFoulType> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/foul_types/`).pipe(\n map(result => RugbyFoulType.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', 'pdf'),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n email: 'email',\n first_name: 'firstName',\n last_name: 'lastName',\n },\n})\nexport class TeamInviteExternal extends BaseModel {\n id: number;\n teamId: number;\n email: string;\n firstName: string;\n lastName: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook, enumField } from './util';\n\nexport enum TeamPermissionTypes {\n for_all = 1,\n for_users,\n for_team\n}\n\n@ModelInstance({\n mappingFields: {\n players: 'players',\n games: 'games',\n statistic: 'statistic',\n polls: 'polls',\n events: 'events'\n },\n relation: {\n players: enumField(TeamPermissionTypes),\n games: enumField(TeamPermissionTypes),\n statistic: enumField(TeamPermissionTypes),\n polls: enumField(TeamPermissionTypes),\n events: enumField(TeamPermissionTypes)\n }\n})\nexport class TeamPermission extends BaseModel {\n players: TeamPermissionTypes;\n games: TeamPermissionTypes;\n statistic: TeamPermissionTypes;\n polls: TeamPermissionTypes;\n events: TeamPermissionTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { TeamUserRole } from './team-user';\n\n@ModelInstance({\n mappingFields: {\n can_edit: 'canEdit',\n can_view_users: 'canViewUsers',\n can_manage_permission: 'canManagePermission',\n can_change_owner: 'canChangeOwner',\n can_delete: 'canDelete',\n can_manage_invites: 'canManageInvites',\n can_view_invites: 'canViewInvites',\n can_manage_polls: 'canManagePolls',\n can_view_polls: 'canViewPolls',\n can_answer_poll: 'canAnswerPoll',\n can_manage_games: 'canManageGames',\n can_view_games: 'canViewGames',\n can_view_statistic: 'canViewStatistic',\n can_promote_users: 'canPromoteUsers',\n can_edit_users: 'canEditUsers',\n can_delete_users: 'canDeleteUsers',\n can_view_events: 'canViewEvents',\n can_manage_events: 'canManageEvents',\n can_view_tournaments: 'canViewTournaments',\n can_manage_tournaments: 'canManageTournaments',\n role: 'role'\n },\n relation: {\n role: enumField(TeamUserRole)\n }\n})\nexport class TeamAccess extends BaseModel {\n canEdit: boolean;\n canViewUsers: boolean;\n canManagePermission: boolean;\n canChangeOwner: boolean;\n canDelete: boolean;\n canManageInvites: boolean;\n canViewInvites: boolean;\n canManagePolls: boolean;\n canViewPolls: boolean;\n canAnswerPoll: boolean;\n canManageGames: boolean;\n canViewGames: boolean;\n canViewStatistic: boolean;\n canPromoteUsers: boolean;\n canEditUsers: boolean;\n canDeleteUsers: boolean;\n canViewEvents: boolean;\n canManageEvents: boolean;\n canViewTournaments: boolean;\n canManageTournaments: boolean;\n role: TeamUserRole;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\nimport { Team } from '../models/team';\nimport { map } from 'rxjs/operators';\nimport { TeamUser, TeamUserRole } from '../models/team-user';\nimport { User } from '../models/user';\nimport { TeamInvite } from '../models/team-invite';\nimport { TeamInviteExternal } from '../models/team-invite-external';\nimport { Poll } from '../models/poll';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { Game } from '../models/game';\nimport { TeamEvent } from '../models/team-event';\nimport { Tournament } from '../models/tournament';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TournamentInvite } from '../models/tournament-invite';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { TeamPermission } from '../models/team-permission';\nimport { TeamAccess } from '../models/team-access';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TeamApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async search(query: string, sportId?: number): Promise<Team[]> {\n let params = (new HttpParams()).set('search', query);\n if (sportId) {\n params = params.set('sport', sportId.toString());\n }\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/`, {params})\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async create(team: Team): Promise<Team> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/`, Team.toBack(team))\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getById(teamId: number): Promise<Team> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/`)\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getTeamAccess(teamId: number): Promise<TeamAccess> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/access/`)\n .pipe(map(data => TeamAccess.toFront(data)))\n .toPromise();\n }\n\n async update(teamId: number, values: any): Promise<Team> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/`, Team.toBack(values))\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async delete(team: Team): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team/${team.id}/`)\n .toPromise();\n }\n\n async getPermission(teamId: number): Promise<TeamPermission> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/permission/`)\n .pipe(map(data => TeamPermission.toFront(data)))\n .toPromise();\n }\n\n async updatePermission(teamId: number, permission: TeamPermission): Promise<TeamPermission> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/permission/`, TeamPermission.toBack(permission))\n .pipe(map(data => TeamPermission.toFront(data)))\n .toPromise();\n }\n\n async getUsers(teamId: number, tournamentId?: number): Promise<TeamUser[]> {\n let params = new HttpParams();\n if (tournamentId) {\n params = params.set('tournament_id', tournamentId.toString());\n }\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/`, {params})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async updateUserRole(teamId: number, teamUserId: number, role: TeamUserRole): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/${teamUserId}/role/`, {role: TeamUserRole[role]})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async updateUserNumber(teamId: number, teamUserId: number, gameNumber: number): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/${teamUserId}/number/`, {number: gameNumber.toString()})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async deleteUser(teamUser: TeamUser): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team/${teamUser.teamId}/users/${teamUser.id}/`)\n .toPromise();\n }\n\n async changeOwner(teamId: number, user: User): Promise<Team> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/owner/`, {id: user.id})\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getInvites(teamId: number): Promise<TeamInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites/`)\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async sendInvite(teamId: number, user: User): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites/`, {user})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/accept/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async declineInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/decline/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async resendInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/resend/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async getInvitesExternal(teamId: number): Promise<TeamInviteExternal[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites_external/`)\n .pipe(map(data => TeamInviteExternal.toFront(data)))\n .toPromise();\n }\n\n async sendInviteExternal(teamId: number, invite: TeamInviteExternal): Promise<TeamInviteExternal> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites_external/`, TeamInviteExternal.toBack(invite))\n .pipe(map(data => TeamInviteExternal.toFront(data)))\n .toPromise();\n }\n\n async deleteInviteExternal(invite: TeamInviteExternal): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/invites_external/${invite.id}/`)\n .toPromise();\n }\n\n async resendInviteExternal(invite: TeamInviteExternal): Promise<TeamInviteExternal> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/invites_external/${invite.id}/resend/`, {})\n .pipe(map(data => TeamInviteExternal.toFront(data)))\n .toPromise();\n }\n\n async getPolls(teamId: number, archive: boolean = false): Promise<Poll[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/polls/${archive ? '?archive=1' : ''}`)\n .pipe(map(data => Poll.toFront(data)))\n .toPromise();\n }\n\n async createPoll(teamId: number, poll: Poll): Promise<Poll> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/polls/`, Poll.toBack(poll))\n .pipe(map(data => Poll.toFront(data)))\n .toPromise();\n }\n\n async getUsersStatistic(teamId: number): Promise<BasketballStatistic[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/statistics/`)\n .pipe(map(data => BasketballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getVolleyballStatistic(teamId: number): Promise<VolleyballStatistic[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/volleyball_statistics/`)\n .pipe(map(data => VolleyballStatistic.toFront(data)))\n .toPromise();\n }\n\n async joinTeam(teamId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/join/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async leaveTeam(teamId: number): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/leave/`, {})\n .toPromise();\n }\n\n async getGames(teamId: number, archive = false): Promise<Game[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/games/${archive ? '?archive=1' : ''}`)\n .pipe(map(data => Game.toFront(data)))\n .toPromise();\n }\n\n async createGame(teamId: number, game: Game): Promise<Game> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/games/`, Game.toBack(game))\n .pipe(map(data => Game.toFront(data)))\n .toPromise();\n }\n\n async getTeamEvents(teamId: number): Promise<TeamEvent[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/events/`)\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async createTeamEvent(teamId: number, teamEvent: TeamEvent): Promise<TeamEvent> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/events/`, TeamEvent.toBack(teamEvent))\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async getTournaments(teamId: number): Promise<Tournament[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournaments/`)\n .pipe(map(data => Tournament.toFront(data)))\n .toPromise();\n }\n\n async getTournamentTeams(teamId: number): Promise<TournamentTeam[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournament_teams/`)\n .pipe(map(data => TournamentTeam.toFront(data)))\n .toPromise();\n }\n\n async getTournamentInvites(teamId: number): Promise<TournamentInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournament_invites/`)\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async getTournamentGames(teamId: number, tournamentId: number, page: number, size?: number): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournaments/${tournamentId}/games/`, {params, observe: 'response'})\n .pipe(map((response: HttpResponse<any>) => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n }))\n .toPromise();\n }\n\n async acceptTournamentInvite(inviteId: number): Promise<TournamentInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/tournament_invite/${inviteId}/accept/`, {})\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async declineTournamentInvite(inviteId: number): Promise<TournamentInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/tournament_invite/${inviteId}/decline/`, {})\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async registerLazyUser(teamId: number, userData: User): Promise<TeamUser> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/lazy_user/`, {user: User.toBack(userData)})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async getLazyUser(teamUserId: number): Promise<TeamUser> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`)\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async updateLazyUser(teamUserId: number, userData: User): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`, {user: User.toBack(userData)})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async deleteLazyUser(teamUserId: number): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`)\n .toPromise();\n }\n\n async resendLazyUserEmail(teamUserId: number): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/resend_email/`, {})\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { TeamEvent } from '../models/team-event';\nimport { TeamEventInvite } from '../models/team-event-invite';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TeamEventApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getTeamEvent(teamEventId: number): Promise<TeamEvent> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/`)\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async updateTeamEvent(teamEvent: TeamEvent): Promise<TeamEvent> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEvent.id}/`, TeamEvent.toBack(teamEvent))\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async deleteTeamEvent(teamEventId: number): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/`)\n .toPromise();\n }\n\n async getTeamEventInvites(teamEventId: number): Promise<TeamEventInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/invites/`)\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n\n async createTeamEventInvite(teamEventId: number, teamUserId: number): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/invites/`, {team_user_id: teamUserId})\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptTeamEventInvite(teamEventInvite: TeamEventInvite): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event_invite/${teamEventInvite.id}/accept/`, {})\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n\n async declineTeamEventInvite(teamEventInvite: TeamEventInvite): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event_invite/${teamEventInvite.id}/decline/`, {})\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Team } from './team';\n\n@ModelInstance({\n mappingFields: {\n valid_users_count: 'validUsersCount',\n invalid_users_count: 'invalidUsersCount',\n has_access: 'hasAccess',\n invite_sent: 'inviteSent',\n already_in_tournament: 'alreadyInTournament'\n }\n})\nexport class TournamentJoinData extends BaseModel {\n validUsersCount: number;\n invalidUsersCount: number;\n hasAccess: boolean;\n inviteSent: boolean;\n alreadyInTournament: boolean;\n\n get usersCount(): number {\n return this.validUsersCount + this.invalidUsersCount;\n }\n\n get valid() {\n return this.hasAccess && !this.inviteSent && !this.alreadyInTournament;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n join_data: 'joinData'\n },\n relation: {\n team: Team,\n joinData: TournamentJoinData\n }\n})\nexport class TournamentJoinTeam extends BaseModel {\n team: Team;\n joinData: TournamentJoinData;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, DateField, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { UserGender } from './user';\n\n@ModelInstance({\n mappingFields: {\n email: 'email',\n phone: 'phone',\n gender: 'gender',\n birth_date: 'birthDate',\n size: 'size',\n nickname: 'nickname',\n city: 'city',\n },\n relation: {\n birthDate: DateField,\n gender: enumField(UserGender),\n }\n})\nexport class TournamentJoin1x1Data extends BaseModel {\n email: string;\n phone: string;\n gender: string;\n birthDate: Date;\n size: string;\n nickname: string;\n city: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TournamentJoinTeam } from '../models/tournament-join-team';\nimport { map } from 'rxjs/operators';\nimport { TeamUser } from '../models/team-user';\nimport { TournamentTeamUserInvite } from '../models/tournament-team-user-invite';\nimport { TournamentInvite } from '../models/tournament-invite';\nimport { ConfigService } from '../services/config.service';\nimport { TournamentJoin1x1Data } from '../models/tournament-join1x1-data';\n\nexport enum TournamentJoin1x1Status {\n not_sent = 1,\n invite_sent,\n in_tournament,\n not_valid,\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentJoinApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getTeamsForJoin(tournamentId: number): Promise<TournamentJoinTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/teams_for_join/`).pipe(\n map(response => TournamentJoinTeam.toFront(response))\n ).toPromise();\n }\n\n async getTeamUsers(teamId: number): Promise<TeamUser[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/`)\n .pipe(\n map(data => TeamUser.toFront(data))\n ).toPromise();\n }\n\n async joinTournament(tournamentId: number, teamId: number, invites: TournamentTeamUserInvite[]): Promise<TournamentInvite> {\n const body = {\n team: {id: teamId},\n user_invites: TournamentTeamUserInvite.toBack(invites)\n };\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join/`, body)\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async join1x1Tournament(tournamentId: number, additionalData: TournamentJoin1x1Data): Promise<TournamentInvite> {\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join_1x1/`,\n TournamentJoin1x1Data.toBack(additionalData)\n )\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async join1x1TournamentStatus(tournamentId: number): Promise<TournamentJoin1x1Status> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join_1x1_status/`)\n .pipe(map((data: { status: string }) => TournamentJoin1x1Status[data.status]))\n .toPromise();\n }\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, listField } from './util';\nimport { TournamentGroup } from './tournament-group';\nimport { TournamentDivision } from './tournament-division';\nimport { TournamentTeam } from './tournament-team';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n competitor_team_id: 'competitorTeamId',\n team_score: 'teamScore',\n competitor_team_score: 'competitorTeamScore',\n }\n})\nexport class RoundTeamGame extends BaseModel {\n id: number;\n teamId: number;\n competitorTeamId: number;\n teamScore: number;\n competitorTeamScore: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team: 'tournamentTeam',\n group: 'group',\n division: 'division',\n points: 'points',\n handicap: 'handicap',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n lose_games_count: 'loseGamesCount',\n draw_games_count: 'drawGamesCount',\n score_sum: 'scoreSum',\n missed_sum: 'missedSum',\n games_won_percent: 'gamesWonPercent',\n score_points_sum: 'scorePointsSum',\n missed_points_sum: 'missedPointsSum',\n win_normal_time_games_count: 'winNormalTimeGamesCount',\n lose_normal_time_games_count: 'loseNormalTimeGamesCount',\n win_overtime_games_count: 'winOvertimeGamesCount',\n lose_overtime_games_count: 'loseOvertimeGamesCount',\n last_games_won: 'lastGamesWon',\n last_games_count: 'lastGamesCount',\n tries_scored: 'triesScored',\n tries_missed: 'triesMissed',\n attack_bonuses: 'attackBonuses',\n defense_bonuses: 'defenseBonuses',\n games_by_score_count: 'gamesByScoreCount',\n games: 'games',\n },\n relation: {\n group: TournamentGroup,\n division: TournamentDivision,\n tournamentTeam: TournamentTeam,\n games: listField(RoundTeamGame),\n }\n})\nexport class TournamentRoundTeam extends BaseModel {\n private _games: RoundTeamGame[];\n\n id: number;\n tournamentTeam: TournamentTeam;\n group: TournamentGroup;\n division: TournamentDivision;\n points: number;\n handicap: number;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n scoreSum: number;\n missedSum: number;\n scorePointsSum: number;\n missedPointsSum: number;\n winNormalTimeGamesCount: number;\n loseNormalTimeGamesCount: number;\n winOvertimeGamesCount: number;\n loseOvertimeGamesCount: number;\n gamesWonPercent: number;\n lastGamesWon: number;\n lastGamesCount: number;\n triesScored: number;\n triesMissed: number;\n attackBonuses: number;\n defenseBonuses: number;\n gamesByScoreCount: {[key: string]: number};\n gamesMapping: {[key: number]: RoundTeamGame[]} = {};\n\n set games(value: RoundTeamGame[]) {\n this._games = value;\n this.gamesMapping = value.reduce((acc, game) => {\n const competitorTeamId = game.teamId === this.tournamentTeam.team.id ? game.competitorTeamId : game.teamId;\n return {\n ...acc,\n [competitorTeamId]: [\n ...(acc[competitorTeamId] || []),\n game,\n ]\n };\n }, {});\n }\n\n get games(): RoundTeamGame[] {\n return this._games;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { TournamentRound } from '../models/tournament-round';\nimport { map } from 'rxjs/operators';\nimport { TournamentRoundTeam } from '../models/tournament-round-team';\nimport { Playoff } from '../models/playoff';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { applyGamesFilters, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { Game } from '../models/game';\n\nexport interface TournamentRoundTeamsFilters {\n groupId?: number;\n divisionId?: number;\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentRoundApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(tournamentRoundId: number): Promise<TournamentRound> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/`).pipe(\n map(data => TournamentRound.toFront(data)),\n ).toPromise();\n }\n\n async getTeams(tournamentRoundId: number, filters?: TournamentRoundTeamsFilters): Promise<TournamentRoundTeam[]> {\n let params = new HttpParams();\n if (filters) {\n if (filters.divisionId) {\n params = params.set('division_id', filters.divisionId);\n }\n if (filters.groupId) {\n params = params.set('group_id', filters.groupId);\n }\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/teams/`,\n {params}\n ).pipe(\n map(data => TournamentRoundTeam.toFront(data)),\n ).toPromise();\n }\n\n async getPlayoffs(tournamentRoundId: number): Promise<Playoff[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/playoffs/`).pipe(\n map(data => Playoff.toFront(data)),\n ).toPromise();\n }\n\n async getGroups(tournamentRoundId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/groups/`).pipe(\n map(data => TournamentGroup.toFront(data)),\n ).toPromise();\n }\n\n async getGames(roundId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_round/${roundId}/games/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))\n ).toPromise();\n }}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { TournamentSeason } from '../models/tournament-season';\nimport { ConfigService } from '../services/config.service';\nimport { map } from 'rxjs/operators';\nimport { Game, GameStatuses } from '../models/game';\nimport { Tournament } from '../models/tournament';\nimport { applyGamesFilters, TournamentEventsListFilter, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { applyGameMediaFilters, GameMediaFilters } from './media-api';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { GameTimelineStages } from '../models/game-timeline-stages';\nimport { Playoff } from '../models/playoff';\n\n@Injectable({providedIn: 'root'})\nexport class TournamentSeasonApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getByAlias(leagueId: number, alias: string): Promise<TournamentSeason> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/${alias}/`).pipe(\n map(result => TournamentSeason.toFront(result))\n ).toPromise();\n }\n\n async getTournaments(seasonId: number): Promise<Tournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/tournaments/`).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n async getGames(seasonId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/games/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getEvents(seasonId: number, page: number, size: number, filters?: TournamentEventsListFilter): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/events/`,\n {params, observe: 'response'}\n )\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentEvent.toFront(result.body)\n })))\n .toPromise();\n }\n\n async getGameMedia(seasonId: number, page: number, size: number, filters: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n params = applyGameMediaFilters(filters, params);\n\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/game_media/`,\n {observe: 'response', params})\n .pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n })\n ).toPromise();\n }\n\n async getTeams(seasonId: number, short?: boolean): Promise<TournamentTeam[]> {\n let params = new HttpParams();\n if (short) {\n params = params.set('short', '1');\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/teams/`, {params}).pipe(\n map(result => TournamentTeam.toFront(result))\n ).toPromise();\n }\n\n async getPlayoffs(seasonId: number): Promise<Playoff[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/playoffs/`).pipe(\n map(result => Playoff.toFront(result))\n ).toPromise();\n }\n\n async getGamesStages(seasonId: number): Promise<GameTimelineStages> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/games_stages/`)\n .pipe(map(data => GameTimelineStages.toFront(data)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TournamentStage } from '../models/tournament-stage';\nimport { map } from 'rxjs/operators';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { Playoff } from '../models/playoff';\nimport { TournamentStageTeam } from '../models/tournament-stage-team';\nimport { ConfigService } from '../services/config.service';\nimport { TeamAchievement } from '../models/team-achievement';\n\n@Injectable({providedIn: 'root'})\nexport class TournamentStageApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(id: number): Promise<TournamentStage> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${id}/`)\n .pipe(map(result => TournamentStage.toFront(result)))\n .toPromise();\n }\n\n async getGroups(stageId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/groups/`)\n .pipe(map(result => TournamentGroup.toFront(result)))\n .toPromise();\n }\n\n async getTeamsAchievements(stageId: number): Promise<TeamAchievement[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/achievements/`)\n .pipe(map(result => TeamAchievement.toFront(result)))\n .toPromise();\n }\n\n async getPlayoffs(stageId: number): Promise<Playoff[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/playoff/`)\n .pipe(map(result => Playoff.toFront(result)))\n .toPromise();\n }\n\n async getTeams(stageId: number): Promise<TournamentStageTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/teams/`)\n .pipe(map(result => TournamentStageTeam.toFront(result)))\n .toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n edit: 'edit',\n personal_data: 'personalData',\n teams: 'teams',\n statistic: 'statistic',\n games: 'games'\n }\n})\nexport class UserAccess extends BaseModel {\n edit: boolean;\n personalData: boolean;\n teams: boolean;\n statistic: boolean;\n games: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum UserPermissionTypes {\n denied = 1,\n for_all,\n for_users,\n for_team\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n personal_data: 'personalData',\n games: 'games',\n teams: 'teams',\n statistic: 'statistic'\n },\n relation: {\n personalData: enumField(UserPermissionTypes),\n games: enumField(UserPermissionTypes),\n teams: enumField(UserPermissionTypes),\n statistic: enumField(UserPermissionTypes)\n }\n})\nexport class UserPermission extends BaseModel {\n id: number;\n personalData: UserPermissionTypes;\n games: UserPermissionTypes;\n teams: UserPermissionTypes;\n statistic: UserPermissionTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { User } from '../models/user';\nimport { File } from '../models/file';\nimport { map } from 'rxjs/operators';\nimport { UserProfile } from '../models/user-profile';\nimport { BasketballProfile } from '../models/basketball-profile';\nimport { VolleyballProfile } from '../models/volleyball-profile';\nimport { Team } from '../models/team';\nimport { TeamInvite } from '../models/team-invite';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { Game } from '../models/game';\nimport { GameInvite } from '../models/game-invite';\nimport { TeamEvent } from '../models/team-event';\nimport { UserAccess } from '../models/user-access';\nimport { UserPermission } from '../models/user-permission';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class UserApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCurrentUser(): Promise<User> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/`)\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async getUserById(userId: number): Promise<User> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/`)\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async getAccess(userId?: number): Promise<UserAccess> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/user/${userId || 'current'}/access/`)\n .pipe(map(data => UserAccess.toFront(data)))\n .toPromise();\n }\n\n async updateUser(userId: number, data: any): Promise<User> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/`, User.toBack(data))\n .pipe(map(result => User.toFront(result)))\n .toPromise();\n }\n\n async updateUserPhoto(file: any, filename?: string): Promise<File> {\n const formData = new FormData();\n formData.append('file', file, filename);\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/photo/`, formData)\n .pipe(map(data => File.toFront(data)))\n .toPromise();\n }\n\n async changePassword(userId: number, oldPassword: string, password: string, passwordConfirm: string): Promise<any> {\n const payload = {\n old_password: oldPassword,\n password,\n password_confirm: passwordConfirm\n };\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_password/`, payload)\n .toPromise();\n }\n\n async changeEmail(userId: number, email: string, password: string): Promise<any> {\n const payload = {email, password};\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_email/`, payload)\n .toPromise();\n }\n\n async changeEmailConfirm(userId, email: string, password: string, token: number): Promise<any> {\n const payload = {email, password, token};\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_email_confirm/`, payload)\n .toPromise();\n }\n\n async getUserProfile(userId: number): Promise<UserProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/profile/`)\n .pipe(map(data => UserProfile.toFront(data)))\n .toPromise();\n }\n\n async getBasketballProfile(userId: number): Promise<BasketballProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/basketball_profile/`)\n .pipe(map(data => BasketballProfile.toFront(data)))\n .toPromise();\n }\n\n async getVolleyballProfile(userId: number): Promise<VolleyballProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/volleyball_profile/`)\n .pipe(map(data => VolleyballProfile.toFront(data)))\n .toPromise();\n }\n\n async updateUserProfile(userProfile: UserProfile): Promise<UserProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${userProfile.userId}/profile/`, UserProfile.toBack(userProfile))\n .pipe(map(data => UserProfile.toFront(data)))\n .toPromise();\n }\n\n async updateUserBasketballProfile(basketballProfile: BasketballProfile): Promise<BasketballProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${basketballProfile.userId}/basketball_profile/`, BasketballProfile.toBack(basketballProfile))\n .pipe(map(data => BasketballProfile.toFront(data)))\n .toPromise();\n }\n\n async updateUserVolleyballProfile(volleyballProfile: VolleyballProfile): Promise<VolleyballProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${volleyballProfile.userId}/volleyball_profile/`, VolleyballProfile.toBack(volleyballProfile))\n .pipe(map(data => VolleyballProfile.toFront(data)))\n .toPromise();\n }\n\n async getUserPermissions(userId?: number): Promise<UserPermission> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId || 'current'}/permission/`)\n .pipe(map(data => UserPermission.toFront(data)))\n .toPromise();\n }\n\n async updateUserPermission(data: any): Promise<UserPermission> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/current/permission/`, UserPermission.toBack(data))\n .pipe(map(result => UserPermission.toFront(result)))\n .toPromise();\n }\n\n async getTeams(userId: number): Promise<Team[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/teams/`)\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getInvites(): Promise<TeamInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/`)\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptInvite(inviteId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/${inviteId}/accept/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async declineInvite(inviteId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/${inviteId}/decline/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async getStatistics(userId: number): Promise<BasketballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/statistics/`)\n .pipe(map(data => BasketballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getStreetballStatistics(userId: number): Promise<BasketballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/streetball_statistics/`)\n .pipe(map(data => BasketballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getVolleyballStatistic(userId: number): Promise<VolleyballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/volleyball_statistics/`)\n .pipe(map(data => VolleyballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getGames(userId: number): Promise<Game[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/games/`)\n .pipe(map(data => Game.toFront(data)))\n .toPromise();\n }\n\n async getGameInvites(): Promise<GameInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/`)\n .pipe(map(data => GameInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptGameInvite(inviteId: number): Promise<GameInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/${inviteId}/accept/`, {})\n .pipe(map(data => GameInvite.toFront(data)))\n .toPromise();\n }\n\n async declineGameInvite(inviteId: number): Promise<GameInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/${inviteId}/decline/`, {})\n .pipe(map(data => GameInvite.toFront(data)))\n .toPromise();\n }\n\n async searchUsers(query: string): Promise<User[]> {\n const params = (new HttpParams()).set('search', query);\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/`, {params})\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async setWizardShowed(wizard: string): Promise<User> {\n return this.httpClient\n .put(`${this.configService.get('apiUrl')}/api/v1/user/current/wizards/`, {wizard})\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async getTeamEvents(userId: number): Promise<TeamEvent[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/team_events/`)\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n}\n","import { ModelInstance, ToBackHook, ToFrontHook, BaseModel } from './util';\nimport { VolleyballStatistic } from './volleyball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam',\n },\n relation: {\n team: VolleyballStatistic,\n competitorTeam: VolleyballStatistic,\n }\n})\nexport class VolleyballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: VolleyballStatistic;\n competitorTeam: VolleyballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n serve_hits: 'serveHits',\n serve_faults: 'serveFaults',\n serve_aces: 'serveAces',\n good_serves: 'goodServes',\n stuff_blocks: 'stuffBlocks',\n block_faults: 'blockFaults',\n block_rebounds: 'blockRebounds',\n attack_spikes: 'attackSpikes',\n attack_faults: 'attackFaults',\n attack_shots: 'attackShots',\n receives: 'receives',\n receive_faults: 'receiveFaults',\n excellent_receives: 'excellentReceives',\n serve_receives: 'serveReceives',\n serve_receive_faults: 'serveReceiveFaults',\n excellent_serve_receives: 'excellentServeReceives',\n points: 'points',\n faults: 'faults',\n yellow_cards: 'yellowCards',\n }\n})\nexport class VolleyballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n serveHits: number;\n serveFaults: number;\n serveAces: number;\n goodServes: number;\n stuffBlocks: number;\n blockFaults: number;\n blockRebounds: number;\n attackSpikes: number;\n attackFaults: number;\n attackShots: number;\n receives: number;\n receiveFaults: number;\n excellentReceives: number;\n serveReceives: number;\n serveReceiveFaults: number;\n excellentServeReceives: number;\n points: number;\n faults: number;\n yellowCards: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get attacks(): number {\n return Math.floor(10 * (this.attackSpikes + this.attackShots)) / 10;\n }\n\n get blocks(): number {\n return Math.floor(10 * (this.stuffBlocks + this.blockRebounds)) / 10;\n }\n\n get totalReceives(): number {\n return Math.floor(10 * (this.receives + this.excellentReceives + this.receiveFaults)) / 10;\n }\n\n get totalServeReceives(): number {\n return Math.floor(10 * (this.serveReceives + this.excellentServeReceives + this.serveReceiveFaults)) / 10;\n }\n\n get totalServes(): number {\n return Math.floor(10 * (this.serveAces + this.serveHits + this.serveFaults + this.goodServes)) / 10;\n }\n\n get totalAttacks(): number {\n return Math.floor(10 * (this.attackSpikes + this.attackShots + this.attackFaults)) / 10;\n }\n\n get totalBlocks(): number {\n return Math.floor(10 * (this.stuffBlocks + this.blockRebounds + this.blockFaults)) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField, DateTimeField } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\n\nexport enum VolleyballGameLogType {\n enter_game = 1,\n exit_game,\n remove_game,\n serve_hit,\n serve_fault,\n serve_ace,\n stuff_block,\n block_fault,\n block_rebound,\n attack_spike,\n attack_fault,\n attack_shot,\n receive,\n receive_fault,\n excellent_receive,\n point,\n fault,\n serve_receive,\n serve_receive_fault,\n excellent_serve_receive,\n timeout,\n yellow_card,\n tie_ball,\n good_serve\n}\n\nexport const SCORE_LOG_TYPES = [\n VolleyballGameLogType.serve_ace, VolleyballGameLogType.stuff_block,\n VolleyballGameLogType.attack_spike, VolleyballGameLogType.point\n];\nexport const FAULT_LOG_TYPES = [\n VolleyballGameLogType.serve_fault, VolleyballGameLogType.attack_fault,\n VolleyballGameLogType.block_fault, VolleyballGameLogType.receive_fault,\n VolleyballGameLogType.fault, VolleyballGameLogType.serve_receive_fault\n];\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n log_type: 'logType',\n set: 'set',\n rally: 'rally',\n position: 'position',\n team_id: 'teamId',\n datetime: 'datetime',\n is_highlight: 'isHighlight',\n group: 'group',\n },\n relation: {\n logType: enumField(VolleyballGameLogType),\n datetime: DateTimeField\n }\n})\nexport class VolleyballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n active = true;\n gameId: number;\n gameUserId: number;\n logType: VolleyballGameLogType;\n set: number;\n rally: number;\n position: number;\n teamId: number;\n datetime: Date;\n isHighlight: boolean;\n gameUser: GameUser;\n group: string;\n\n compare(model: VolleyballGameLog): number {\n if (this.rally === model.rally && this.set === model.set) {\n if (this.datetime && model.datetime) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n } else {\n return this.id < model.id ? 1 : -1;\n }\n }\n if (this.set === model.set) {\n return this.rally < model.rally ? 1 : -1;\n }\n return this.set < model.set ? 1 : -1;\n }\n\n isScoreType() {\n return SCORE_LOG_TYPES.includes(this.logType);\n }\n\n isFaultType() {\n return FAULT_LOG_TYPES.includes(this.logType);\n }\n\n isServe() {\n return [\n VolleyballGameLogType.serve_hit,\n VolleyballGameLogType.serve_ace,\n VolleyballGameLogType.serve_fault,\n VolleyballGameLogType.good_serve,\n ].includes(this.logType);\n }\n\n isAttack() {\n return [\n VolleyballGameLogType.attack_fault,\n VolleyballGameLogType.attack_spike,\n VolleyballGameLogType.attack_shot\n ].includes(this.logType);\n }\n\n isReceive() {\n return [\n VolleyballGameLogType.receive_fault,\n VolleyballGameLogType.receive,\n VolleyballGameLogType.excellent_receive\n ].includes(this.logType);\n }\n\n isServeReceive() {\n return [\n VolleyballGameLogType.serve_receive_fault,\n VolleyballGameLogType.serve_receive,\n VolleyballGameLogType.excellent_serve_receive\n ].includes(this.logType);\n }\n\n isBlock() {\n return [\n VolleyballGameLogType.block_fault,\n VolleyballGameLogType.block_rebound,\n VolleyballGameLogType.stuff_block\n ].includes(this.logType);\n }\n\n isEnterExit() {\n return [\n VolleyballGameLogType.enter_game,\n VolleyballGameLogType.exit_game,\n VolleyballGameLogType.timeout\n ].includes(this.logType);\n }\n\n isComboType() {\n return ![\n VolleyballGameLogType.receive,\n VolleyballGameLogType.serve_receive\n ].includes(this.logType);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Game } from '../models/game';\nimport { map } from 'rxjs/operators';\nimport { VolleyballGameTeamStatistic } from '../models/volleyball-game-team-statistic';\nimport { VolleyballGameStatistic } from '../models/volleyball-game-statistic';\nimport { VolleyballGameLog } from '../models/volleyball-game-log';\nimport { ConfigService } from '../services/config.service';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class VolleyballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<VolleyballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/team_statistic/`).pipe(\n map(result => VolleyballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<VolleyballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/user_statistic/`).pipe(\n map(result => VolleyballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<VolleyballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/logs/`).pipe(\n map(result => VolleyballGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocolLight(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/game_protocol_light/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadProtocolAdvanced(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/game_protocol_advanced/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum WaterpoloGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n shootout_attempt,\n shootout_goal,\n assist,\n block_shot ,\n free_kick_on_goal,\n minor_penalty ,\n major_penalty ,\n match_penalty ,\n foul,\n yellow_card,\n red_card,\n penalty_shot ,\n face_off_lose ,\n face_off_win ,\n save ,\n timeout,\n penalty_start,\n penalty_end,\n after_game_shootout_attempt,\n after_game_shootout_goal,\n after_game_shootout_save,\n shootout_save,\n loss,\n steal,\n free_kick_miss,\n free_kick_goal,\n free_kick_pass,\n free_kick_self,\n corner_on_goal,\n corner_miss,\n corner_goal,\n corner_pass,\n corner_self,\n personal_foul,\n counterattack_goal,\n counterattack_on_goal,\n counterattack_miss,\n counterattack_save ,\n maneuver_goal,\n maneuver_on_goal,\n maneuver_miss,\n maneuver_save,\n center_forward_goal,\n center_forward_on_goal,\n center_forward_miss,\n center_forward_save,\n free_kick_save,\n corner_save,\n tackle,\n penalty_foul,\n attack_foul,\n turnover,\n counter_attack_shot_blocked,\n maneuver_shot_blocked,\n center_forward_shot_blocked,\n free_kick_shot_blocked,\n corner_shot_blocked,\n complete_penalty_time\n}\n\nexport enum WaterpoloAdvantageTypes {\n power_play = 1,\n shorthanded,\n even_strength\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n advantage: 'advantage',\n advantage_num: 'advantageNum',\n is_goalie: 'isGoalie',\n penalized_game_user_id: 'penalizedGameUserId',\n foul_on_game_user_id: 'foulOnGameUserId',\n mutual_penalty: 'mutualPenalty',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(WaterpoloGameLogTypes),\n advantage: enumField(WaterpoloAdvantageTypes),\n }\n})\nexport class WaterpoloGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: WaterpoloGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n advantage: WaterpoloAdvantageTypes;\n advantageNum: number;\n isGoalie: boolean;\n _penalizedGameUserId: number;\n foulOnGameUserId: number;\n foulOnGameUser: GameUser;\n mutualPenalty: boolean;\n\n get penalizedGameUserId(): number {\n if (this._penalizedGameUserId) {\n return this._penalizedGameUserId;\n }\n return this.gameUserId;\n }\n\n set penalizedGameUserId(value: number) {\n this._penalizedGameUserId = value;\n }\n\n compare(model: WaterpoloGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [WaterpoloGameLogTypes.goal, WaterpoloGameLogTypes.shootout_goal, WaterpoloGameLogTypes.after_game_shootout_goal,\n WaterpoloGameLogTypes.free_kick_goal, WaterpoloGameLogTypes.corner_goal,\n WaterpoloGameLogTypes.counterattack_goal, WaterpoloGameLogTypes.maneuver_goal, WaterpoloGameLogTypes.center_forward_goal].indexOf(this.logType) > -1;\n }\n\n isPenaltyType(): boolean {\n return [\n WaterpoloGameLogTypes.minor_penalty, WaterpoloGameLogTypes.major_penalty, WaterpoloGameLogTypes.match_penalty, WaterpoloGameLogTypes.personal_foul\n ].indexOf(this.logType) > -1;\n }\n\n isFoulType(): boolean {\n return [\n WaterpoloGameLogTypes.minor_penalty, WaterpoloGameLogTypes.major_penalty, WaterpoloGameLogTypes.match_penalty,\n WaterpoloGameLogTypes.personal_foul, WaterpoloGameLogTypes.foul, WaterpoloGameLogTypes.attack_foul, WaterpoloGameLogTypes.penalty_foul\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: WaterpoloGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n updated_at: 'updatedAt',\n points: 'points',\n pp_shot_misses: 'ppShotMisses',\n pp_shots_on_goal: 'ppShotsOnGoal',\n pp_shots_blocked: 'ppShotsBlocked',\n ev_shot_misses: 'evShotMisses',\n ev_shots_on_goal: 'evShotsOnGoal',\n ev_shots_blocked: 'evShotsBlocked',\n sh_shot_misses: 'shShotMisses',\n sh_shots_on_goal: 'shShotsOnGoal',\n sh_shots_blocked: 'shShotsBlocked',\n pp_total_shots_on_goal: 'ppTotalShotsOnGoal',\n ev_total_shots_on_goal: 'evTotalShotsOnGoal',\n sh_total_shots_on_goal: 'shTotalShotsOnGoal',\n pp_goals: 'ppGoals',\n ev_goals: 'evGoals',\n sh_goals: 'shGoals',\n pp_counterattack_goals: 'ppCounterAttackGoals',\n pp_counterattack_on_goals: 'ppCounterAttackOnGoals',\n pp_counterattack_misses: 'ppCounterAttackMisses',\n pp_counterattack_shots_blocked: 'ppCounterAttackShotsBlocked',\n ev_counterattack_goals: 'evCounterAttackGoals',\n ev_counterattack_on_goals: 'evCounterAttackOnGoals',\n ev_counterattack_misses: 'evCounterAttackMisses',\n ev_counterattack_shots_blocked: 'evCounterAttackShotsBlocked',\n sh_counterattack_goals: 'shCounterAttackGoals',\n sh_counterattack_on_goals: 'shCounterAttackOnGoals',\n sh_counterattack_misses: 'shCounterAttackMisses',\n sh_counterattack_shots_blocked: 'shCounterAttackShotsBlocked',\n pp_maneuver_goals: 'ppManeuverGoals',\n pp_maneuver_on_goals: 'ppManeuverOnGoals',\n pp_maneuver_misses: 'ppManeuverMisses',\n pp_maneuver_shots_blocked: 'ppManeuverShotsBlocked',\n ev_maneuver_goals: 'evManeuverGoals',\n ev_maneuver_on_goals: 'evManeuverOnGoals',\n ev_maneuver_misses: 'evManeuverMisses',\n ev_maneuver_shots_blocked: 'evManeuverShotsBlocked',\n sh_maneuver_goals: 'shManeuverGoals',\n sh_maneuver_on_goals: 'shManeuverOnGoals',\n sh_maneuver_misses: 'shManeuverMisses',\n sh_maneuver_shots_blocked: 'shManeuverShotsBlocked',\n pp_center_forward_goals: 'ppCenterForwardGoals',\n pp_center_forward_on_goals: 'ppCenterForwardOnGoals',\n pp_center_forward_misses: 'ppCenterForwardMisses',\n pp_center_forward_shots_blocked: 'ppCenterForwardShotsBlocked',\n ev_center_forward_goals: 'evCenterForwardGoals',\n ev_center_forward_on_goals: 'evCenterForwardOnGoals',\n ev_center_forward_misses: 'evCenterForwardMisses',\n ev_center_forward_shots_blocked: 'evCenterForwardShotsBlocked',\n sh_center_forward_goals: 'shCenterForwardGoals',\n sh_center_forward_on_goals: 'shCenterForwardOnGoals',\n sh_center_forward_misses: 'shCenterForwardMisses',\n sh_center_forward_shots_blocked: 'shCenterForwardShotsBlocked',\n pp_assists: 'ppAssists',\n ev_assists: 'evAssists',\n sh_assists: 'shAssists',\n shootout_attempts: 'shootoutAttempts',\n shootout_goals: 'shootoutGoals',\n after_game_shootout_attempts: 'afterGameShootoutAttempts',\n after_game_shootout_goals: 'afterGameShootoutGoals',\n block_shots: 'blockShots',\n face_off_losses: 'faceOffLosses',\n face_off_wins: 'faceOffWins',\n pp_saves: 'ppSaves',\n sh_saves: 'shSaves',\n ev_saves: 'evSaves',\n pp_counterattack_saves: 'ppCounterAttackSaves',\n sh_counterattack_saves: 'shCounterAttackSaves',\n ev_counterattack_saves: 'evCounterAttackSaves',\n pp_maneuver_saves: 'ppManeuverSaves',\n sh_maneuver_saves: 'shManeuverSaves',\n ev_maneuver_saves: 'evManeuverSaves',\n pp_center_forward_saves: 'ppCenterForwardSaves',\n sh_center_forward_saves: 'shCenterForwardSaves',\n ev_center_forward_saves: 'evCenterForwardSaves',\n pp_free_kick_saves: 'ppFreeKickSaves',\n sh_free_kick_saves: 'shFreeKickSaves',\n ev_free_kick_saves: 'evFreeKickSaves',\n pp_corner_saves: 'ppCornerSaves',\n sh_corner_saves: 'shCornerSaves',\n ev_corner_saves: 'evCornerSaves',\n pp_total_game_saves: 'ppTotalGameSaves',\n sh_total_game_saves: 'shTotalGameSaves',\n ev_total_game_saves: 'evTotalGameSaves',\n shootout_saves: 'shootoutSaves',\n after_game_shootout_saves: 'afterGameShootoutSaves',\n pp_goals_against: 'ppGoalsAgainst',\n sh_goals_against: 'shGoalsAgainst',\n ev_goals_against: 'evGoalsAgainst',\n goals_against: 'goalsAgainst',\n pp_counterattack_goals_against: 'ppCounterAttackGoalsAgainst',\n sh_counterattack_goals_against: 'shCounterAttackGoalsAgainst',\n ev_counterattack_goals_against: 'evCounterAttackGoalsAgainst',\n counterattack_goals_against: 'counterAttackGoalsAgainst',\n pp_maneuver_goals_against: 'ppManeuverGoalsAgainst',\n sh_maneuver_goals_against: 'shManeuverGoalsAgainst',\n ev_maneuver_goals_against: 'evManeuverGoalsAgainst',\n maneuver_goals_against: 'maneuverGoalsAgainst',\n pp_center_forward_goals_against: 'ppCenterForwardGoalsAgainst',\n sh_center_forward_goals_against: 'shCenterForwardGoalsAgainst',\n ev_center_forward_goals_against: 'evCenterForwardGoalsAgainst',\n center_forward_goals_against: 'centerForwardGoalsAgainst',\n pp_free_kick_goals_against: 'ppFreeKickGoalsAgainst',\n sh_free_kick_goals_against: 'shFreeKickGoalsAgainst',\n ev_free_kick_goals_against: 'evFreeKickGoalsAgainst',\n free_kick_goals_against: 'freeKickGoalsAgainst',\n pp_corner_goals_against: 'ppCornerGoalsAgainst',\n sh_corner_goals_against: 'shCornerGoalsAgainst',\n ev_corner_goals_against: 'evCornerGoalsAgainst',\n corner_goals_against: 'cornerGoalsAgainst',\n shootout_goals_against: 'shootoutGoalsAgainst',\n after_game_shootout_goals_against: 'afterGameShootoutGoalsAgainst',\n safety_rate: 'safetyRate',\n penalty_minutes: 'penaltyMinutes',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n fouls: 'fouls',\n minor_penalties: 'minorPenalties',\n major_penalties: 'majorPenalties',\n match_penalties: 'matchPenalties',\n penalty_fouls: 'penaltyFouls',\n turnovers: 'turnovers',\n attack_fouls: 'attackFouls',\n personal_fouls: 'personalFouls',\n drawn_fouls: 'drawnFouls',\n drawn_turnovers: 'drawnTurnovers',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n losses: 'losses',\n steals: 'steals',\n pp_free_kick_goals: 'ppFreeKickGoals',\n pp_free_kick_on_goals: 'ppFreeKickOnGoals',\n pp_free_kick_misses: 'ppFreeKickMisses',\n pp_free_kick_shots_blocked: 'ppFreeKickShotsBlocked',\n sh_free_kick_goals: 'shFreeKickGoals',\n sh_free_kick_on_goals: 'shFreeKickOnGoals',\n sh_free_kick_misses: 'shFreeKickMisses',\n sh_free_kick_shots_blocked: 'shFreeKickShotsBlocked',\n ev_free_kick_goals: 'evFreeKickGoals',\n ev_free_kick_on_goals: 'evFreeKickOnGoals',\n ev_free_kick_misses: 'evFreeKickMisses',\n ev_free_kick_shots_blocked: 'evFreeKickShotsBlocked',\n free_kick_passes: 'freeKickPasses',\n free_kick_selfs: 'freeKickSelfs',\n pp_corner_goals: 'ppCornerGoals',\n pp_corner_on_goals: 'ppCornerOnGoals',\n pp_corner_misses: 'ppCornerMisses',\n pp_corner_shots_blocked: 'ppCornerShotsBlocked',\n sh_corner_goals: 'shCornerGoals',\n sh_corner_on_goals: 'shCornerOnGoals',\n sh_corner_misses: 'shCornerMisses',\n sh_corner_shots_blocked: 'shCornerShotsBlocked',\n ev_corner_goals: 'evCornerGoals',\n ev_corner_on_goals: 'evCornerOnGoals',\n ev_corner_misses: 'evCornerMisses',\n ev_corner_shots_blocked: 'evCornerShotsBlocked',\n corner_passes: 'cornerPasses',\n corner_selfs: 'cornerSelfs',\n tackles: 'tackles',\n player_efficiency: 'playerEfficiency'\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class WaterpoloGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppTotalShotsOnGoal: number;\n evTotalShotsOnGoal: number;\n shTotalShotsOnGoal: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppCounterAttackGoals: number;\n ppCounterAttackOnGoals: number;\n ppCounterAttackMisses: number;\n ppCounterAttackShotsBlocked: number;\n evCounterAttackGoals: number;\n evCounterAttackOnGoals: number;\n evCounterAttackMisses: number;\n evCounterAttackShotsBlocked: number;\n shCounterAttackGoals: number;\n shCounterAttackOnGoals: number;\n shCounterAttackMisses: number;\n shCounterAttackShotsBlocked: number;\n ppManeuverGoals: number;\n ppManeuverOnGoals: number;\n ppManeuverMisses: number;\n ppManeuverShotsBlocked: number;\n evManeuverGoals: number;\n evManeuverOnGoals: number;\n evManeuverMisses: number;\n evManeuverShotsBlocked: number;\n shManeuverGoals: number;\n shManeuverOnGoals: number;\n shManeuverMisses: number;\n shManeuverShotsBlocked: number;\n ppCenterForwardGoals: number;\n ppCenterForwardOnGoals: number;\n ppCenterForwardMisses: number;\n ppCenterForwardShotsBlocked: number;\n evCenterForwardGoals: number;\n evCenterForwardOnGoals: number;\n evCenterForwardMisses: number;\n evCenterForwardShotsBlocked: number;\n shCenterForwardGoals: number;\n shCenterForwardOnGoals: number;\n shCenterForwardMisses: number;\n shCenterForwardShotsBlocked: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n ppSaves: number;\n shSaves: number;\n evSaves: number;\n ppCounterAttackSaves: number;\n shCounterAttackSaves: number;\n evCounterAttackSaves: number;\n ppManeuverSaves: number;\n shManeuverSaves: number;\n evManeuverSaves: number;\n ppCenterForwardSaves: number;\n shCenterForwardSaves: number;\n evCenterForwardSaves: number;\n ppFreeKickSaves: number;\n shFreeKickSaves: number;\n evFreeKickSaves: number;\n ppCornerSaves: number;\n shCornerSaves: number;\n evCornerSaves: number;\n ppTotalGameSaves: number;\n shTotalGameSaves: number;\n evTotalGameSaves: number;\n shootoutSaves: number;\n afterGameShootoutSaves: number;\n ppGoalsAgainst: number;\n shGoalsAgainst: number;\n evGoalsAgainst: number;\n goalsAgainst: number;\n ppCounterAttackGoalsAgainst: number;\n shCounterAttackGoalsAgainst: number;\n evCounterAttackGoalsAgainst: number;\n counterAttackGoalsAgainst: number;\n ppManeuverGoalsAgainst: number;\n shManeuverGoalsAgainst: number;\n evManeuverGoalsAgainst: number;\n maneuverGoalsAgainst: number;\n ppCenterForwardGoalsAgainst: number;\n shCenterForwardGoalsAgainst: number;\n evCenterForwardGoalsAgainst: number;\n centerForwardGoalsAgainst: number;\n ppFreeKickGoalsAgainst: number;\n shFreeKickGoalsAgainst: number;\n evFreeKickGoalsAgainst: number;\n freeKickGoalsAgainst: number;\n ppCornerGoalsAgainst: number;\n shCornerGoalsAgainst: number;\n evCornerGoalsAgainst: number;\n cornerGoalsAgainst: number;\n shootoutGoalsAgainst: number;\n afterGameShootoutGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n fouls: number;\n minorPenalties: number;\n majorPenalties: number;\n matchPenalties: number;\n penaltyFouls: number;\n turnovers: number;\n attackFouls: number;\n personalFouls: number;\n drawnFouls: number;\n drawnTurnovers: number;\n yellowCards: number;\n redCards: number;\n losses: number;\n steals: number;\n ppFreeKickGoals: number;\n ppFreeKickOnGoals: number;\n ppFreeKickMisses: number;\n ppFreeKickShotsBlocked: number;\n shFreeKickGoals: number;\n shFreeKickOnGoals: number;\n shFreeKickMisses: number;\n shFreeKickShotsBlocked: number;\n evFreeKickGoals: number;\n evFreeKickOnGoals: number;\n evFreeKickMisses: number;\n evFreeKickShotsBlocked: number;\n freeKickPasses: number;\n freeKickSelfs: number;\n ppCornerGoals: number;\n ppCornerOnGoals: number;\n ppCornerMisses: number;\n ppCornerShotsBlocked: number;\n shCornerGoals: number;\n shCornerOnGoals: number;\n shCornerMisses: number;\n shCornerShotsBlocked: number;\n evCornerGoals: number;\n evCornerOnGoals: number;\n evCornerMisses: number;\n evCornerShotsBlocked: number;\n cornerPasses: number;\n cornerSelfs: number;\n tackles: number;\n playerEfficiency: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get penaltyTime(): string {\n if (!this.penaltyMinutes) {\n return '00:00';\n }\n const minutes = Math.floor(this.penaltyMinutes / 60);\n const seconds = Math.floor(this.penaltyMinutes - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get assists(): number {\n return (this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0);\n }\n\n get totalCounterAttackGoals(): number {\n return (this.ppCounterAttackGoals || 0) + (this.evCounterAttackGoals || 0) + (this.shCounterAttackGoals || 0);\n }\n\n get ppCounterAttackShots(): number {\n return (this.ppCounterAttackOnGoals || 0) + (this.ppCounterAttackMisses || 0) + (this.ppCounterAttackShotsBlocked || 0);\n }\n\n get shCounterAttackShots(): number {\n return (this.shCounterAttackOnGoals || 0) + (this.shCounterAttackMisses || 0) + (this.shCounterAttackShotsBlocked || 0);\n }\n\n get evCounterAttackShots(): number {\n return (this.evCounterAttackOnGoals || 0) + (this.evCounterAttackMisses || 0) + (this.evCounterAttackShotsBlocked || 0);\n }\n\n get counterAttackShotMisses(): number {\n return (this.ppCounterAttackMisses || 0) + (this.shCounterAttackMisses || 0) + (this.evCounterAttackMisses || 0);\n }\n\n get counterAttackShotOnGoals(): number {\n return (this.ppCounterAttackOnGoals || 0) + (this.shCounterAttackOnGoals || 0) + (this.evCounterAttackOnGoals || 0);\n }\n\n get counterAttackShotsBlocked(): number {\n return (this.ppCounterAttackShotsBlocked || 0) + (this.shCounterAttackShotsBlocked || 0) + (this.evCounterAttackShotsBlocked || 0);\n }\n\n get counterAttackShots(): number {\n return this.counterAttackShotMisses + this.counterAttackShotOnGoals + this.counterAttackShotsBlocked;\n }\n\n get counterAttackGoalsPercent(): number {\n if (!this.totalCounterAttackGoals || !this.counterAttackShots) {\n return 0;\n }\n return Math.round(1000 * this.totalCounterAttackGoals / this.counterAttackShots) / 10;\n }\n\n get totalManeuverGoals(): number {\n return (this.ppManeuverGoals || 0) + (this.shManeuverGoals || 0) + (this.evManeuverGoals || 0);\n }\n\n get ppManeuverShots(): number {\n return (this.ppManeuverOnGoals || 0) + (this.ppManeuverMisses || 0) + (this.ppManeuverShotsBlocked || 0);\n }\n\n get shManeuverShots(): number {\n return (this.shManeuverOnGoals || 0) + (this.shManeuverMisses || 0) + (this.shManeuverShotsBlocked || 0);\n }\n\n get evManeuverShots(): number {\n return (this.evManeuverOnGoals || 0) + (this.evManeuverMisses || 0) + (this.evManeuverShotsBlocked || 0);\n }\n\n get maneuverShotMisses(): number {\n return (this.ppManeuverMisses || 0) + (this.shManeuverMisses || 0) + (this.evManeuverMisses || 0);\n }\n\n get maneuverShotOnGoals(): number {\n return (this.ppManeuverOnGoals || 0) + (this.shManeuverOnGoals || 0) + (this.evManeuverOnGoals || 0);\n }\n\n get maneuverShotsBlocked(): number {\n return (this.ppManeuverShotsBlocked || 0) + (this.shManeuverShotsBlocked || 0) + (this.evManeuverShotsBlocked || 0);\n }\n\n get maneuverShots(): number {\n return this.maneuverShotMisses + this.maneuverShotOnGoals + this.maneuverShotsBlocked;\n }\n\n get maneuverGoalsPercent(): number {\n if (!this.totalManeuverGoals || !this.maneuverShots) {\n return 0;\n }\n return Math.round(1000 * this.totalManeuverGoals / this.maneuverShots) / 10;\n }\n\n get totalCenterForwardGoals(): number {\n return (this.ppCenterForwardGoals || 0) + (this.shCenterForwardGoals || 0) + (this.evCenterForwardGoals || 0);\n }\n\n get ppCenterForwardShots(): number {\n return (this.ppCenterForwardOnGoals || 0) + (this.ppCenterForwardMisses || 0) + (this.ppCenterForwardShotsBlocked || 0);\n }\n\n get shCenterForwardShots(): number {\n return (this.shCenterForwardOnGoals || 0) + (this.shCenterForwardMisses || 0) + (this.shCenterForwardShotsBlocked || 0);\n }\n\n get evCenterForwardShots(): number {\n return (this.evCenterForwardOnGoals || 0) + (this.evCenterForwardMisses || 0) + (this.evCenterForwardShotsBlocked || 0);\n }\n\n get centerForwardShotMisses(): number {\n return (this.ppCenterForwardMisses || 0) + (this.shCenterForwardMisses || 0) + (this.evCenterForwardMisses || 0);\n }\n\n get centerForwardShotOnGoals(): number {\n return (this.ppCenterForwardOnGoals || 0) + (this.shCenterForwardOnGoals || 0) + (this.evCenterForwardOnGoals || 0);\n }\n\n get centerForwardShotsBlocked(): number {\n return (this.ppCenterForwardShotsBlocked || 0) + (this.shCenterForwardShotsBlocked || 0) + (this.evCenterForwardShotsBlocked || 0);\n }\n\n get centerForwardShots(): number {\n return this.centerForwardShotMisses + this.centerForwardShotOnGoals + this.centerForwardShotsBlocked;\n }\n\n get centerForwardGoalsPercent(): number {\n if (!this.totalCenterForwardGoals || !this.centerForwardShots) {\n return 0;\n }\n return Math.round(1000 * this.totalCenterForwardGoals / this.centerForwardShots) / 10;\n }\n\n get ppShots(): number {\n return (this.ppShotMisses || 0) + (this.ppShotsOnGoal || 0) + (this.ppShotsBlocked || 0) +\n (this.ppFreeKickMisses || 0) + (this.ppFreeKickOnGoals || 0) + (this.ppFreeKickShotsBlocked || 0) +\n (this.ppCornerMisses || 0) + (this.ppCornerOnGoals || 0) + (this.ppCornerShotsBlocked || 0) +\n this.ppCounterAttackShots + this.ppManeuverShots + this.ppCenterForwardShots;\n }\n\n get evShots(): number {\n return (this.evShotMisses || 0) + (this.evShotsOnGoal || 0) + (this.evShotsBlocked || 0) +\n (this.evFreeKickMisses || 0) + (this.evFreeKickOnGoals || 0) + (this.evFreeKickShotsBlocked || 0) +\n (this.evCornerMisses || 0) + (this.evCornerOnGoals || 0) + (this.evCornerShotsBlocked || 0) +\n this.evCounterAttackShots + this.evManeuverShots + this.evCenterForwardShots;\n }\n\n get shShots(): number {\n return (this.shShotMisses || 0) + (this.shShotsOnGoal || 0) + (this.shShotsBlocked || 0) +\n (this.shFreeKickMisses || 0) + (this.shFreeKickOnGoals || 0) + (this.shFreeKickShotsBlocked || 0) +\n (this.shCornerMisses || 0) + (this.shCornerOnGoals || 0) + (this.shCornerShotsBlocked || 0) +\n this.shCounterAttackShots + this.shManeuverShots + this.shCenterForwardShots;\n }\n\n get totalShGoals(): number {\n return (this.shGoals || 0) + (this.shFreeKickGoals || 0) + (this.shCornerGoals || 0) +\n (this.shCounterAttackGoals || 0) + (this.shManeuverGoals || 0) + (this.shCenterForwardGoals || 0);\n }\n\n get totalEvGoals(): number {\n return (this.evGoals || 0) + (this.evFreeKickGoals || 0) + (this.evCornerGoals || 0) +\n (this.evCounterAttackGoals || 0) + (this.evManeuverGoals || 0) + (this.evCenterForwardGoals || 0);\n }\n\n get totalPpGoals(): number {\n return (this.ppGoals || 0) + (this.ppFreeKickGoals || 0) + (this.ppCornerGoals || 0) +\n (this.ppCounterAttackGoals || 0) + (this.ppManeuverGoals || 0) + (this.ppCenterForwardGoals || 0);\n }\n\n get goals(): number {\n return this.totalShGoals + this.totalEvGoals + this.totalPpGoals;\n }\n\n get totalGoals(): number {\n return this.goals + (this.shootoutGoals || 0);\n }\n\n get shootoutShots(): number {\n return (this.shootoutGoals || 0) + (this.shootoutAttempts || 0);\n }\n\n get inGameShotMisses(): number {\n return (this.ppShotMisses || 0) + (this.evShotMisses || 0) + (this.shShotMisses || 0) +\n this.counterAttackShotMisses + this.maneuverShotMisses + this.centerForwardShotMisses;\n }\n\n get shotMisses(): number {\n return (this.ppFreeKickMisses || 0) + (this.evFreeKickMisses || 0) + (this.shFreeKickMisses || 0) +\n (this.ppCornerMisses || 0) + (this.evCornerMisses || 0) + (this.shCornerMisses || 0) +\n this.inGameShotMisses;\n }\n\n get totalPpShotMisses(): number {\n return (this.ppShotMisses || 0) + (this.ppFreeKickMisses || 0) + (this.ppCornerMisses || 0) +\n (this.ppCounterAttackMisses || 0) + (this.ppManeuverMisses || 0) + (this.ppCenterForwardMisses || 0);\n }\n\n get shotsOnGoal(): number {\n return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0) +\n (this.ppFreeKickOnGoals || 0) + (this.evFreeKickOnGoals || 0) + (this.shFreeKickOnGoals || 0) +\n (this.ppCornerOnGoals || 0) + (this.evCornerOnGoals || 0) + (this.shCornerOnGoals || 0) +\n this.counterAttackShotOnGoals + this.maneuverShotOnGoals + this.centerForwardShotOnGoals;\n }\n\n get totalPpShotsOnGoal(): number {\n return (this.ppShotsOnGoal || 0) + (this.ppFreeKickOnGoals || 0) + (this.ppCornerOnGoals || 0) +\n (this.ppCounterAttackOnGoals || 0) + (this.ppManeuverOnGoals || 0) + (this.ppCenterForwardOnGoals || 0);\n }\n\n get inGameShotsOnGoals(): number {\n return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0) +\n this.counterAttackShotOnGoals + this.maneuverShotOnGoals + this.centerForwardShotOnGoals;\n }\n\n get shots(): number {\n return this.ppShots + this.evShots + this.shShots;\n }\n\n get totalShots(): number {\n return this.shots + this.shootoutShots;\n }\n\n get faceOffs(): number {\n return (this.faceOffWins || 0) + (this.faceOffLosses || 0);\n }\n\n get freeKickShotMisses(): number {\n return (this.ppFreeKickMisses || 0) + (this.evFreeKickMisses || 0) + (this.shFreeKickMisses || 0);\n }\n\n get freeKickShotsBlocked(): number {\n return (this.ppFreeKickShotsBlocked || 0) + (this.evFreeKickShotsBlocked || 0) + (this.shFreeKickShotsBlocked || 0);\n }\n\n get freeKickOnGoals(): number {\n return (this.ppFreeKickOnGoals || 0) + (this.evFreeKickOnGoals || 0) + (this.shFreeKickOnGoals || 0);\n }\n\n get totalFreeKickGoals(): number {\n return (this.ppFreeKickGoals || 0) + (this.shFreeKickGoals || 0) + (this.evFreeKickGoals || 0);\n }\n\n get totalFreeKicks(): number {\n return (this.freeKickSelfs || 0) + (this.freeKickPasses || 0) +\n this.freeKickShotMisses + this.freeKickOnGoals + this.totalFreeKickGoals + this.freeKickShotsBlocked;\n }\n\n get freeKickGoalsPercent(): number {\n if (!this.totalFreeKickGoals || !this.totalFreeKicks) {\n return 0;\n }\n return Math.round(1000 * this.totalFreeKickGoals / this.totalFreeKicks) / 10;\n }\n\n get totalCornerGoals(): number {\n return (this.ppCornerGoals || 0) + (this.shCornerGoals || 0) + (this.evCornerGoals || 0);\n }\n\n get cornerShotMisses(): number {\n return (this.ppCornerMisses || 0) + (this.shCornerMisses || 0) + (this.evCornerMisses || 0);\n }\n\n get cornerOnGoals(): number {\n return (this.ppCornerOnGoals || 0) + (this.shCornerOnGoals || 0) + (this.evCornerOnGoals || 0);\n }\n\n get cornerShotsBlocked(): number {\n return (this.ppCornerShotsBlocked || 0) + (this.shCornerShotsBlocked || 0) + (this.evCornerShotsBlocked || 0);\n }\n\n get totalCorners(): number {\n return (this.cornerSelfs || 0) + (this.cornerPasses || 0) + this.cornerShotsBlocked +\n this.cornerOnGoals + this.cornerShotMisses + this.totalCornerGoals;\n }\n\n get shotsBlocked(): number {\n return (this.ppShotsBlocked || 0) + (this.evShotsBlocked || 0) + (this.shShotsBlocked || 0) +\n this.counterAttackShotsBlocked + this.maneuverShotsBlocked + this.centerForwardShotsBlocked +\n this.freeKickShotsBlocked + this.cornerShotsBlocked;\n }\n\n get totalFouls(): number {\n return (this.fouls || 0) + (this.personalFouls || 0);\n }\n\n get totalPenalties(): number {\n return (this.minorPenalties || 0) + (this.majorPenalties || 0) + (this.matchPenalties || 0);\n }\n\n get positionAttackGoals(): number {\n return (this.shGoals || 0) + (this.evGoals || 0) + (this.ppGoals || 0);\n }\n\n get positionAttackShotsOnGoal(): number {\n return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0);\n }\n\n get positionAttackShotsMiss(): number {\n return (this.ppShotMisses || 0) + (this.evShotMisses || 0) + (this.shShotMisses || 0);\n }\n\n get positionAttackShots(): number {\n return this.positionAttackShotsOnGoal + this.positionAttackShotsMiss;\n }\n\n get positionAttackGoalsPercent(): number {\n if (!this.positionAttackGoals || !this.positionAttackShots) {\n return 0;\n }\n return Math.round(1000 * this.positionAttackGoals / this.positionAttackShots) / 10;\n }\n\n get totalInGameGoals(): number {\n return this.totalCenterForwardGoals + this.totalManeuverGoals + this.totalCounterAttackGoals + this.positionAttackGoals;\n }\n\n get ppGoalsPercent(): number {\n if (!this.totalPpGoals || !this.ppShots) {\n return 0;\n }\n return Math.round(1000 * this.totalPpGoals / this.ppShots) / 10;\n }\n\n get evGoalsPercent(): number {\n if (!this.totalEvGoals || !this.evShots) {\n return 0;\n }\n return Math.round(1000 * this.totalEvGoals / this.evShots) / 10;\n }\n\n get shGoalsPercent(): number {\n if (!this.totalShGoals || !this.shShots) {\n return 0;\n }\n return Math.round(1000 * this.totalShGoals / this.shShots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get goalsPercent(): number {\n if (!this.goals || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.goals / this.shots) / 10;\n }\n\n get totalGoalsPercent(): number {\n if (!this.totalGoals || !this.totalShots) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.totalShots) / 10;\n }\n\n get faceOffPercent(): number {\n if (!this.faceOffWins || !this.faceOffs) {\n return 0;\n }\n return Math.round(1000 * this.faceOffWins / this.faceOffs) / 10;\n }\n\n get shootoutGoalsPercent(): number {\n if (!this.shootoutGoals || !this.shootoutShots) {\n return 0;\n }\n return Math.round(1000 * this.shootoutGoals / this.shootoutShots) / 10;\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n\n /*goalie stat */\n get positionAttackSaves(): number {\n return (this.ppSaves || 0) + (this.shSaves || 0) + (this.evSaves || 0);\n }\n\n get positionAttackShotsAgainst(): number {\n return this.positionAttackSaves + (this.goalsAgainst || 0);\n }\n\n get positionAttackSavesPercent(): number {\n if (!this.positionAttackSaves || !this.positionAttackShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.positionAttackSaves / this.positionAttackShotsAgainst) / 10;\n }\n\n get counterAttackSaves(): number {\n return (this.ppCounterAttackSaves || 0) + (this.shCounterAttackSaves || 0) + (this.evCounterAttackSaves || 0);\n }\n\n get counterAttackShotsAgainst(): number {\n return this.counterAttackSaves + (this.counterAttackGoalsAgainst || 0);\n }\n\n get counterAttackSavesPercent(): number {\n if (!this.counterAttackSaves || !this.counterAttackShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.counterAttackSaves / this.counterAttackShotsAgainst) / 10;\n }\n\n\n get centerForwardSaves(): number {\n return (this.ppCenterForwardSaves || 0) + (this.shCenterForwardSaves || 0) + (this.evCenterForwardSaves || 0);\n }\n\n get centerForwardShotsAgainst(): number {\n return this.centerForwardSaves + (this.centerForwardGoalsAgainst || 0);\n }\n\n get centerForwardSavesPercent(): number {\n if (!this.centerForwardSaves || !this.centerForwardShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.centerForwardSaves / this.centerForwardShotsAgainst) / 10;\n }\n\n get maneuverSaves(): number {\n return (this.ppManeuverSaves || 0) + (this.shManeuverSaves || 0) + (this.evManeuverSaves || 0);\n }\n\n get maneuverShotsAgainst(): number {\n return this.maneuverSaves + (this.maneuverGoalsAgainst || 0);\n }\n\n get maneuverSavesPercent(): number {\n if (!this.maneuverSaves || !this.maneuverShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.maneuverSaves / this.maneuverShotsAgainst) / 10;\n }\n\n get freeKickSaves(): number {\n return (this.ppFreeKickSaves || 0) + (this.shFreeKickSaves || 0) + (this.evFreeKickSaves || 0);\n }\n\n get freeKickShotsAgainst(): number {\n return this.freeKickSaves + (this.freeKickGoalsAgainst || 0);\n }\n\n get freeKickSavesPercent(): number {\n if (!this.freeKickSaves || !this.freeKickShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.freeKickSaves / this.freeKickShotsAgainst) / 10;\n }\n\n get cornerSaves(): number {\n return (this.ppCornerSaves || 0) + (this.shCornerSaves || 0) + (this.evCornerSaves || 0);\n }\n\n get cornerShotsAgainst(): number {\n return this.cornerSaves + (this.cornerGoalsAgainst || 0);\n }\n\n get cornerSavesPercent(): number {\n if (!this.cornerSaves || !this.cornerShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.cornerSaves / this.cornerShotsAgainst) / 10;\n }\n\n get inGameSaves(): number {\n return (this.shSaves || 0) + (this.evSaves || 0) + (this.ppSaves || 0) +\n this.counterAttackSaves + this.maneuverSaves + this.centerForwardSaves;\n }\n\n get saves(): number {\n return this.inGameSaves + this.freeKickSaves + this.cornerSaves;\n }\n\n get totalSaves(): number {\n return this.saves + (this.shootoutSaves || 0);\n }\n\n get inGameGoalsAgainst(): number {\n return (this.goalsAgainst || 0) + (this.counterAttackGoalsAgainst || 0) + (this.maneuverGoalsAgainst || 0) +\n (this.centerForwardGoalsAgainst || 0);\n }\n\n get shootoutShotsAgainst(): number {\n return (this.shootoutSaves || 0) + (this.shootoutGoalsAgainst || 0);\n }\n\n get gameGoalsAgainst(): number {\n return this.inGameGoalsAgainst + (this.freeKickGoalsAgainst || 0) + (this.cornerGoalsAgainst || 0);\n }\n\n get totalGoalsAgainst(): number {\n return this.gameGoalsAgainst + (this.shootoutGoalsAgainst || 0);\n }\n\n get gameShotsAgainst(): number {\n return this.saves + this.gameGoalsAgainst;\n }\n\n get totalShotsAgainst(): number {\n return this.gameShotsAgainst + this.shootoutShotsAgainst;\n }\n\n get shootoutSavesPercent(): number {\n if (!this.shootoutSaves || !this.shootoutShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.shootoutSaves / this.shootoutShotsAgainst) / 10;\n }\n\n get savesPercent(): number {\n if (!this.saves || !this.gameShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.gameShotsAgainst) / 10;\n }\n\n get totalSavesPercent(): number {\n if (!this.totalSaves || !this.totalShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.totalSaves / this.totalShotsAgainst) / 10;\n }\n\n get totalShSaves(): number {\n return (this.shCounterAttackSaves || 0) + (this.shManeuverSaves || 0) + (this.shCenterForwardSaves || 0) +\n (this.shSaves || 0) + (this.shFreeKickSaves || 0) + (this.shCornerSaves || 0);\n }\n\n get totalShGoalsAgainst(): number {\n return (this.shGoalsAgainst || 0) + (this.shFreeKickGoalsAgainst || 0) + (this.shCornerGoalsAgainst || 0) +\n (this.shCounterAttackGoalsAgainst || 0) + (this.shManeuverGoalsAgainst || 0) + (this.shCenterForwardGoalsAgainst || 0);\n }\n\n get totalShShotsAgainst(): number {\n return this.totalShSaves + this.totalShGoalsAgainst;\n }\n\n get totalShSavesPercent(): number {\n if (!this.totalShSaves || !this.totalShShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.totalShSaves / this.totalShShotsAgainst) / 10;\n }\n\n get totalEvSaves(): number {\n return (this.evCounterAttackSaves || 0) + (this.evManeuverSaves || 0) + (this.evCenterForwardSaves || 0) +\n (this.evSaves || 0) + (this.evFreeKickSaves || 0) + (this.evCornerSaves || 0);\n }\n\n get totalEvGoalsAgainst(): number {\n return (this.evGoalsAgainst || 0) + (this.evFreeKickGoalsAgainst || 0) + (this.evCornerGoalsAgainst || 0) +\n (this.evCounterAttackGoalsAgainst || 0) + (this.evManeuverGoalsAgainst || 0) + (this.evCenterForwardGoalsAgainst || 0);\n }\n\n get totalEvShotsAgainst(): number {\n return this.totalEvSaves + this.totalEvGoalsAgainst;\n }\n\n get totalEvSavesPercent(): number {\n if (!this.totalEvSaves || !this.totalEvShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.totalEvSaves / this.totalEvShotsAgainst) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { WaterpoloStatistic } from './waterpolo-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: WaterpoloStatistic,\n competitorTeam: WaterpoloStatistic\n }\n})\nexport class WaterpoloGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: WaterpoloStatistic;\n competitorTeam: WaterpoloStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { WaterpoloGameLog } from '../models/waterpolo-game-log';\nimport { WaterpoloGameStatistic } from '../models/waterpolo-game-statistic';\nimport { WaterpoloGameTeamStatistic } from '../models/waterpolo-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class WaterpoloGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<WaterpoloGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/team_statistic/`).pipe(\n map(result => WaterpoloGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<WaterpoloGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/user_statistic/`).pipe(\n map(result => WaterpoloGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<WaterpoloGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/logs/`).pipe(\n map(result => WaterpoloGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user'|'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { Team } from '../models/team';\nimport { map } from 'rxjs/operators';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TeamUser } from '../models/team-user';\n\n@Injectable({providedIn: 'root'})\nexport class PublicTeamApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n getById(teamId: number): Promise<Team> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_team/${teamId}/`).pipe(\n map(result => Team.toFront(result))\n ).toPromise();\n }\n\n getTournamentTeams(teamId: number, leagueId: number): Promise<TournamentTeam[]> {\n const params = new HttpParams().set('league_id', leagueId.toString());\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_team/${teamId}/tournament_teams/`, {params}).pipe(\n map(result => TournamentTeam.toFront(result))\n ).toPromise();\n }\n\n async getUsers(teamId: number): Promise<TeamUser[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/public_team/${teamId}/users/`)\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { User } from '../models/user';\nimport { map } from 'rxjs/operators';\nimport { Tournament } from '../models/tournament';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\nimport { LeaguePlayer } from '../models/league-player';\n\n@Injectable({providedIn: 'root'})\nexport class PublicUserApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n getById(userId: number): Promise<User> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/`).pipe(\n map(result => User.toFront(result))\n ).toPromise();\n }\n\n getTournaments(userId: number, leagueId: number): Promise<Tournament[]> {\n const params = new HttpParams().set('league_id', leagueId.toString());\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/tournaments/`, {params}).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n getTournamentUser(userId: number, seasonId: number): Promise<TournamentTeamUser> {\n const params = new HttpParams().set('season_id', seasonId.toString());\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/tournament_user/`, {params}).pipe(\n map(result => TournamentTeamUser.toFront(result))\n ).toPromise();\n }\n\n getLeaguePlayer(userId: number, leagueId: number): Promise<LeaguePlayer> {\n const params = new HttpParams().set('league_id', leagueId.toString());\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/league_player/`, {params}).pipe(\n map(result => LeaguePlayer.toFront(result))\n ).toPromise();\n }\n}\n","import { BasketballGameLogTypes } from '../models/basketball-game-log';\n\nexport const BasketballGameLogTypeLocalization = {\n [BasketballGameLogTypes.enter_game]: 'Выход на площадку',\n [BasketballGameLogTypes.exit_game]: 'Ушел с площадки',\n [BasketballGameLogTypes.remove_game]: 'Удаление с площадки',\n [BasketballGameLogTypes.two_point_attempt]: 'Бросок 2 очка',\n [BasketballGameLogTypes.three_point_attempt]: 'Бросок 3 очка',\n [BasketballGameLogTypes.free_throw_attempt]: 'Штрафной бросок',\n [BasketballGameLogTypes.one_point_attempt]: 'Бросок 1 очко',\n [BasketballGameLogTypes.two_point_made]: '2 очка',\n [BasketballGameLogTypes.three_point_made]: '3 очка',\n [BasketballGameLogTypes.free_throw_made]: '1 очко, штрафной',\n [BasketballGameLogTypes.one_point_made]: '1 очко',\n [BasketballGameLogTypes.assist]: 'Передача',\n [BasketballGameLogTypes.block]: 'Блокшот',\n [BasketballGameLogTypes.rebound]: 'Подбор',\n [BasketballGameLogTypes.offensive_rebound]: 'Подбор в нападении',\n [BasketballGameLogTypes.defensive_rebound]: 'Подбор в защите',\n [BasketballGameLogTypes.steal]: 'Перехват',\n [BasketballGameLogTypes.turnover]: 'Потеря',\n [BasketballGameLogTypes.personal_foul]: 'Фол',\n [BasketballGameLogTypes.technical_foul]: 'Технический фол',\n [BasketballGameLogTypes.unsportsmanlike_foul]: 'Неспортиный фол',\n [BasketballGameLogTypes.timeout]: 'Таймаут',\n [BasketballGameLogTypes.team_rebound]: 'Командный подбор',\n};\n","import { BasketballSubLogTypes } from '../models/basketball-game-log';\n\nexport const BasketballGameSubLogTypesLocalization = {\n // Shots\n [BasketballSubLogTypes.jump_shot]: 'Джампшот',\n [BasketballSubLogTypes.step_back_jump_shot]: 'Степ-бэк',\n [BasketballSubLogTypes.floating_jump_shot]: 'Флоатинг',\n [BasketballSubLogTypes.fade_away_jump_shot]: 'Фэйдавэй',\n [BasketballSubLogTypes.pull_up_jump_shot]: 'Пуллап',\n [BasketballSubLogTypes.turnaround_jump_shot]: 'Турнэраунд',\n [BasketballSubLogTypes.dunk]: 'Данк',\n [BasketballSubLogTypes.layup]: 'Лэйап',\n [BasketballSubLogTypes.driving_layup]: 'Драйвинг лэйап',\n [BasketballSubLogTypes.alley_oop]: 'Алейуп',\n [BasketballSubLogTypes.hook_shot]: 'Хукшот',\n\n // foul\n [BasketballSubLogTypes.offensive_foul]: 'В нападении',\n [BasketballSubLogTypes.shot_foul]: 'При броксе',\n [BasketballSubLogTypes.mutual_foul]: 'Обоюдный фол',\n\n // Turnover\n [BasketballSubLogTypes.bad_pass]: 'Плохой пас',\n [BasketballSubLogTypes.ball_handling]: 'На ведении',\n [BasketballSubLogTypes.travel]: 'Пробежка',\n [BasketballSubLogTypes.double_dribble]: 'Двойное ведение',\n [BasketballSubLogTypes.out_of_bounds]: 'Заступ в аут',\n [BasketballSubLogTypes.three_seconds]: '3 секунды',\n [BasketballSubLogTypes.five_seconds]: '5 секунд',\n [BasketballSubLogTypes.eight_seconds]: '8 секунд',\n [BasketballSubLogTypes.twenty_four_seconds]: '24 секунды',\n [BasketballSubLogTypes.back_court]: 'Зона',\n [BasketballSubLogTypes.offensive_goal_tending]: 'Гоалтендинг',\n [BasketballSubLogTypes.other_turnover]: 'Другое',\n};\n","import { HockeyGameLogTypes } from '../models/hockey-game-log';\n\nexport const HockeyGameLogTypeLocalization = {\n [HockeyGameLogTypes.enter_game]: 'Выход на площадку',\n [HockeyGameLogTypes.exit_game]: 'Ушел с площадки',\n [HockeyGameLogTypes.shot_miss]: 'Бросок мимо',\n [HockeyGameLogTypes.shot_on_goal]: 'Бросок по воротам',\n [HockeyGameLogTypes.shot_blocked]: 'Заблокированный бросок',\n [HockeyGameLogTypes.goal]: 'Гол',\n [HockeyGameLogTypes.shootout_attempt]: 'Буллит промах',\n [HockeyGameLogTypes.shootout_goal]: 'Буллит гол',\n [HockeyGameLogTypes.after_game_shootout_attempt]: 'Буллит промах',\n [HockeyGameLogTypes.after_game_shootout_goal]: 'Буллит гол',\n [HockeyGameLogTypes.assist]: 'Передача',\n [HockeyGameLogTypes.block_shot]: 'Блокировка броска',\n [HockeyGameLogTypes.minor_penalty]: 'Малый штраф',\n [HockeyGameLogTypes.major_penalty]: 'Большой штраф',\n [HockeyGameLogTypes.misconduct_penalty]: 'Дисциплинарный штраф',\n [HockeyGameLogTypes.game_misconduct_penalty]: 'Дисциплинарный штраф до конца игры',\n [HockeyGameLogTypes.match_penalty]: 'Матч-штраф',\n [HockeyGameLogTypes.penalty_shot]: 'Штрафной бросок',\n [HockeyGameLogTypes.face_off_lose]: 'Проигрыш в вбрасывании',\n [HockeyGameLogTypes.face_off_win]: 'Победа в вбрасывании',\n [HockeyGameLogTypes.save]: 'Отражен бросок',\n [HockeyGameLogTypes.shootout_save]: 'Отражен бросок',\n [HockeyGameLogTypes.after_game_shootout_save]: 'Отражен бросок',\n [HockeyGameLogTypes.timeout]: 'Таймаут',\n [HockeyGameLogTypes.penalty_start]: 'Начало штрафного времени',\n [HockeyGameLogTypes.penalty_end]: 'Конец штрафного времени',\n [HockeyGameLogTypes.steal]: 'Отбор',\n [HockeyGameLogTypes.loss]: 'Потеря',\n [HockeyGameLogTypes.sharp_pass]: 'Острая передача',\n};\n","import { FootballGameLogTypes } from '../models/football-game-log';\n\nexport const FootballGameLogTypeLocalization = {\n [FootballGameLogTypes.enter_game]: 'Выход на поле',\n [FootballGameLogTypes.exit_game]: 'Ушел с поля',\n [FootballGameLogTypes.shot_miss]: 'Удар мимо',\n [FootballGameLogTypes.shot_on_goal]: 'Удар в створ',\n [FootballGameLogTypes.shot_blocked]: 'Заблокированный удар',\n [FootballGameLogTypes.goal]: 'Гол',\n [FootballGameLogTypes.assist]: 'Передача',\n [FootballGameLogTypes.penalty_attempt]: 'Пенальти промах',\n [FootballGameLogTypes.penalty_goal]: 'Пенальти гол',\n [FootballGameLogTypes.small_penalty_attempt]: '10-метровый промах',\n [FootballGameLogTypes.small_penalty_goal]: '10-метровый гол',\n [FootballGameLogTypes.block_shot]: 'Блокировка удара',\n [FootballGameLogTypes.corner]: 'Угловой',\n [FootballGameLogTypes.free_kick]: 'Штрафной удар',\n [FootballGameLogTypes.save]: 'Отражен удар',\n [FootballGameLogTypes.penalty_save]: 'Отражен пенальти',\n [FootballGameLogTypes.small_penalty_save]: 'Отражен 10 метровый',\n [FootballGameLogTypes.foul]: 'Фол',\n [FootballGameLogTypes.yellow_card]: 'Желтая карточка',\n [FootballGameLogTypes.red_card]: 'Красная карточка',\n [FootballGameLogTypes.perfect_pass]: 'Пас',\n [FootballGameLogTypes.loss]: 'Потеря',\n [FootballGameLogTypes.steal]: 'Перехват',\n [FootballGameLogTypes.out]: 'Аут',\n [FootballGameLogTypes.timeout]: 'Таймаут',\n [FootballGameLogTypes.auto_goal]: 'Автогол',\n [FootballGameLogTypes.end_game_penalty_goal]: 'Пенальти гол',\n [FootballGameLogTypes.end_game_penalty_miss]: 'Пенальти промах',\n [FootballGameLogTypes.end_game_penalty_save]: 'Отражен пенальти',\n};\n","import { HandballGameLogTypes } from '../models/handball-game-log';\n\nexport const HandballGameLogTypeLocalization = {\n [HandballGameLogTypes.enter_game]: 'Выход на поле',\n [HandballGameLogTypes.exit_game]: 'Ушел с поля',\n [HandballGameLogTypes.shot_miss]: 'Бросок мимо',\n [HandballGameLogTypes.shot_on_goal]: 'Бросок в створ',\n [HandballGameLogTypes.shot_blocked]: 'Заблокированный бросок',\n [HandballGameLogTypes.goal]: 'Гол',\n [HandballGameLogTypes.assist]: 'Передача',\n [HandballGameLogTypes.penalty_miss]: '7м промах',\n [HandballGameLogTypes.penalty_shot_on_goal]: '7м в створ',\n [HandballGameLogTypes.penalty_goal]: '7м гол',\n [HandballGameLogTypes.save]: 'Сэйв',\n [HandballGameLogTypes.penalty_save]: 'Сэйв 7м',\n [HandballGameLogTypes.foul]: 'Фол',\n [HandballGameLogTypes.yellow_card]: 'Желлтая карточка',\n [HandballGameLogTypes.red_card]: 'Красная карточка',\n [HandballGameLogTypes.two_minute_foul]: '2х минутный штраф',\n [HandballGameLogTypes.turnover]: 'Потеря',\n [HandballGameLogTypes.steal]: 'Перехват',\n [HandballGameLogTypes.block_shot]: 'Блок броска',\n [HandballGameLogTypes.timeout]: 'Таймаут'\n};\n","import { WaterpoloGameLogTypes } from '../models/waterpolo-game-log';\n\nexport const WaterpoloGameLogTypeLocalization = {\n [WaterpoloGameLogTypes.enter_game]: 'Выход на площадку',\n [WaterpoloGameLogTypes.exit_game]: 'Ушел с площадки',\n [WaterpoloGameLogTypes.shot_miss]: 'Бросок мимо',\n [WaterpoloGameLogTypes.counterattack_miss]: 'Бросок мимо в контратаке',\n [WaterpoloGameLogTypes.maneuver_miss]: 'Бросок мимо с маневра',\n [WaterpoloGameLogTypes.center_forward_miss]: 'Бросок мимо со столба',\n [WaterpoloGameLogTypes.shot_on_goal]: 'Бросок по воротам',\n [WaterpoloGameLogTypes.counterattack_on_goal]: 'Бросок по воротам в контратаке',\n [WaterpoloGameLogTypes.maneuver_on_goal]: 'Бросок по воротам с маневра',\n [WaterpoloGameLogTypes.center_forward_on_goal]: 'Бросок по воротам со столба',\n [WaterpoloGameLogTypes.shot_blocked]: 'Заблокирован бросок',\n [WaterpoloGameLogTypes.counter_attack_shot_blocked]: 'Заблокирован бросок в контратаке',\n [WaterpoloGameLogTypes.maneuver_shot_blocked]: 'Заблокирован бросок с маневра',\n [WaterpoloGameLogTypes.center_forward_shot_blocked]: 'Заблокирован бросок со столба',\n [WaterpoloGameLogTypes.goal]: 'Гол',\n [WaterpoloGameLogTypes.maneuver_goal]: 'Гол с маневра',\n [WaterpoloGameLogTypes.counterattack_goal]: 'Гол в контратаке',\n [WaterpoloGameLogTypes.center_forward_goal]: 'Гол со столба',\n [WaterpoloGameLogTypes.shootout_attempt]: 'Пенальти промах',\n [WaterpoloGameLogTypes.shootout_goal]: 'Пенальти гол',\n [WaterpoloGameLogTypes.after_game_shootout_attempt]: 'Пенальти промах',\n [WaterpoloGameLogTypes.after_game_shootout_goal]: 'Пенальти гол',\n [WaterpoloGameLogTypes.assist]: 'Голевая передача',\n [WaterpoloGameLogTypes.block_shot]: 'Блокировка броска',\n [WaterpoloGameLogTypes.minor_penalty]: 'Удаление на 20 сек.',\n [WaterpoloGameLogTypes.major_penalty]: 'Удаление + 20 сек. штраф',\n [WaterpoloGameLogTypes.match_penalty]: 'Удаление + 4 мин. штраф',\n [WaterpoloGameLogTypes.foul]: 'Фол',\n [WaterpoloGameLogTypes.penalty_foul]: 'Фол пенальти',\n [WaterpoloGameLogTypes.attack_foul]: 'Фол в нападении',\n [WaterpoloGameLogTypes.personal_foul]: 'Персональный фол',\n [WaterpoloGameLogTypes.penalty_shot]: 'Штрафной бросок',\n [WaterpoloGameLogTypes.face_off_lose]: 'Проигрыш в спринте',\n [WaterpoloGameLogTypes.face_off_win]: 'Победа в спринте',\n [WaterpoloGameLogTypes.save]: 'Отражен бросок',\n [WaterpoloGameLogTypes.counterattack_save]: 'Отражен бросок в контратаке',\n [WaterpoloGameLogTypes.maneuver_save]: 'Отражен бросок с маневра',\n [WaterpoloGameLogTypes.center_forward_save]: 'Отражен бросок со столба',\n [WaterpoloGameLogTypes.free_kick_save]: 'Отражен бросок со свободного',\n [WaterpoloGameLogTypes.corner_save]: 'Отражен бросок с углового',\n [WaterpoloGameLogTypes.shootout_save]: 'Отражен бросок с пенальти',\n [WaterpoloGameLogTypes.after_game_shootout_save]: 'Отражен бросок с пенальти',\n [WaterpoloGameLogTypes.timeout]: 'Таймаут',\n [WaterpoloGameLogTypes.penalty_start]: 'Начало штрафного времени',\n [WaterpoloGameLogTypes.penalty_end]: 'Конец штрафного времени',\n [WaterpoloGameLogTypes.yellow_card]: 'Желтая карточка',\n [WaterpoloGameLogTypes.red_card]: 'Красная карточка',\n [WaterpoloGameLogTypes.turnover]: 'Переход владения',\n [WaterpoloGameLogTypes.loss]: 'Потеря',\n [WaterpoloGameLogTypes.steal]: 'Перехват',\n [WaterpoloGameLogTypes.tackle]: 'Отбор',\n [WaterpoloGameLogTypes.free_kick_goal]: 'Гол со свободного удара',\n [WaterpoloGameLogTypes.free_kick_on_goal]: 'Бросок со свободного удара в створ',\n [WaterpoloGameLogTypes.free_kick_miss]: 'Бросок мимо со свободного удара',\n [WaterpoloGameLogTypes.free_kick_shot_blocked]: 'Заблокирован бросок со свободного удара',\n [WaterpoloGameLogTypes.free_kick_pass]: 'Пас со свободного удара',\n [WaterpoloGameLogTypes.free_kick_self]: 'Розыгрыш свободного удара',\n [WaterpoloGameLogTypes.corner_goal]: 'Гол с углового',\n [WaterpoloGameLogTypes.corner_on_goal]: 'Бросок с углового в створ',\n [WaterpoloGameLogTypes.corner_miss]: 'Бросок мимо с углового',\n [WaterpoloGameLogTypes.corner_shot_blocked]: 'Заблокирован бросок с углового',\n [WaterpoloGameLogTypes.corner_pass]: 'Пас с углового',\n [WaterpoloGameLogTypes.corner_self]: 'Розыгрыш углового',\n [WaterpoloGameLogTypes.complete_penalty_time]: 'Досрочное завершение штрафа'\n};\n","import { OvertimeTypes } from '../models/tournament';\n\nexport const OvertimeTypeLocalization = {\n [OvertimeTypes.to_score_diff]: 'До разницы в N мячей',\n [OvertimeTypes.to_score_total]: 'До N очков',\n [OvertimeTypes.time]: 'По времени',\n [OvertimeTypes.without_overtime]: 'Без овертайма',\n [OvertimeTypes.to_first_goal]: 'На N минут до первой шайбы',\n [OvertimeTypes.to_first_goal_and_bullitts]: 'На N минут до первой шайбы + буллиты',\n [OvertimeTypes.bullitts]: 'Буллиты',\n [OvertimeTypes.penalties]: 'Пенальти',\n [OvertimeTypes.time_and_penalties]: 'Дополнительное время + пенальти'\n};\n","import { RugbyFoulSanctions } from '../models/rugby-foul-type';\n\nexport const RugbyFoulSanctionLocalization = {\n [RugbyFoulSanctions.scrum]: 'Схватка',\n [RugbyFoulSanctions.lineout]: 'Корридор',\n [RugbyFoulSanctions.start_kick]: 'Начальный удар',\n [RugbyFoulSanctions.free_kick]: 'Свободный удар',\n [RugbyFoulSanctions.penalty_shot]: 'Штрафной удар',\n [RugbyFoulSanctions.twenty_two_meters_kick]: 'Удар с 22 метров',\n [RugbyFoulSanctions.conversion_cancel]: 'Отмена удара',\n [RugbyFoulSanctions.yellow_card]: 'Желтая карточка',\n [RugbyFoulSanctions.red_card]: 'Красная карточка',\n};\n","import { RugbyFoulGameStage } from '../models/rugby-foul-type';\n\nexport const RugbyFoulGameStageLocalization = {\n [RugbyFoulGameStage.start_kick]: 'Начальные удары',\n [RugbyFoulGameStage.open_game]: 'Открытая игра',\n [RugbyFoulGameStage.tackle]: 'Игроки на земле, Захват',\n [RugbyFoulGameStage.ruck_or_maul]: 'Рак, мол',\n [RugbyFoulGameStage.scrum]: 'Схватка',\n [RugbyFoulGameStage.out_and_lineout]: 'Аут и коридор',\n [RugbyFoulGameStage.scoring_field]: 'Зачетное поле',\n [RugbyFoulGameStage.kick_on_goal]: 'Удар по воротам',\n [RugbyFoulGameStage.free_kick]: 'Штрафной, свободный удар',\n [RugbyFoulGameStage.team]: 'Команда',\n};\n","import { RugbyGameLogTypes } from '../models/rugby-game-log';\n\nexport const RugbyGameLogTypeLocalization = {\n [RugbyGameLogTypes.enter_game]: 'Вышел на поле',\n [RugbyGameLogTypes.exit_game]: 'Ушел с поля',\n [RugbyGameLogTypes.try]: 'Попытка',\n [RugbyGameLogTypes.penalty_try]: 'Штрафная попытка',\n [RugbyGameLogTypes.conversion_goal]: 'Реализация',\n [RugbyGameLogTypes.conversion_miss]: 'Реализация промах',\n [RugbyGameLogTypes.penalty_miss]: 'Штрафной промах',\n [RugbyGameLogTypes.penalty_goal]: 'Штрафной гол',\n [RugbyGameLogTypes.penalty_kick_to_touch]: 'Штрафной в аут',\n [RugbyGameLogTypes.tap_penalty]: 'Штрафной розыгран',\n [RugbyGameLogTypes.drop_goal]: 'Дроп-гол',\n [RugbyGameLogTypes.drop_goal_miss]: 'Дроп-гол промах',\n [RugbyGameLogTypes.free_kick]: 'Свободный удар',\n [RugbyGameLogTypes.foul]: 'Фол',\n [RugbyGameLogTypes.yellow_card]: 'Желтая карточка',\n [RugbyGameLogTypes.red_card]: 'Красная карточка',\n [RugbyGameLogTypes.offload]: 'Скидка при завхвате',\n [RugbyGameLogTypes.tackle]: 'Успешный захват',\n [RugbyGameLogTypes.handling_error]: 'Ошибка приема',\n [RugbyGameLogTypes.carries_over_gainline]: 'Прорыв линии',\n [RugbyGameLogTypes.bleeding_injury]: 'Кровоточащая травма',\n [RugbyGameLogTypes.head_injury]: 'Травма головы',\n [RugbyGameLogTypes.end_game_penalty_miss]: 'Штрафной промах',\n [RugbyGameLogTypes.end_game_penalty_goal]: 'Штрафной гол',\n [RugbyGameLogTypes.foot_field_shot]: 'Удар ногой в поле',\n [RugbyGameLogTypes.foot_out_shot]: 'Удар ногой в аут',\n\n [RugbyGameLogTypes.timeout]: 'Таймаут',\n [RugbyGameLogTypes.scrum_won]: 'Схватка выиграна',\n [RugbyGameLogTypes.scrum_lost]: 'Схватка проиграна',\n [RugbyGameLogTypes.scrum_won_free]: 'Схватка выиграна без сопротивления',\n [RugbyGameLogTypes.lineout_won]: 'Коридор выигран',\n [RugbyGameLogTypes.lineout_lost]: 'Коридор проигран',\n [RugbyGameLogTypes.quick_throw]: 'Быстрый вброс',\n [RugbyGameLogTypes.ruck_won]: 'Рак выигран',\n [RugbyGameLogTypes.ruck_lost]: 'Рак проигран',\n [RugbyGameLogTypes.maul_won]: 'Мол выигран',\n [RugbyGameLogTypes.maul_lost]: 'Мол проигран',\n [RugbyGameLogTypes.team_foul]: 'Нарушение',\n [RugbyGameLogTypes.start_kick]: 'Начальный удар',\n [RugbyGameLogTypes.twenty_two_meters_kick]: 'Удар с 22 метров',\n [RugbyGameLogTypes.goal_kick]: 'Удар от ворот',\n};\n","import { TeamUserRole } from '../models/team-user';\n\nexport const TeamUserRoleLocalization = {\n [TeamUserRole.member]: 'Пользователь',\n [TeamUserRole.moderator]: 'Модератор',\n [TeamUserRole.admin]: 'Владелец',\n [TeamUserRole.coach]: 'Тренер',\n [TeamUserRole.head_coach]: 'Главный тренер',\n [TeamUserRole.playing_coach]: 'Играющий тренер',\n [TeamUserRole.manager]: 'Менеджер',\n [TeamUserRole.head_manager]: 'Генеральный менеджер',\n [TeamUserRole.captain]: 'Капитан',\n [TeamUserRole.assistant]: 'Ассистент',\n};\n","import { GameBasketballPosition, WorkHand } from '../models/basketball-profile';\nimport { GameVolleyballPosition, VolleyballWorkHand } from '../models/volleyball-profile';\nimport { GameHockeyPosition } from '../models/hockey-profile';\nimport { FootballWorkFoot, GameFootballPosition } from '../models/football-profile';\nimport { GameHandballPosition } from '../models/handball-profile';\nimport { GameRugbyPosition } from '../models/rugby-profile';\nimport { GameWaterpoloPosition, WaterpoloWorkHand } from '../models/waterpolo-profile';\n\nexport const GameBasketballPositionLocalization = {\n [GameBasketballPosition.point_guard]: 'Разыгрывающий защитник',\n [GameBasketballPosition.shooting_guard]: 'Атакующий защитник',\n [GameBasketballPosition.small_forward]: 'Легкий форвард',\n [GameBasketballPosition.power_forward]: 'Мощный форвард',\n [GameBasketballPosition.center]: 'Центровой',\n};\n\nexport const GameBasketballPositionShortLocalization = {\n [GameBasketballPosition.point_guard]: 'PG',\n [GameBasketballPosition.shooting_guard]: 'SG',\n [GameBasketballPosition.small_forward]: 'SF',\n [GameBasketballPosition.power_forward]: 'PF',\n [GameBasketballPosition.center]: 'C',\n};\n\nexport const WorkHandLocalization = {\n [WorkHand.left]: 'Левая',\n [WorkHand.right]: 'Правая'\n};\n\nexport const HockeyWorkHandLocalization = {\n [WorkHand.left]: 'Левый',\n [WorkHand.right]: 'Правый'\n};\n\nexport const GameVolleyballPositionLocalization = {\n [GameVolleyballPosition.setter]: 'Связующий',\n [GameVolleyballPosition.libero]: 'Либеро',\n [GameVolleyballPosition.middle_player]: 'Центральный блокирующий',\n [GameVolleyballPosition.receiver_attacker]: 'Доигровщик',\n [GameVolleyballPosition.dioganal]: 'Диагональный',\n};\n\nexport const GameVolleyballPositionShortLocalization = {\n [GameVolleyballPosition.setter]: 'S',\n [GameVolleyballPosition.libero]: 'L',\n [GameVolleyballPosition.middle_player]: 'MP',\n [GameVolleyballPosition.receiver_attacker]: 'RA',\n [GameVolleyballPosition.dioganal]: 'D',\n};\n\nexport const GameVolleyballPositionShortRuLocalization = {\n [GameVolleyballPosition.setter]: 'связ.',\n [GameVolleyballPosition.libero]: 'либеро',\n [GameVolleyballPosition.middle_player]: 'блок.',\n [GameVolleyballPosition.receiver_attacker]: 'доигр.',\n [GameVolleyballPosition.dioganal]: 'диаг.',\n};\n\nexport const VolleyballWorkHandLocalization = {\n [VolleyballWorkHand.left]: 'Левая',\n [VolleyballWorkHand.right]: 'Правая'\n};\n\nexport const GameHockeyPositionLocalization = {\n [GameHockeyPosition.goaltender]: 'Вратарь',\n [GameHockeyPosition.defensemen]: 'Защитник',\n [GameHockeyPosition.forward]: 'Нападающий'\n};\n\nexport const GameFootballPositionLocalization = {\n [GameFootballPosition.goalkeeper]: 'Вратарь',\n [GameFootballPosition.defensemen]: 'Защитник',\n [GameFootballPosition.midfielder]: 'Полузащитник',\n [GameFootballPosition.forward]: 'Нападающий'\n};\n\nexport const FootballWorkFootLocalization = {\n [FootballWorkFoot.left]: 'Левая',\n [FootballWorkFoot.right]: 'Правая',\n [FootballWorkFoot.both]: 'Обе'\n};\n\nexport const GameHandballPositionLocalization = {\n [GameHandballPosition.goalkeeper]: 'Вратарь',\n [GameHandballPosition.winger]: 'Крайний',\n [GameHandballPosition.pivot]: 'Линейный',\n [GameHandballPosition.centre_back]: 'Центральный',\n [GameHandballPosition.fullback]: 'Полусредний',\n};\n\nexport const GameRugbyPositionLocalization = {\n [GameRugbyPosition.front_line]: 'Надающий первой линии',\n [GameRugbyPosition.second_line]: 'Нападающий второй линии',\n [GameRugbyPosition.back_line]: 'Нападающий задней линии',\n [GameRugbyPosition.halfback]: 'Полузащитник',\n [GameRugbyPosition.three_quarter]: 'Трехчетвертный',\n [GameRugbyPosition.fullback]: 'Замыкающий'\n};\n\nexport const GameWaterpoloPositionLocalization = {\n [GameWaterpoloPosition.defensemen]: 'Защитник',\n [GameWaterpoloPosition.goalkeeper]: 'Вратарь',\n [GameWaterpoloPosition.center_forward]: 'Центральный нападающий',\n [GameWaterpoloPosition.mobile_forward]: 'Подвижный нападающий',\n};\n\nexport const GameWaterpoloPositionShortRuLocalization = {\n [GameWaterpoloPosition.defensemen]: 'З',\n [GameWaterpoloPosition.goalkeeper]: 'Вр',\n [GameWaterpoloPosition.center_forward]: 'ЦН',\n [GameWaterpoloPosition.mobile_forward]: 'ПН',\n};\n\nexport const WaterpoloWorkHandLocalization = {\n [WaterpoloWorkHand.left]: 'Левая',\n [WaterpoloWorkHand.right]: 'Правая'\n};\n\n","import { VolleyballGameLogType } from '../models/volleyball-game-log';\n\nexport const VolleyballGameLogTypeLocalization = {\n [VolleyballGameLogType.enter_game]: 'Выход на площадку',\n [VolleyballGameLogType.exit_game]: 'Уход с площадки',\n [VolleyballGameLogType.remove_game]: 'Удаление с площадки',\n [VolleyballGameLogType.serve_ace]: 'Эйс',\n [VolleyballGameLogType.serve_hit]: 'Подача',\n [VolleyballGameLogType.serve_fault]: 'Ошибка на подаче',\n [VolleyballGameLogType.good_serve]: 'Усложнённая подача',\n [VolleyballGameLogType.attack_spike]: 'Результативная атака',\n [VolleyballGameLogType.attack_shot]: 'Атака',\n [VolleyballGameLogType.attack_fault]: 'Ошибка атаки',\n [VolleyballGameLogType.stuff_block]: 'Результативный блок',\n [VolleyballGameLogType.block_rebound]: 'Блок',\n [VolleyballGameLogType.block_fault]: 'Ошибка на блоке',\n [VolleyballGameLogType.excellent_receive]: 'Отличный прием',\n [VolleyballGameLogType.receive]: 'Прием',\n [VolleyballGameLogType.receive_fault]: 'Ошибка на приеме',\n [VolleyballGameLogType.serve_receive]: 'Прием подачи',\n [VolleyballGameLogType.excellent_serve_receive]: 'Отличный прием подачи',\n [VolleyballGameLogType.serve_receive_fault]: 'Ошибка приема подачи',\n [VolleyballGameLogType.point]: 'Очко',\n [VolleyballGameLogType.fault]: 'Ошибка',\n [VolleyballGameLogType.timeout]: 'Таймаут',\n [VolleyballGameLogType.yellow_card]: 'Предупреждение',\n [VolleyballGameLogType.tie_ball]: 'Спорный мяч',\n};\n","import { OrganizationStatuses } from '../models/organization';\n\nexport const OrganizationStatusesLocalization = {\n [OrganizationStatuses.active]: 'Активен',\n [OrganizationStatuses.blocked]: 'Заблокирован',\n [OrganizationStatuses.not_confirmed]: 'Не подтвержден'\n};\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, enumField, DateTimeField } from './util';\nimport { Organization } from './organization';\n\n\nexport enum OrganizationBillStatuses {\n pending = 1,\n paid,\n canceled,\n}\n\nexport const OrganizationBillStatusLocalization = {\n [OrganizationBillStatuses.pending]: 'Новый',\n [OrganizationBillStatuses.paid]: 'Оплачен',\n [OrganizationBillStatuses.canceled]: 'Отменен',\n};\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n organization: 'organization',\n status: 'status',\n sum: 'sum',\n payment_date: 'paymentDate',\n pay_till_date: 'payTillDate',\n date_from: 'dateFrom',\n date_to: 'dateTo',\n created_at: 'createdAt',\n },\n relation: {\n organization: Organization,\n status: enumField(OrganizationBillStatuses),\n paymentDate: DateTimeField,\n payTillDate: DateTimeField,\n dateFrom: DateTimeField,\n dateTo: DateTimeField,\n createdAt: DateTimeField,\n }\n})\nexport class OrganizationBill extends BaseModel {\n id: number;\n organization: Organization;\n status: OrganizationBillStatuses;\n sum: number;\n paymentDate: Date;\n payTillDate: Date;\n dateFrom: Date;\n dateTo: Date;\n createdAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, enumField, DateTimeField } from './util';\nimport { Game } from './game';\nimport { OrganizationBill } from './organization-bill';\n\n\nexport enum GameBillStatuses {\n pending = 1,\n paid,\n canceled,\n}\n\nexport const GameBillStatusLocalization = {\n [GameBillStatuses.pending]: 'Новый',\n [GameBillStatuses.paid]: 'Оплачен',\n [GameBillStatuses.canceled]: 'Отменен',\n};\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n game: 'game',\n status: 'status',\n organization_bill: 'organizationBill',\n paid_date: 'paidDate',\n price: 'price',\n created_at: 'createdAt',\n },\n relation: {\n game: Game,\n organizationBill: OrganizationBill,\n status: enumField(GameBillStatuses),\n paidDate: DateTimeField,\n createdAt: DateTimeField,\n }\n})\nexport class GameBill extends BaseModel {\n id: number;\n game: Game;\n organizationBill: OrganizationBill;\n status: GameBillStatuses;\n price: number;\n paidDate: Date;\n createdAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n files: 'files',\n key_code: 'keyCode',\n },\n relation: {\n files: listField(File)\n }\n})\nexport class LeaguePlaylist extends BaseModel {\n id: number;\n name: string;\n files: File[];\n keyCode: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook } from './util';\nimport { Organization } from './organization';\nimport { Sport } from './sport';\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n organization: 'organization',\n price: 'price',\n sport: 'sport',\n },\n relation: {\n organization: Organization,\n sport: Sport,\n }\n})\nexport class OrganizationTariff extends BaseModel {\n id: number;\n organization: Organization;\n sport: Sport;\n price: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook } from './util';\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n players_count: 'playersCount',\n teams_count: 'teamsCount',\n games_count: 'gamesCount',\n paid_sum: 'paidSum',\n debt_sum: 'debtSum',\n },\n})\nexport class OrganizationStatistic extends BaseModel {\n id: number;\n playersCount: number;\n teamsCount: number;\n gamesCount: number;\n paidSum: number;\n debtSum: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { of, ReplaySubject, Subject } from 'rxjs';\n\nimport { Centrifuge } from 'centrifuge';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ConfigService } from './config.service';\nimport { Subscription } from 'centrifuge/build/subscription';\nimport { filter, take, tap } from 'rxjs/operators';\nimport { isPlatformBrowser } from '@angular/common';\n\ninterface CentrifugoConfig {\n token: string;\n}\n\n@Injectable({providedIn: 'root'})\nexport class CentrifugoService {\n private channels$: { [key: string]: Subject<any> } = {};\n private subscriptions: { [key: string]: Subscription } = {};\n private centrifuge: Centrifuge;\n private initializeEngineSubject: ReplaySubject<boolean>;\n private connectedSubject = new BehaviorSubject<boolean>(false);\n\n get connected$(): Observable<boolean> {\n return this.connectedSubject;\n }\n\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n @Inject(PLATFORM_ID) private platformId: string,\n ) { }\n\n listen<T = any>(channel): Observable<T> {\n if (!isPlatformBrowser(this.platformId)) {\n return new Observable(observer => {\n observer.error('Centrifugo is not available in ssr mode');\n });\n }\n\n if (channel in this.channels$) {\n return this.channels$[channel];\n }\n\n this.channels$[channel] = new Subject<T>();\n this.connect().subscribe(connected => {\n this.subscriptions[channel] = this.addEngineSubscription(channel);\n });\n\n return this.channels$[channel];\n }\n\n unsubscribe(channel): void {\n if (this.subscriptions[channel]) {\n this.subscriptions[channel].unsubscribe();\n delete this.subscriptions[channel];\n }\n if (this.channels$[channel]) {\n this.channels$[channel].complete();\n delete this.channels$[channel];\n }\n }\n\n connect(): Observable<boolean> {\n if (!isPlatformBrowser(this.platformId)) {\n return new Observable(observer => {\n observer.error('Centrifugo is not available in ssr mode');\n });\n }\n\n if (!this.initializeEngineSubject) {\n this.initializeEngineSubject = new ReplaySubject(1);\n\n this.httpClient.get<CentrifugoConfig>(`${this.configService.get('apiUrl')}/api/v1/centrifugo_v2/`)\n .subscribe(config => {\n this.initializeEngine({\n url: this.configService.get('centrifugoUrl'),\n token: config.token,\n transports: ['websocket']\n });\n this.centrifuge.on('connected', () => {\n this.initializeEngineSubject.next(true);\n this.connectedSubject.next(true);\n });\n this.centrifuge.on('disconnected', () => {\n this.connectedSubject.next(false);\n this.initializeEngineSubject.next(false);\n });\n this.centrifuge.connect();\n });\n }\n\n return this.initializeEngineSubject.pipe(filter(item => Boolean(item)), take(1));\n }\n\n publish(channel: string, message: any): Observable<any> {\n if (!isPlatformBrowser(this.platformId)) {\n return new Observable(observer => {\n observer.error('Centrifugo is not available in ssr mode');\n });\n }\n\n return this.connect().pipe(\n tap(() => this.centrifuge.publish(channel, message))\n );\n }\n\n disconnect(): void {\n this.centrifuge.disconnect();\n this.initializeEngineSubject = undefined;\n for (const channel of Object.keys(this.channels$)) {\n this.unsubscribe(channel);\n }\n this.channels$ = {};\n this.subscriptions = {};\n }\n\n private initializeEngine(config: {\n url: string,\n token: string,\n transports: string[]\n }): void {\n this.centrifuge = new Centrifuge(config.url, {\n token: config.token,\n });\n }\n\n private addEngineSubscription(channel: string): Subscription {\n const sub = this.centrifuge.newSubscription(channel);\n sub.on('publication', ctx => {\n this.resolveMessage(channel, ctx.data);\n });\n sub.subscribe();\n return sub;\n }\n\n private resolveMessage(channel: string, message: any): void {\n if (!this.channels$[channel]) {\n return;\n }\n\n this.channels$[channel].next(message);\n }\n}\n","import { ModelInterface } from '../models/util';\n\nexport class StorageEngineField {\n defaultValue: any;\n\n constructor(defaultValue?: any, protected modelClass?: ModelInterface) {\n this.defaultValue = defaultValue;\n }\n\n toFront(value: any): any {\n if (this.modelClass) {\n return this.modelClass.toFront(value);\n }\n return value;\n }\n\n toBack(value: any): any {\n if (this.modelClass) {\n return this.modelClass.toBack(value);\n }\n return value;\n }\n}\n\nexport abstract class StorageEngine {\n constructor(protected name: string, protected fields: {[key: string]: StorageEngineField}) {\n }\n\n addField(key: string, field: StorageEngineField): void {\n this.fields[key] = field;\n }\n\n save(key: string, value: any): void {\n if (!this.fields[key]) {\n return;\n }\n this.setItem(`${this.name}_${key}`, this.fields[key].toBack(value));\n }\n\n get(key: string): any {\n if (!this.fields[key]) {\n return;\n }\n let value = this.getItem(`${this.name}_${key}`);\n if (value === null) {\n value = this.fields[key].defaultValue;\n }\n if (value === null || value === undefined) {\n return value;\n }\n return this.fields[key].toFront(value);\n }\n\n clear(): void {\n for (const field of Object.keys(this.fields)) {\n this.removeItem(field);\n }\n }\n\n protected getItem(key: string): any {\n throw new Error(`Function getItem for store engine ${typeof this} not implemented`);\n }\n\n protected setItem(key: string, value: any): any {\n throw new Error(`Function setItem for store engine ${typeof this} not implemented`);\n }\n\n protected removeItem(key: string): void {\n throw new Error(`Function deleteItem for store engine ${typeof this} not implemented`);\n }\n}\n","import { StorageEngine } from './storage-engine';\n\nexport class LocalStorageEngine extends StorageEngine {\n protected setItem(key: string, value: any) {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n protected getItem(key: string): any {\n try {\n return JSON.parse(localStorage.getItem(key));\n } catch (e) {\n return;\n }\n }\n\n protected removeItem(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","import {\n ɵComponentType as ComponentType,\n ɵDirectiveType as DirectiveType,\n ɵComponentDef as ComponentDef,\n ɵDirectiveDef as DirectiveDef\n} from '@angular/core';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { Subject } from 'rxjs/internal/Subject';\n\nexport interface OnDestroyLike {\n ngOnDestroy(): void;\n [key: string]: any;\n}\n\nexport function componentDestroyed(component: OnDestroyLike): Observable<void> {\n if (!(component as any).__decoratorApplied) {\n throw new Error('Use @UntilDestroy decorator in class');\n }\n\n if (!(component as any).__componentDestroyed$) {\n (component as any).__componentDestroyed$ = new Subject();\n }\n return (component as any).__componentDestroyed$;\n}\n\nexport function UntilDestroy(cmpType: any) {\n const original = cmpType.prototype.ngOnDestroy;\n cmpType.prototype.__decoratorApplied = true;\n cmpType.prototype.ngOnDestroy = function(this: any) {\n original.call(this);\n if (this.__componentDestroyed$) {\n this.__componentDestroyed$.next();\n this.__componentDestroyed$.complete();\n delete this.__componentDestroyed$;\n }\n };\n}\n\nfunction getDef<T>(\n type: DirectiveType<T> | ComponentType<T>\n): DirectiveDef<T> | ComponentDef<T> | unknown {\n return (type as ComponentType<T>).ɵcmp || (type as DirectiveType<T>).ɵdir;\n}\n","export function getCookie(name: string): string {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) {\n return parts.pop().split(';').shift();\n }\n return null;\n}\n","export function parseDate(input: string, format: string = 'yyyy-mm-dd'): Date {\n const parts = input.match(/(\\d+)/g);\n let i = 0;\n const result: {\n yyyy?: number,\n mm?: number,\n dd?: number,\n } = {};\n // extract date-part indexes from the format\n format.replace(/(yyyy|dd|mm)/g, (part: string) => {\n result[part] = +parts[i++];\n return '';\n });\n\n return new Date(result.yyyy, result.mm - 1, result.dd);\n}\n","export function isTouchDevice() {\n const prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');\n const mq = (q) => {\n return window.matchMedia(q).matches;\n };\n\n if (('ontouchstart' in window) || (window as any).DocumentTouch && document instanceof (window as any).DocumentTouch) {\n return true;\n }\n\n // include the 'heartz' as a way to have a non matching MQ to help terminate the join\n // https://git.io/vznFH\n const query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');\n return mq(query);\n}\n","export function getEnumOptions(enumClass): number[] {\n return Object.keys(enumClass)\n .map(v => enumClass[v])\n .filter(v => isNaN(+v) === false)\n .map(v => +v);\n}\n\n","import { captureException } from '@sentry/angular';\n\nexport function handleError(error, force = false, production = true) {\n if (!(error && (error.status === 0 || error.status === 404)) || (force && error.status !== 0)) {\n captureException(error);\n }\n\n if (!production) {\n console.error(error);\n }\n}\n","export interface LinkFavicon {\n rel: string;\n sizes?: string;\n href: string;\n type?: string;\n color?: string;\n}\n\nexport function getIconsData(folder: string): LinkFavicon[] {\n return [\n {rel: 'apple-touch-icon', sizes: '180x180', href: `/assets/favicon/${folder}apple-touch-icon.png`},\n {rel: 'icon', type: 'image/png', sizes: '32x32', href: `/assets/favicon/${folder}favicon-32x32.png`},\n {rel: 'icon', type: 'image/png', sizes: '16x16', href: `/assets/favicon/${folder}favicon-16x16.png`},\n {rel: 'shortcut icon', href: `/assets/favicon/${folder}favicon.ico`},\n {rel: 'manifest', href: `/assets/favicon/${folder}site.webmanifest`},\n {rel: 'mask-icon', href: `/assets/favicon/${folder}safari-pinned-tab.svg`, color: '#ff0000'}\n ];\n}\n\nexport function changeFavicons(document: Document, leagueAlias: string): void {\n let folder = '';\n if (leagueAlias === 'ablmoscow') {\n folder = 'abl/';\n }\n const data = getIconsData(folder);\n for (const item of data) {\n const link = document.createElement('link');\n for (const key of Object.keys(item)) {\n link.setAttribute(key, item[key]);\n }\n document.head.appendChild(link);\n }\n}\n","import { FormGroup } from '@angular/forms';\n\nexport function markFormGroupTouched(formGroup: FormGroup) {\n (Object as any).values(formGroup.controls).forEach(control => {\n control.markAsTouched();\n control.markAsDirty();\n\n if (control instanceof FormGroup) {\n markFormGroupTouched(control);\n } else if (control.controls) {\n control.controls.forEach(c => {\n if (c instanceof FormGroup) {\n markFormGroupTouched(c);\n } else {\n c.markAsTouched();\n c.markAsDirty();\n }\n });\n }\n });\n}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\nimport { debounceTime, delay, map, switchMap } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\n\nexport interface CheckEmailServiceInterface {\n checkEmail(value: string, selfCheck: boolean): Observable<boolean>;\n}\n\nexport const minLengthArrayValidator = (minLength: number) => {\n return (c: AbstractControl) => {\n return c.value.length < minLength\n ? {minLengthArray: {valid: false}}\n : null;\n };\n};\n\nexport const validatePhone = (control: AbstractControl) => {\n if (!control.value) {\n return null;\n }\n const value = `${control.value}`.replace(/\\D/gi, '');\n return value.length === 11 ? null : {invalidPhone: {valid: false}};\n};\n\nexport const validateDate = (control: AbstractControl) => {\n const re = /\\d{2}\\.\\d{2}\\.\\d{4}/gi;\n if (!control.value || re.test(control.value)) {\n return null;\n }\n return {invalidDate: {valid: false}};\n};\n\nexport const validateEmail = (authService: CheckEmailServiceInterface, selfCheck = true, ignore = []) => {\n const subject = of(null).pipe(\n delay(500)\n );\n return (control: AbstractControl) => {\n if (ignore.indexOf(control.value) > -1) {\n return of(null);\n }\n return subject.pipe(\n switchMap(() => authService.checkEmail(control.value, selfCheck).pipe(\n map(valid => valid ? null : {emailTaken: true})\n ))\n );\n };\n};\n\nexport const validateUrl = (control: AbstractControl) => {\n const re = /^(?:http(s)?:\\/\\/)[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$/;\n if (!control.value || re.test(control.value)) {\n return null;\n }\n return {invalidUrl: true};\n};\n\nexport function fileSizeValidator(maxFileSize: number): ValidatorFn {\n return (control: AbstractControl): {[key: string]: any} | null => {\n if (!control.value) {\n return null;\n }\n };\n}\n","import { Inject, Injectable, Injector, PLATFORM_ID } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { getCookie } from './utils/cookie';\nimport { isPlatformBrowser } from '@angular/common';\nimport { ConfigService } from './services/config.service';\n\n@Injectable()\nexport class HttpCookieInterceptor implements HttpInterceptor {\n private isBrowser = isPlatformBrowser(this.platformId);\n\n constructor(\n private injector: Injector,\n private configService: ConfigService,\n @Inject(PLATFORM_ID) private platformId: string,\n ) {\n }\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (!this.isBrowser) {\n return next.handle(req);\n }\n const apiUrl = this.configService.get('apiUrl');\n if (apiUrl === req.url.substr(0, apiUrl.length)) {\n req = req.clone({withCredentials: true});\n }\n const csrf = getCookie('csrftoken');\n if (csrf) {\n req = req.clone({\n setHeaders: {'X-CSRFToken': csrf}\n });\n }\n return next.handle(req);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Subject"],"mappings":"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"}