pro-clubs-shared-dtos 3.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 (511) hide show
  1. package/INTEGRATION_GUIDE.md +237 -0
  2. package/MIGRATION_SUMMARY.md +163 -0
  3. package/README.md +284 -0
  4. package/dist/dtos/api-error-response.d.ts +33 -0
  5. package/dist/dtos/api-error-response.d.ts.map +1 -0
  6. package/dist/dtos/api-error-response.js +27 -0
  7. package/dist/dtos/api-error-response.js.map +1 -0
  8. package/dist/dtos/api-response/api-error-response.dto.d.ts +33 -0
  9. package/dist/dtos/api-response/api-error-response.dto.d.ts.map +1 -0
  10. package/dist/dtos/api-response/api-error-response.dto.js +27 -0
  11. package/dist/dtos/api-response/api-error-response.dto.js.map +1 -0
  12. package/dist/dtos/api-response/index.d.ts +2 -0
  13. package/dist/dtos/api-response/index.d.ts.map +1 -0
  14. package/dist/dtos/api-response/index.js +18 -0
  15. package/dist/dtos/api-response/index.js.map +1 -0
  16. package/dist/dtos/enums/extended-game-status.d.ts +9 -0
  17. package/dist/dtos/enums/extended-game-status.d.ts.map +1 -0
  18. package/dist/dtos/enums/extended-game-status.enum.d.ts +9 -0
  19. package/dist/dtos/enums/extended-game-status.enum.d.ts.map +1 -0
  20. package/dist/dtos/enums/extended-game-status.enum.js +13 -0
  21. package/dist/dtos/enums/extended-game-status.enum.js.map +1 -0
  22. package/dist/dtos/enums/extended-game-status.js +13 -0
  23. package/dist/dtos/enums/extended-game-status.js.map +1 -0
  24. package/dist/dtos/enums/index.d.ts +72 -0
  25. package/dist/dtos/enums/index.d.ts.map +1 -0
  26. package/dist/dtos/enums/index.js +97 -0
  27. package/dist/dtos/enums/index.js.map +1 -0
  28. package/dist/dtos/index.d.ts +5 -0
  29. package/dist/dtos/index.d.ts.map +1 -0
  30. package/dist/dtos/index.js +21 -0
  31. package/dist/dtos/index.js.map +1 -0
  32. package/dist/dtos/models/ban.d.ts +15 -0
  33. package/dist/dtos/models/ban.d.ts.map +1 -0
  34. package/dist/dtos/models/ban.js +87 -0
  35. package/dist/dtos/models/ban.js.map +1 -0
  36. package/dist/dtos/models/chat.d.ts +25 -0
  37. package/dist/dtos/models/chat.d.ts.map +1 -0
  38. package/dist/dtos/models/chat.js +95 -0
  39. package/dist/dtos/models/chat.js.map +1 -0
  40. package/dist/dtos/models/comment.d.ts +14 -0
  41. package/dist/dtos/models/comment.d.ts.map +1 -0
  42. package/dist/dtos/models/comment.js +46 -0
  43. package/dist/dtos/models/comment.js.map +1 -0
  44. package/dist/dtos/models/event.d.ts +54 -0
  45. package/dist/dtos/models/event.d.ts.map +1 -0
  46. package/dist/dtos/models/event.js +102 -0
  47. package/dist/dtos/models/event.js.map +1 -0
  48. package/dist/dtos/models/fixture.d.ts +26 -0
  49. package/dist/dtos/models/fixture.d.ts.map +1 -0
  50. package/dist/dtos/models/fixture.js +58 -0
  51. package/dist/dtos/models/fixture.js.map +1 -0
  52. package/dist/dtos/models/index.d.ts +23 -0
  53. package/dist/dtos/models/index.d.ts.map +1 -0
  54. package/dist/dtos/models/index.js +39 -0
  55. package/dist/dtos/models/index.js.map +1 -0
  56. package/dist/dtos/models/league.d.ts +20 -0
  57. package/dist/dtos/models/league.d.ts.map +1 -0
  58. package/dist/dtos/models/league.js +63 -0
  59. package/dist/dtos/models/league.js.map +1 -0
  60. package/dist/dtos/models/news.d.ts +47 -0
  61. package/dist/dtos/models/news.d.ts.map +1 -0
  62. package/dist/dtos/models/news.js +97 -0
  63. package/dist/dtos/models/news.js.map +1 -0
  64. package/dist/dtos/models/notification.d.ts +16 -0
  65. package/dist/dtos/models/notification.d.ts.map +1 -0
  66. package/dist/dtos/models/notification.js +93 -0
  67. package/dist/dtos/models/notification.js.map +1 -0
  68. package/dist/dtos/models/player-association-request.d.ts +16 -0
  69. package/dist/dtos/models/player-association-request.d.ts.map +1 -0
  70. package/dist/dtos/models/player-association-request.js +89 -0
  71. package/dist/dtos/models/player-association-request.js.map +1 -0
  72. package/dist/dtos/models/season-achievement.d.ts +86 -0
  73. package/dist/dtos/models/season-achievement.d.ts.map +1 -0
  74. package/dist/dtos/models/season-achievement.js +126 -0
  75. package/dist/dtos/models/season-achievement.js.map +1 -0
  76. package/dist/dtos/models/team-of-the-season.d.ts +31 -0
  77. package/dist/dtos/models/team-of-the-season.d.ts.map +1 -0
  78. package/dist/dtos/models/team-of-the-season.js +69 -0
  79. package/dist/dtos/models/team-of-the-season.js.map +1 -0
  80. package/dist/dtos/models/team.d.ts +63 -0
  81. package/dist/dtos/models/team.d.ts.map +1 -0
  82. package/dist/dtos/models/team.js +88 -0
  83. package/dist/dtos/models/team.js.map +1 -0
  84. package/dist/dtos/models/transfer-request.d.ts +18 -0
  85. package/dist/dtos/models/transfer-request.d.ts.map +1 -0
  86. package/dist/dtos/models/transfer-request.js +132 -0
  87. package/dist/dtos/models/transfer-request.js.map +1 -0
  88. package/dist/dtos/models/user.d.ts +21 -0
  89. package/dist/dtos/models/user.d.ts.map +1 -0
  90. package/dist/dtos/models/user.js +109 -0
  91. package/dist/dtos/models/user.js.map +1 -0
  92. package/dist/dtos/requests/create-player-request.d.ts +12 -0
  93. package/dist/dtos/requests/create-player-request.d.ts.map +1 -0
  94. package/dist/dtos/requests/create-player-request.js +3 -0
  95. package/dist/dtos/requests/create-player-request.js.map +1 -0
  96. package/dist/dtos/requests/fixture-game-requests.d.ts +25 -0
  97. package/dist/dtos/requests/fixture-game-requests.d.ts.map +1 -0
  98. package/dist/dtos/requests/fixture-game-requests.js +3 -0
  99. package/dist/dtos/requests/fixture-game-requests.js.map +1 -0
  100. package/dist/dtos/requests/fixture-requests.d.ts +12 -0
  101. package/dist/dtos/requests/fixture-requests.d.ts.map +1 -0
  102. package/dist/dtos/requests/fixture-requests.js +3 -0
  103. package/dist/dtos/requests/fixture-requests.js.map +1 -0
  104. package/dist/dtos/requests/game-requests.d.ts +15 -0
  105. package/dist/dtos/requests/game-requests.d.ts.map +1 -0
  106. package/dist/dtos/requests/game-requests.js +3 -0
  107. package/dist/dtos/requests/game-requests.js.map +1 -0
  108. package/dist/dtos/requests/index.d.ts +8 -0
  109. package/dist/dtos/requests/index.d.ts.map +1 -0
  110. package/dist/dtos/requests/index.js +24 -0
  111. package/dist/dtos/requests/index.js.map +1 -0
  112. package/dist/dtos/requests/player-performance-request.d.ts +15 -0
  113. package/dist/dtos/requests/player-performance-request.d.ts.map +1 -0
  114. package/dist/dtos/requests/player-performance-request.js +3 -0
  115. package/dist/dtos/requests/player-performance-request.js.map +1 -0
  116. package/dist/dtos/requests/player-requests.d.ts +9 -0
  117. package/dist/dtos/requests/player-requests.d.ts.map +1 -0
  118. package/dist/dtos/requests/player-requests.js +3 -0
  119. package/dist/dtos/requests/player-requests.js.map +1 -0
  120. package/dist/dtos/requests/update-player-data-request.d.ts +9 -0
  121. package/dist/dtos/requests/update-player-data-request.d.ts.map +1 -0
  122. package/dist/dtos/requests/update-player-data-request.js +3 -0
  123. package/dist/dtos/requests/update-player-data-request.js.map +1 -0
  124. package/dist/dtos/responses/api-error-response.interface.d.ts +33 -0
  125. package/dist/dtos/responses/api-error-response.interface.d.ts.map +1 -0
  126. package/dist/dtos/responses/api-error-response.interface.js +27 -0
  127. package/dist/dtos/responses/api-error-response.interface.js.map +1 -0
  128. package/dist/dtos/responses/error-dtos.d.ts +33 -0
  129. package/dist/dtos/responses/error-dtos.d.ts.map +1 -0
  130. package/dist/dtos/responses/error-dtos.js +27 -0
  131. package/dist/dtos/responses/error-dtos.js.map +1 -0
  132. package/dist/dtos/responses/event-dtos.d.ts +84 -0
  133. package/dist/dtos/responses/event-dtos.d.ts.map +1 -0
  134. package/dist/dtos/responses/event-dtos.js +3 -0
  135. package/dist/dtos/responses/event-dtos.js.map +1 -0
  136. package/dist/dtos/responses/fixture-dtos.d.ts +46 -0
  137. package/dist/dtos/responses/fixture-dtos.d.ts.map +1 -0
  138. package/dist/dtos/responses/fixture-dtos.js +3 -0
  139. package/dist/dtos/responses/fixture-dtos.js.map +1 -0
  140. package/dist/dtos/responses/game-dtos.d.ts +76 -0
  141. package/dist/dtos/responses/game-dtos.d.ts.map +1 -0
  142. package/dist/dtos/responses/game-dtos.js +3 -0
  143. package/dist/dtos/responses/game-dtos.js.map +1 -0
  144. package/dist/dtos/responses/index.d.ts +11 -0
  145. package/dist/dtos/responses/index.d.ts.map +1 -0
  146. package/dist/dtos/responses/index.js +27 -0
  147. package/dist/dtos/responses/index.js.map +1 -0
  148. package/dist/dtos/responses/league-dtos.d.ts +10 -0
  149. package/dist/dtos/responses/league-dtos.d.ts.map +1 -0
  150. package/dist/dtos/responses/league-dtos.js +3 -0
  151. package/dist/dtos/responses/league-dtos.js.map +1 -0
  152. package/dist/dtos/responses/notification-dtos.d.ts +21 -0
  153. package/dist/dtos/responses/notification-dtos.d.ts.map +1 -0
  154. package/dist/dtos/responses/notification-dtos.js +3 -0
  155. package/dist/dtos/responses/notification-dtos.js.map +1 -0
  156. package/dist/dtos/responses/player-dtos.d.ts +83 -0
  157. package/dist/dtos/responses/player-dtos.d.ts.map +1 -0
  158. package/dist/dtos/responses/player-dtos.js +3 -0
  159. package/dist/dtos/responses/player-dtos.js.map +1 -0
  160. package/dist/dtos/responses/stats-dtos.d.ts +77 -0
  161. package/dist/dtos/responses/stats-dtos.d.ts.map +1 -0
  162. package/dist/dtos/responses/stats-dtos.js +3 -0
  163. package/dist/dtos/responses/stats-dtos.js.map +1 -0
  164. package/dist/dtos/responses/team-dtos.d.ts +28 -0
  165. package/dist/dtos/responses/team-dtos.d.ts.map +1 -0
  166. package/dist/dtos/responses/team-dtos.js +3 -0
  167. package/dist/dtos/responses/team-dtos.js.map +1 -0
  168. package/dist/dtos/responses/transfer-dtos.d.ts +60 -0
  169. package/dist/dtos/responses/transfer-dtos.d.ts.map +1 -0
  170. package/dist/dtos/responses/transfer-dtos.js +3 -0
  171. package/dist/dtos/responses/transfer-dtos.js.map +1 -0
  172. package/dist/dtos/transfer-request/index.d.ts +2 -0
  173. package/dist/dtos/transfer-request/index.d.ts.map +1 -0
  174. package/dist/dtos/transfer-request/index.js +18 -0
  175. package/dist/dtos/transfer-request/index.js.map +1 -0
  176. package/dist/dtos/transfer-request/transfer-request.dto.d.ts +1 -0
  177. package/dist/dtos/transfer-request/transfer-request.dto.d.ts.map +1 -0
  178. package/dist/dtos/transfer-request/transfer-request.dto.js +2 -0
  179. package/dist/dtos/transfer-request/transfer-request.dto.js.map +1 -0
  180. package/dist/enums/event-enums.d.ts +10 -0
  181. package/dist/enums/event-enums.d.ts.map +1 -0
  182. package/dist/enums/event-enums.js +15 -0
  183. package/dist/enums/event-enums.js.map +1 -0
  184. package/dist/enums/extended-game-status.d.ts +10 -0
  185. package/dist/enums/extended-game-status.d.ts.map +1 -0
  186. package/dist/enums/extended-game-status.js +14 -0
  187. package/dist/enums/extended-game-status.js.map +1 -0
  188. package/dist/index.d.ts +24 -0
  189. package/dist/index.d.ts.map +1 -0
  190. package/dist/index.js +40 -0
  191. package/dist/index.js.map +1 -0
  192. package/dist/interfaces/api-error-response.d.ts +33 -0
  193. package/dist/interfaces/api-error-response.d.ts.map +1 -0
  194. package/dist/interfaces/api-error-response.js +27 -0
  195. package/dist/interfaces/api-error-response.js.map +1 -0
  196. package/dist/interfaces/event.dto.d.ts +86 -0
  197. package/dist/interfaces/event.dto.d.ts.map +1 -0
  198. package/dist/interfaces/event.dto.js +34 -0
  199. package/dist/interfaces/event.dto.js.map +1 -0
  200. package/dist/interfaces/fixture/fixture-controller.interface.d.ts +7 -0
  201. package/dist/interfaces/fixture/fixture-controller.interface.d.ts.map +1 -0
  202. package/dist/interfaces/fixture/fixture-controller.interface.js +3 -0
  203. package/dist/interfaces/fixture/fixture-controller.interface.js.map +1 -0
  204. package/dist/interfaces/fixture/fixture-repository.interface.d.ts +14 -0
  205. package/dist/interfaces/fixture/fixture-repository.interface.d.ts.map +1 -0
  206. package/dist/interfaces/fixture/fixture-repository.interface.js +3 -0
  207. package/dist/interfaces/fixture/fixture-repository.interface.js.map +1 -0
  208. package/dist/interfaces/fixture/fixture-service.interface.d.ts +11 -0
  209. package/dist/interfaces/fixture/fixture-service.interface.d.ts.map +1 -0
  210. package/dist/interfaces/fixture/fixture-service.interface.js +3 -0
  211. package/dist/interfaces/fixture/fixture-service.interface.js.map +1 -0
  212. package/dist/interfaces/fixture/index.d.ts +5 -0
  213. package/dist/interfaces/fixture/index.d.ts.map +1 -0
  214. package/dist/interfaces/fixture/index.js +3 -0
  215. package/dist/interfaces/fixture/index.js.map +1 -0
  216. package/dist/interfaces/game/game-controller.interface.d.ts +16 -0
  217. package/dist/interfaces/game/game-controller.interface.d.ts.map +1 -0
  218. package/dist/interfaces/game/game-controller.interface.js +3 -0
  219. package/dist/interfaces/game/game-controller.interface.js.map +1 -0
  220. package/dist/interfaces/game/game-repository.interface.d.ts +37 -0
  221. package/dist/interfaces/game/game-repository.interface.d.ts.map +1 -0
  222. package/dist/interfaces/game/game-repository.interface.js +3 -0
  223. package/dist/interfaces/game/game-repository.interface.js.map +1 -0
  224. package/dist/interfaces/game/game-service.interface.d.ts +32 -0
  225. package/dist/interfaces/game/game-service.interface.d.ts.map +1 -0
  226. package/dist/interfaces/game/game-service.interface.js +3 -0
  227. package/dist/interfaces/game/game-service.interface.js.map +1 -0
  228. package/dist/interfaces/game/index.d.ts +5 -0
  229. package/dist/interfaces/game/index.d.ts.map +1 -0
  230. package/dist/interfaces/game/index.js +3 -0
  231. package/dist/interfaces/game/index.js.map +1 -0
  232. package/dist/interfaces/league/index.d.ts +5 -0
  233. package/dist/interfaces/league/index.d.ts.map +1 -0
  234. package/dist/interfaces/league/index.js +3 -0
  235. package/dist/interfaces/league/index.js.map +1 -0
  236. package/dist/interfaces/league/league-controller.interface.d.ts +17 -0
  237. package/dist/interfaces/league/league-controller.interface.d.ts.map +1 -0
  238. package/dist/interfaces/league/league-controller.interface.js +3 -0
  239. package/dist/interfaces/league/league-controller.interface.js.map +1 -0
  240. package/dist/interfaces/league/league-repository.interface.d.ts +30 -0
  241. package/dist/interfaces/league/league-repository.interface.d.ts.map +1 -0
  242. package/dist/interfaces/league/league-repository.interface.js +3 -0
  243. package/dist/interfaces/league/league-repository.interface.js.map +1 -0
  244. package/dist/interfaces/league/league-service.interface.d.ts +54 -0
  245. package/dist/interfaces/league/league-service.interface.d.ts.map +1 -0
  246. package/dist/interfaces/league/league-service.interface.js +3 -0
  247. package/dist/interfaces/league/league-service.interface.js.map +1 -0
  248. package/dist/interfaces/news/index.d.ts +5 -0
  249. package/dist/interfaces/news/index.d.ts.map +1 -0
  250. package/dist/interfaces/news/index.js +3 -0
  251. package/dist/interfaces/news/index.js.map +1 -0
  252. package/dist/interfaces/news/news-controller.interface.d.ts +10 -0
  253. package/dist/interfaces/news/news-controller.interface.d.ts.map +1 -0
  254. package/dist/interfaces/news/news-controller.interface.js +3 -0
  255. package/dist/interfaces/news/news-controller.interface.js.map +1 -0
  256. package/dist/interfaces/news/news-repository.interface.d.ts +11 -0
  257. package/dist/interfaces/news/news-repository.interface.d.ts.map +1 -0
  258. package/dist/interfaces/news/news-repository.interface.js +3 -0
  259. package/dist/interfaces/news/news-repository.interface.js.map +1 -0
  260. package/dist/interfaces/news/news-service.interface.d.ts +21 -0
  261. package/dist/interfaces/news/news-service.interface.d.ts.map +1 -0
  262. package/dist/interfaces/news/news-service.interface.js +3 -0
  263. package/dist/interfaces/news/news-service.interface.js.map +1 -0
  264. package/dist/interfaces/player/index.d.ts +5 -0
  265. package/dist/interfaces/player/index.d.ts.map +1 -0
  266. package/dist/interfaces/player/index.js +3 -0
  267. package/dist/interfaces/player/index.js.map +1 -0
  268. package/dist/interfaces/player/player-comparison.interface.d.ts +71 -0
  269. package/dist/interfaces/player/player-comparison.interface.d.ts.map +1 -0
  270. package/dist/interfaces/player/player-comparison.interface.js +3 -0
  271. package/dist/interfaces/player/player-comparison.interface.js.map +1 -0
  272. package/dist/interfaces/player/player-controller.interface.d.ts +23 -0
  273. package/dist/interfaces/player/player-controller.interface.d.ts.map +1 -0
  274. package/dist/interfaces/player/player-controller.interface.js +3 -0
  275. package/dist/interfaces/player/player-controller.interface.js.map +1 -0
  276. package/dist/interfaces/player/player-opponent-analysis.interface.d.ts +75 -0
  277. package/dist/interfaces/player/player-opponent-analysis.interface.d.ts.map +1 -0
  278. package/dist/interfaces/player/player-opponent-analysis.interface.js +11 -0
  279. package/dist/interfaces/player/player-opponent-analysis.interface.js.map +1 -0
  280. package/dist/interfaces/player/player-repository.interface.d.ts +27 -0
  281. package/dist/interfaces/player/player-repository.interface.d.ts.map +1 -0
  282. package/dist/interfaces/player/player-repository.interface.js +3 -0
  283. package/dist/interfaces/player/player-repository.interface.js.map +1 -0
  284. package/dist/interfaces/player/player-season-history.interface.d.ts +55 -0
  285. package/dist/interfaces/player/player-season-history.interface.d.ts.map +1 -0
  286. package/dist/interfaces/player/player-season-history.interface.js +3 -0
  287. package/dist/interfaces/player/player-season-history.interface.js.map +1 -0
  288. package/dist/interfaces/player/player-service.interface.d.ts +34 -0
  289. package/dist/interfaces/player/player-service.interface.d.ts.map +1 -0
  290. package/dist/interfaces/player/player-service.interface.js +3 -0
  291. package/dist/interfaces/player/player-service.interface.js.map +1 -0
  292. package/dist/interfaces/stats/top-contributor.interface.d.ts +16 -0
  293. package/dist/interfaces/stats/top-contributor.interface.d.ts.map +1 -0
  294. package/dist/interfaces/stats/top-contributor.interface.js +3 -0
  295. package/dist/interfaces/stats/top-contributor.interface.js.map +1 -0
  296. package/dist/interfaces/team/index.d.ts +5 -0
  297. package/dist/interfaces/team/index.d.ts.map +1 -0
  298. package/dist/interfaces/team/index.js +3 -0
  299. package/dist/interfaces/team/index.js.map +1 -0
  300. package/dist/interfaces/team/team-controller.interface.d.ts +20 -0
  301. package/dist/interfaces/team/team-controller.interface.d.ts.map +1 -0
  302. package/dist/interfaces/team/team-controller.interface.js +3 -0
  303. package/dist/interfaces/team/team-controller.interface.js.map +1 -0
  304. package/dist/interfaces/team/team-repository.interface.d.ts +17 -0
  305. package/dist/interfaces/team/team-repository.interface.d.ts.map +1 -0
  306. package/dist/interfaces/team/team-repository.interface.js +3 -0
  307. package/dist/interfaces/team/team-repository.interface.js.map +1 -0
  308. package/dist/interfaces/team/team-service.interface.d.ts +25 -0
  309. package/dist/interfaces/team/team-service.interface.d.ts.map +1 -0
  310. package/dist/interfaces/team/team-service.interface.js +3 -0
  311. package/dist/interfaces/team/team-service.interface.js.map +1 -0
  312. package/dist/interfaces/user/index.d.ts +4 -0
  313. package/dist/interfaces/user/index.d.ts.map +1 -0
  314. package/dist/interfaces/user/index.js +20 -0
  315. package/dist/interfaces/user/index.js.map +1 -0
  316. package/dist/interfaces/user/user-controller.interface.d.ts +18 -0
  317. package/dist/interfaces/user/user-controller.interface.d.ts.map +1 -0
  318. package/dist/interfaces/user/user-controller.interface.js +3 -0
  319. package/dist/interfaces/user/user-controller.interface.js.map +1 -0
  320. package/dist/interfaces/user/user-repository.interface.d.ts +12 -0
  321. package/dist/interfaces/user/user-repository.interface.d.ts.map +1 -0
  322. package/dist/interfaces/user/user-repository.interface.js +3 -0
  323. package/dist/interfaces/user/user-repository.interface.js.map +1 -0
  324. package/dist/interfaces/user/user-service.interface.d.ts +44 -0
  325. package/dist/interfaces/user/user-service.interface.d.ts.map +1 -0
  326. package/dist/interfaces/user/user-service.interface.js +3 -0
  327. package/dist/interfaces/user/user-service.interface.js.map +1 -0
  328. package/dist/interfaces/util-services/cache-service.interface.d.ts +6 -0
  329. package/dist/interfaces/util-services/cache-service.interface.d.ts.map +1 -0
  330. package/dist/interfaces/util-services/cache-service.interface.js +3 -0
  331. package/dist/interfaces/util-services/cache-service.interface.js.map +1 -0
  332. package/dist/interfaces/util-services/image-service.interface.d.ts +5 -0
  333. package/dist/interfaces/util-services/image-service.interface.d.ts.map +1 -0
  334. package/dist/interfaces/util-services/image-service.interface.js +3 -0
  335. package/dist/interfaces/util-services/image-service.interface.js.map +1 -0
  336. package/dist/interfaces/wrapper-services/index.d.ts +8 -0
  337. package/dist/interfaces/wrapper-services/index.d.ts.map +1 -0
  338. package/dist/interfaces/wrapper-services/index.js +3 -0
  339. package/dist/interfaces/wrapper-services/index.js.map +1 -0
  340. package/dist/interfaces/wrapper-services/league-stats-service.interface.d.ts +22 -0
  341. package/dist/interfaces/wrapper-services/league-stats-service.interface.d.ts.map +1 -0
  342. package/dist/interfaces/wrapper-services/league-stats-service.interface.js +3 -0
  343. package/dist/interfaces/wrapper-services/league-stats-service.interface.js.map +1 -0
  344. package/dist/interfaces/wrapper-services/player-stats-service.interface.d.ts +14 -0
  345. package/dist/interfaces/wrapper-services/player-stats-service.interface.d.ts.map +1 -0
  346. package/dist/interfaces/wrapper-services/player-stats-service.interface.js +3 -0
  347. package/dist/interfaces/wrapper-services/player-stats-service.interface.js.map +1 -0
  348. package/dist/interfaces/wrapper-services/player-team-service.interface.d.ts +7 -0
  349. package/dist/interfaces/wrapper-services/player-team-service.interface.d.ts.map +1 -0
  350. package/dist/interfaces/wrapper-services/player-team-service.interface.js +3 -0
  351. package/dist/interfaces/wrapper-services/player-team-service.interface.js.map +1 -0
  352. package/dist/interfaces/wrapper-services/season-achievement-service.interface.d.ts +145 -0
  353. package/dist/interfaces/wrapper-services/season-achievement-service.interface.d.ts.map +1 -0
  354. package/dist/interfaces/wrapper-services/season-achievement-service.interface.js +3 -0
  355. package/dist/interfaces/wrapper-services/season-achievement-service.interface.js.map +1 -0
  356. package/dist/interfaces/wrapper-services/season-completion-service.interface.d.ts +7 -0
  357. package/dist/interfaces/wrapper-services/season-completion-service.interface.d.ts.map +1 -0
  358. package/dist/interfaces/wrapper-services/season-completion-service.interface.js +3 -0
  359. package/dist/interfaces/wrapper-services/season-completion-service.interface.js.map +1 -0
  360. package/dist/interfaces/wrapper-services/team-league-service.interface.d.ts +6 -0
  361. package/dist/interfaces/wrapper-services/team-league-service.interface.d.ts.map +1 -0
  362. package/dist/interfaces/wrapper-services/team-league-service.interface.js +3 -0
  363. package/dist/interfaces/wrapper-services/team-league-service.interface.js.map +1 -0
  364. package/dist/interfaces/wrapper-services/team-of-the-season-service.interface.d.ts +16 -0
  365. package/dist/interfaces/wrapper-services/team-of-the-season-service.interface.d.ts.map +1 -0
  366. package/dist/interfaces/wrapper-services/team-of-the-season-service.interface.js +3 -0
  367. package/dist/interfaces/wrapper-services/team-of-the-season-service.interface.js.map +1 -0
  368. package/dist/interfaces/wrapper-services/team-of-the-week-service.interface.d.ts +8 -0
  369. package/dist/interfaces/wrapper-services/team-of-the-week-service.interface.d.ts.map +1 -0
  370. package/dist/interfaces/wrapper-services/team-of-the-week-service.interface.js +3 -0
  371. package/dist/interfaces/wrapper-services/team-of-the-week-service.interface.js.map +1 -0
  372. package/dist/interfaces/wrapper-services/team-stats-service.interface.d.ts +24 -0
  373. package/dist/interfaces/wrapper-services/team-stats-service.interface.d.ts.map +1 -0
  374. package/dist/interfaces/wrapper-services/team-stats-service.interface.js +3 -0
  375. package/dist/interfaces/wrapper-services/team-stats-service.interface.js.map +1 -0
  376. package/dist/models/ban.d.ts +19 -0
  377. package/dist/models/ban.d.ts.map +1 -0
  378. package/dist/models/ban.js +87 -0
  379. package/dist/models/ban.js.map +1 -0
  380. package/dist/models/chat.d.ts +29 -0
  381. package/dist/models/chat.d.ts.map +1 -0
  382. package/dist/models/chat.js +95 -0
  383. package/dist/models/chat.js.map +1 -0
  384. package/dist/models/comment/comment.d.ts +18 -0
  385. package/dist/models/comment/comment.d.ts.map +1 -0
  386. package/dist/models/comment/comment.js +46 -0
  387. package/dist/models/comment/comment.js.map +1 -0
  388. package/dist/models/event.d.ts +58 -0
  389. package/dist/models/event.d.ts.map +1 -0
  390. package/dist/models/event.js +102 -0
  391. package/dist/models/event.js.map +1 -0
  392. package/dist/models/fixture.d.ts +30 -0
  393. package/dist/models/fixture.d.ts.map +1 -0
  394. package/dist/models/fixture.js +58 -0
  395. package/dist/models/fixture.js.map +1 -0
  396. package/dist/models/game/ea-game-details.d.ts +97 -0
  397. package/dist/models/game/ea-game-details.d.ts.map +1 -0
  398. package/dist/models/game/ea-game-details.js +3 -0
  399. package/dist/models/game/ea-game-details.js.map +1 -0
  400. package/dist/models/game/game-types.d.ts +44 -0
  401. package/dist/models/game/game-types.d.ts.map +1 -0
  402. package/dist/models/game/game-types.js +3 -0
  403. package/dist/models/game/game-types.js.map +1 -0
  404. package/dist/models/game/game.d.ts +72 -0
  405. package/dist/models/game/game.d.ts.map +1 -0
  406. package/dist/models/game/game.js +145 -0
  407. package/dist/models/game/game.js.map +1 -0
  408. package/dist/models/game/player-validation.d.ts +196 -0
  409. package/dist/models/game/player-validation.d.ts.map +1 -0
  410. package/dist/models/game/player-validation.js +33 -0
  411. package/dist/models/game/player-validation.js.map +1 -0
  412. package/dist/models/league.d.ts +24 -0
  413. package/dist/models/league.d.ts.map +1 -0
  414. package/dist/models/league.js +63 -0
  415. package/dist/models/league.js.map +1 -0
  416. package/dist/models/news.d.ts +51 -0
  417. package/dist/models/news.d.ts.map +1 -0
  418. package/dist/models/news.js +97 -0
  419. package/dist/models/news.js.map +1 -0
  420. package/dist/models/notification.d.ts +20 -0
  421. package/dist/models/notification.d.ts.map +1 -0
  422. package/dist/models/notification.js +93 -0
  423. package/dist/models/notification.js.map +1 -0
  424. package/dist/models/player/player-types.d.ts +11 -0
  425. package/dist/models/player/player-types.d.ts.map +1 -0
  426. package/dist/models/player/player-types.js +3 -0
  427. package/dist/models/player/player-types.js.map +1 -0
  428. package/dist/models/player/player.d.ts +75 -0
  429. package/dist/models/player/player.d.ts.map +1 -0
  430. package/dist/models/player/player.js +115 -0
  431. package/dist/models/player/player.js.map +1 -0
  432. package/dist/models/player-association-request.d.ts +20 -0
  433. package/dist/models/player-association-request.d.ts.map +1 -0
  434. package/dist/models/player-association-request.js +89 -0
  435. package/dist/models/player-association-request.js.map +1 -0
  436. package/dist/models/prediction/prediction.d.ts +21 -0
  437. package/dist/models/prediction/prediction.d.ts.map +1 -0
  438. package/dist/models/prediction/prediction.js +42 -0
  439. package/dist/models/prediction/prediction.js.map +1 -0
  440. package/dist/models/season-achievement.d.ts +90 -0
  441. package/dist/models/season-achievement.d.ts.map +1 -0
  442. package/dist/models/season-achievement.js +126 -0
  443. package/dist/models/season-achievement.js.map +1 -0
  444. package/dist/models/team-of-the-season.d.ts +35 -0
  445. package/dist/models/team-of-the-season.d.ts.map +1 -0
  446. package/dist/models/team-of-the-season.js +69 -0
  447. package/dist/models/team-of-the-season.js.map +1 -0
  448. package/dist/models/team.d.ts +67 -0
  449. package/dist/models/team.d.ts.map +1 -0
  450. package/dist/models/team.js +88 -0
  451. package/dist/models/team.js.map +1 -0
  452. package/dist/models/transfer-request.d.ts +22 -0
  453. package/dist/models/transfer-request.d.ts.map +1 -0
  454. package/dist/models/transfer-request.js +132 -0
  455. package/dist/models/transfer-request.js.map +1 -0
  456. package/dist/models/user.d.ts +25 -0
  457. package/dist/models/user.d.ts.map +1 -0
  458. package/dist/models/user.js +109 -0
  459. package/dist/models/user.js.map +1 -0
  460. package/package.json +32 -0
  461. package/src/dtos/api-error-response.ts +71 -0
  462. package/src/dtos/enums/extended-game-status.enum.ts +13 -0
  463. package/src/dtos/enums/extended-game-status.ts +13 -0
  464. package/src/dtos/enums/index.ts +88 -0
  465. package/src/dtos/index.ts +7 -0
  466. package/src/dtos/requests/create-player-request.ts +12 -0
  467. package/src/dtos/requests/fixture-game-requests.ts +27 -0
  468. package/src/dtos/requests/fixture-requests.ts +13 -0
  469. package/src/dtos/requests/game-requests.ts +16 -0
  470. package/src/dtos/requests/index.ts +8 -0
  471. package/src/dtos/requests/player-performance-request.ts +18 -0
  472. package/src/dtos/requests/player-requests.ts +9 -0
  473. package/src/dtos/requests/update-player-data-request.ts +9 -0
  474. package/src/dtos/responses/api-error-response.interface.ts +71 -0
  475. package/src/dtos/responses/error-dtos.ts +39 -0
  476. package/src/dtos/responses/event-dtos.ts +97 -0
  477. package/src/dtos/responses/fixture-dtos.ts +52 -0
  478. package/src/dtos/responses/game-dtos.ts +82 -0
  479. package/src/dtos/responses/index.ts +11 -0
  480. package/src/dtos/responses/league-dtos.ts +10 -0
  481. package/src/dtos/responses/notification-dtos.ts +23 -0
  482. package/src/dtos/responses/player-dtos.ts +93 -0
  483. package/src/dtos/responses/stats-dtos.ts +87 -0
  484. package/src/dtos/responses/team-dtos.ts +30 -0
  485. package/src/dtos/responses/transfer-dtos.ts +66 -0
  486. package/src/dtos/transfer-request/index.ts +1 -0
  487. package/src/dtos/transfer-request/transfer-request.dto.ts +0 -0
  488. package/src/enums/extended-game-status.ts +15 -0
  489. package/src/index.ts +28 -0
  490. package/src/models/ban.ts +70 -0
  491. package/src/models/chat.ts +89 -0
  492. package/src/models/comment/comment.ts +62 -0
  493. package/src/models/event.ts +137 -0
  494. package/src/models/fixture.ts +52 -0
  495. package/src/models/game/ea-game-details.ts +124 -0
  496. package/src/models/game/game-types.ts +46 -0
  497. package/src/models/game/game.ts +170 -0
  498. package/src/models/game/player-validation.ts +262 -0
  499. package/src/models/league.ts +71 -0
  500. package/src/models/news.ts +130 -0
  501. package/src/models/notification.ts +80 -0
  502. package/src/models/player/player-types.ts +10 -0
  503. package/src/models/player/player.ts +174 -0
  504. package/src/models/player-association-request.ts +76 -0
  505. package/src/models/prediction/prediction.ts +54 -0
  506. package/src/models/season-achievement.ts +173 -0
  507. package/src/models/team-of-the-season.ts +74 -0
  508. package/src/models/team.ts +133 -0
  509. package/src/models/transfer-request.ts +129 -0
  510. package/src/models/user.ts +101 -0
  511. package/tsconfig.json +20 -0
@@ -0,0 +1,237 @@
1
+ # Integration Guide - Using @pro-clubs-manager/shared-dtos
2
+
3
+ ## Overview
4
+ This guide explains how to integrate the shared-dtos package in both the client and server applications.
5
+
6
+ ## Installation
7
+
8
+ ### Step 1: Publish the Package
9
+ Once the shared-dtos package is ready, publish it to npm:
10
+
11
+ ```bash
12
+ cd shared-dtos
13
+ npm publish
14
+ ```
15
+
16
+ ### Step 2: Install in Client (ProClubsStatsClient)
17
+
18
+ Update `ProClubsStatsClient/package.json`:
19
+ ```json
20
+ {
21
+ "dependencies": {
22
+ "@pro-clubs-manager/shared-dtos": "^3.0.0"
23
+ }
24
+ }
25
+ ```
26
+
27
+ Then run:
28
+ ```bash
29
+ npm install
30
+ ```
31
+
32
+ ### Step 3: Install in Server (ProClubsStatsServer)
33
+
34
+ Update `ProClubsStatsServer/package.json`:
35
+ ```json
36
+ {
37
+ "dependencies": {
38
+ "@pro-clubs-manager/shared-dtos": "^3.0.0"
39
+ }
40
+ }
41
+ ```
42
+
43
+ Then run:
44
+ ```bash
45
+ npm install
46
+ ```
47
+
48
+ ## Usage Patterns
49
+
50
+ ### Client (Angular)
51
+
52
+ ```typescript
53
+ import {
54
+ IUser,
55
+ ITeam,
56
+ IPlayer,
57
+ IGame,
58
+ EXTENDED_GAME_STATUS,
59
+ EVENT_TYPE
60
+ } from '@pro-clubs-manager/shared-dtos';
61
+
62
+ // Use in services
63
+ @Injectable()
64
+ export class PlayerService {
65
+ getPlayer(id: string): Observable<IPlayer> {
66
+ return this.http.get<IPlayer>(`/api/players/${id}`);
67
+ }
68
+
69
+ getPlayerTeams(playerId: string): Observable<ITeam[]> {
70
+ return this.http.get<ITeam[]>(`/api/players/${playerId}/teams`);
71
+ }
72
+ }
73
+
74
+ // Use in components
75
+ export class TeamComponent {
76
+ team: ITeam | null = null;
77
+ players: IPlayer[] = [];
78
+
79
+ constructor(private teamService: TeamService) {}
80
+
81
+ loadTeam(teamId: string): void {
82
+ this.teamService.getTeam(teamId).subscribe(team => {
83
+ this.team = team;
84
+ });
85
+ }
86
+ }
87
+ ```
88
+
89
+ ### Server (Express/Node)
90
+
91
+ ```typescript
92
+ import {
93
+ IUser,
94
+ ITeam,
95
+ IPlayer,
96
+ AddGameData,
97
+ EXTENDED_GAME_STATUS
98
+ } from '@pro-clubs-manager/shared-dtos';
99
+
100
+ // Use in services
101
+ @injectable()
102
+ export class PlayerService {
103
+ async getPlayer(id: string): Promise<IPlayer> {
104
+ return Player.findById(id);
105
+ }
106
+
107
+ async createPlayer(data: any): Promise<IPlayer> {
108
+ const player = new Player(data);
109
+ return player.save();
110
+ }
111
+ }
112
+
113
+ // Use in controllers
114
+ @Controller('/players')
115
+ export class PlayerController {
116
+ @Get(':id')
117
+ async getPlayer(@Param('id') id: string): Promise<IPlayer> {
118
+ return this.playerService.getPlayer(id);
119
+ }
120
+ }
121
+
122
+ // Use in repositories
123
+ export class PlayerRepository {
124
+ async findByTeam(teamId: string): Promise<IPlayer[]> {
125
+ return Player.find({ team: teamId });
126
+ }
127
+ }
128
+ ```
129
+
130
+ ## Import Organization
131
+
132
+ ### Group imports by category
133
+
134
+ ```typescript
135
+ // Models
136
+ import {
137
+ IUser,
138
+ ITeam,
139
+ IPlayer,
140
+ IGame,
141
+ ILeague
142
+ } from '@pro-clubs-manager/shared-dtos';
143
+
144
+ // Types
145
+ import {
146
+ IPlayerStats,
147
+ ITeamSeason,
148
+ PlayerGamePerformance,
149
+ PlayoffDetails,
150
+ TeamWithPlayers
151
+ } from '@pro-clubs-manager/shared-dtos';
152
+
153
+ // Enums
154
+ import {
155
+ EXTENDED_GAME_STATUS,
156
+ GAME_STATUS,
157
+ EVENT_TYPE,
158
+ EVENT_STATUS,
159
+ PLAYOFF_STAGE
160
+ } from '@pro-clubs-manager/shared-dtos';
161
+ ```
162
+
163
+ ## Breaking Changes and Compatibility
164
+
165
+ ### Version 3.0.0
166
+ - Initial release as centralized package
167
+ - Contains all model interfaces
168
+ - Mongoose is now a dependency
169
+
170
+ ### Backward Compatibility
171
+ - All interfaces remain exactly the same as before
172
+ - No property names or types were changed
173
+ - Existing code should work with just import path changes
174
+
175
+ ## Migration Checklist
176
+
177
+ - [ ] Publish @pro-clubs-manager/shared-dtos to npm
178
+ - [ ] Install package in ProClubsStatsServer
179
+ - [ ] Update server imports:
180
+ - [ ] Replace `import from '../models/*'` with shared-dtos (for interfaces only)
181
+ - [ ] Keep Mongoose model imports local
182
+ - [ ] Update interface imports in interfaces folder
183
+ - [ ] Install package in ProClubsStatsClient
184
+ - [ ] Update client imports:
185
+ - [ ] Replace all model imports with shared-dtos
186
+ - [ ] Update service return types
187
+ - [ ] Update component model properties
188
+ - [ ] Run tests
189
+ - [ ] Update documentation
190
+
191
+ ## Common Issues and Solutions
192
+
193
+ ### Issue: "Cannot find module '@pro-clubs-manager/shared-dtos'"
194
+ **Solution**:
195
+ 1. Ensure npm install was run
196
+ 2. Check package.json has the correct version
197
+ 3. Verify npm cache: `npm cache clean --force`
198
+
199
+ ### Issue: "Module has no exported member 'TypeName'"
200
+ **Solution**:
201
+ 1. Check the type exists in shared-dtos/src/index.ts
202
+ 2. Verify the export path in the index file
203
+ 3. Run `npm run build` in shared-dtos folder to regenerate
204
+
205
+ ### Issue: Type mismatches in strict mode
206
+ **Solution**:
207
+ 1. Update tsconfig.json strictNullChecks setting
208
+ 2. Add proper null checks for optional fields
209
+ 3. Use type guards for safety
210
+
211
+ ## Version Management
212
+
213
+ ### Future Updates
214
+ - Bug fixes: Patch version (3.0.x)
215
+ - New models/types: Minor version (3.1.0)
216
+ - Breaking changes: Major version (4.0.0)
217
+
218
+ Use npm version commands:
219
+ ```bash
220
+ npm version patch # 3.0.0 -> 3.0.1
221
+ npm version minor # 3.0.0 -> 3.1.0
222
+ npm version major # 3.0.0 -> 4.0.0
223
+ ```
224
+
225
+ ## FAQ
226
+
227
+ **Q: Should I include the shared-dtos source in version control?**
228
+ A: No, it will be installed via npm. Only include it in the monorepo for development purposes.
229
+
230
+ **Q: Can I use shared-dtos in other projects?**
231
+ A: Yes! Once published to npm, any TypeScript project can use it.
232
+
233
+ **Q: How do I add new types to shared-dtos?**
234
+ A: Add the type definition to shared-dtos/src, update index.ts exports, rebuild, and publish a new version.
235
+
236
+ **Q: Is there a changelog?**
237
+ A: Check MIGRATION_SUMMARY.md for the initial release info.
@@ -0,0 +1,163 @@
1
+ # Shared DTOs Package Migration - Summary
2
+
3
+ ## Objective
4
+ Consolidate all type definitions, interfaces, and models from the backend into a centralized npm package (@pro-clubs-manager/shared-dtos) that can be published and used by both client and server applications.
5
+
6
+ ## What Was Accomplished
7
+
8
+ ### 1. Created Shared DTOs Package Structure
9
+ - **Location**: `/shared-dtos`
10
+ - **Package Name**: `@pro-clubs-manager/shared-dtos`
11
+ - **Version**: `3.0.0`
12
+
13
+ ### 2. Migrated Type Definitions
14
+ Successfully copied and compiled the following from ProClubsStatsServer/src to shared-dtos/src:
15
+
16
+ #### Models (21 files)
17
+ - User model (IUser)
18
+ - Team model (ITeam, ITeamSeason, TeamWithPlayers)
19
+ - Player model (IPlayer, IPlayerSeason, IPlayerStats, PopulatedPlayerWithTeam)
20
+ - Game model (IGame, PlayerGamePerformance, PlayoffDetails)
21
+ - League model (ILeague)
22
+ - Fixture model (IFixture)
23
+ - Event model (IEvent, IEventStats, IAllStarDraftTeam)
24
+ - News model (INews, ITransferData, IFreeAgentData)
25
+ - Notification model (INotification)
26
+ - Chat model (IChatMessage)
27
+ - Ban model (IBan)
28
+ - Prediction model (IPrediction, PREDICTION_OUTCOME enum)
29
+ - Transfer Request model (ITransferRequest)
30
+ - Season Achievement model (ISeasonAchievement)
31
+ - Team of the Season model (ITeamOfTheSeason, ITeamOfTheSeasonPlayer)
32
+ - Player Association Request model (IPlayerAssociationRequest)
33
+ - Comment model (IComment)
34
+
35
+ #### Enums
36
+ - **EXTENDED_GAME_STATUS** - Game state management (Scheduled, Played, Completed, etc.)
37
+ - **EVENT_TYPE** - Event type enumeration
38
+ - **EVENT_STATUS** - Event status enumeration
39
+ - **PLAYOFF_STAGE** - Playoff round definitions
40
+ - **SERIES_FORMAT** - Match series format options
41
+
42
+ ### 3. Built Comprehensive Exports
43
+ - **index.ts**: Centralized export file that re-exports all models and enums
44
+ - **114 Type Definition Files** (.d.ts): Compiled TypeScript declarations
45
+ - **114 JavaScript Files** (.js): Compiled JavaScript modules
46
+
47
+ ### 4. Package Configuration
48
+ - **Dependencies**: mongoose ^7.0.0 || ^8.0.0
49
+ - **Peer Dependencies**: mongoose (same versions)
50
+ - **Dev Dependencies**: TypeScript ^5.3.2, @types/node ^20.0.0
51
+ - **Entry Points**:
52
+ - Main: `dist/index.js`
53
+ - Types: `dist/index.d.ts`
54
+
55
+ ### 5. Build Status
56
+ ✅ **Successfully Compiled**
57
+ - Zero TypeScript compilation errors
58
+ - All models properly exported
59
+ - Type definitions generated
60
+ - Ready for npm publication
61
+
62
+ ## Package Contents
63
+
64
+ ### Key Exports
65
+ ```typescript
66
+ // Models
67
+ export * from './models/user';
68
+ export * from './models/team';
69
+ export * from './models/player/player';
70
+ export * from './models/game/game';
71
+ export * from './models/league';
72
+ export * from './models/fixture';
73
+ export * from './models/event';
74
+ export * from './models/news';
75
+ // ... and 14 more model files
76
+
77
+ // Enums
78
+ export * from './enums/extended-game-status';
79
+ ```
80
+
81
+ ### Usage Example
82
+ ```typescript
83
+ import {
84
+ IUser,
85
+ ITeam,
86
+ IPlayer,
87
+ EXTENDED_GAME_STATUS,
88
+ IPrediction
89
+ } from '@pro-clubs-manager/shared-dtos';
90
+ ```
91
+
92
+ ## Next Steps
93
+
94
+ ### Before Publishing to npm:
95
+ 1. Update server and client to point to published npm package version
96
+ 2. Add any missing DTOs that are currently only defined in controllers/services
97
+ 3. Create .npmignore file to exclude src and unnecessary files from publication
98
+ 4. Add proper repository and homepage URLs to package.json
99
+
100
+ ### Publishing:
101
+ ```bash
102
+ cd shared-dtos
103
+ npm publish
104
+ ```
105
+
106
+ ### Integration:
107
+ 1. Update ProClubsStatsServer/package.json to use published version
108
+ 2. Update ProClubsStatsClient/package.json to use published version
109
+ 3. Replace local imports with shared package imports
110
+
111
+ ## Files Modified
112
+
113
+ ### Created
114
+ - `/shared-dtos/src/models/*` (21 files)
115
+ - `/shared-dtos/src/enums/extended-game-status.ts`
116
+ - `/shared-dtos/src/dtos/api-error-response.ts`
117
+ - `/shared-dtos/src/index.ts` (comprehensive export file)
118
+
119
+ ### Updated
120
+ - `/shared-dtos/package.json` - Added mongoose dependency, updated version to 3.0.0
121
+ - `/shared-dtos/README.md` - Documentation
122
+
123
+ ## Architecture Decisions
124
+
125
+ ### What was moved to shared-dtos:
126
+ ✅ Pure data models (interfaces)
127
+ ✅ Model type definitions
128
+ ✅ Enums
129
+ ✅ Mongoose schema types
130
+
131
+ ### What remains in server:
132
+ ❌ Service implementations
133
+ ❌ Repository implementations
134
+ ❌ Controller implementations
135
+ ❌ Request/Response DTOs (will be addressed in future phase)
136
+ ❌ Service-specific interfaces
137
+
138
+ This separation allows the shared package to be truly shared and lightweight, while service logic remains in the respective applications.
139
+
140
+ ## Build Artifacts
141
+
142
+ - **Type Definitions**: 114 .d.ts files in dist/
143
+ - **Compiled JavaScript**: 114 .js files in dist/
144
+ - **Size**: Minimal footprint for quick npm installation
145
+ - **Dependencies**: Only mongoose required
146
+
147
+ ## Success Criteria Met
148
+
149
+ ✅ All 21 models successfully copied and compiled
150
+ ✅ All enums properly exported
151
+ ✅ No TypeScript compilation errors in shared-dtos
152
+ ✅ Complete type definitions generated
153
+ ✅ Package ready for npm publication
154
+ ✅ Comprehensive export file created
155
+ ✅ Package.json properly configured
156
+
157
+ ## Notes
158
+
159
+ - The package is self-contained and includes all necessary type definitions
160
+ - Mongoose is marked as both dependency and peer dependency to ensure compatibility
161
+ - The build process can be run at any time with `npm run build`
162
+ - Watch mode is available for development with `npm run watch`
163
+ - Clean build available with `npm run clean`
package/README.md ADDED
@@ -0,0 +1,284 @@
1
+ # @pro-clubs-manager/shared-dtos
2
+
3
+ Shared Data Transfer Objects (DTOs) package for Pro Clubs Manager Client and Server. This package contains all common interfaces and types used across the entire application.
4
+
5
+ ## Overview
6
+
7
+ This is a monorepo package that provides type definitions and DTOs for:
8
+ - **Client** (Angular application)
9
+ - **Server** (Express.js API)
10
+
11
+ By consolidating DTOs in a single shared package, we ensure:
12
+ - ✅ Type safety across client and server
13
+ - ✅ Single source of truth for data structures
14
+ - ✅ Easier maintenance and refactoring
15
+ - ✅ Better IDE auto-completion and intellisense
16
+ - ✅ Reduced duplication
17
+
18
+ ## Structure
19
+
20
+ ```
21
+ shared-dtos/
22
+ ├── src/
23
+ │ ├── dtos/
24
+ │ │ ├── enums/
25
+ │ │ │ └── index.ts # All enums (GAME_STATUS, EVENT_TYPE, etc.)
26
+ │ │ ├── requests/
27
+ │ │ │ ├── index.ts # Request DTOs barrel export
28
+ │ │ │ ├── create-player-request.ts
29
+ │ │ │ ├── update-player-data-request.ts
30
+ │ │ │ ├── player-requests.ts
31
+ │ │ │ ├── fixture-requests.ts
32
+ │ │ │ └── game-requests.ts
33
+ │ │ └── responses/
34
+ │ │ ├── index.ts # Response DTOs barrel export
35
+ │ │ ├── game-dtos.ts # Game and PlayerPerformance DTOs
36
+ │ │ ├── fixture-dtos.ts # Fixture DTOs
37
+ │ │ ├── player-dtos.ts # Player DTOs
38
+ │ │ ├── team-dtos.ts # Team DTOs
39
+ │ │ ├── league-dtos.ts # League DTOs
40
+ │ │ ├── stats-dtos.ts # Stats DTOs
41
+ │ │ ├── event-dtos.ts # Event DTOs (new)
42
+ │ │ ├── transfer-dtos.ts # Transfer Request DTOs (new)
43
+ │ │ └── notification-dtos.ts # Notification DTOs (new)
44
+ │ └── index.ts # Main entry point
45
+ ├── dist/ # Compiled JavaScript and type definitions
46
+ ├── package.json
47
+ ├── tsconfig.json
48
+ └── README.md
49
+ ```
50
+
51
+ ## Included DTOs
52
+
53
+ ### Enums
54
+ - `GAME_STATUS` - Game states (scheduled, inProgress, completed, etc.)
55
+ - `EVENT_TYPE` - Event types (friendly, league, playoff, allStar, cup)
56
+ - `EVENT_STATUS` - Event states (draft, scheduled, inProgress, completed, cancelled)
57
+ - `SERIES_FORMAT` - Series formats (bestOf1, bestOf3, bestOf5, bestOf7)
58
+ - `TRANSFER_REQUEST_STATUS` - Transfer request states
59
+ - `NOTIFICATION_TYPE` - Notification types
60
+ - `PLAYER_POSITION` - Player positions (ST, CAM, CM, CDM, LM, RM, LB, RB, CB, GK)
61
+ - `CHEMISTRY_STYLE` - FIFA Chemistry styles
62
+
63
+ ### Response DTOs
64
+
65
+ #### Game DTOs
66
+ - `GameDTO` - Complete game information
67
+ - `PlayerPerformanceDTO` - Player performance stats in a game
68
+
69
+ #### Player DTOs
70
+ - `PlayerDTO` - Player information and stats
71
+ - `PlayerStatsDTO` - Player season statistics
72
+ - `PlayerLastGamesForm` - Player's last games form
73
+
74
+ #### Team DTOs
75
+ - `TeamDTO` - Team information
76
+ - `LeagueTableRow` - League table entry
77
+
78
+ #### Fixture DTOs
79
+ - `FixtureDTO` - Fixture information
80
+ - `PaginatedFixtureDTO` - Paginated fixture list
81
+
82
+ #### League DTOs
83
+ - `LeagueDTO` - League information
84
+
85
+ #### Stats DTOs
86
+ - `AdvancedPlayersStats` - Advanced player statistics
87
+ - `TopScorer` - Top scorer information
88
+ - `TopAssister` - Top assister information
89
+ - `TopAvgRating` - Top average rating information
90
+ - `AdvancedTeamStats` - Advanced team statistics
91
+
92
+ #### Event DTOs
93
+ - `EventDTO` - Event information
94
+ - `CreateEventDTO` - Create event request
95
+ - `EventStatsDTO` - Event statistics
96
+ - `AllStarTeamDTO` - All-Star team information
97
+ - `AllStarDraftConfigDTO` - All-Star draft configuration
98
+ - `RegisterForEventDTO` - Event registration
99
+ - `SelectCaptainsDTO` - Captain selection
100
+ - `AddPlayerToDraftTeamDTO` - Add player to draft team
101
+ - `FinishDraftDTO` - Finish draft
102
+ - `UpdateEventStatsDTO` - Update event stats
103
+
104
+ #### Transfer DTOs
105
+ - `TransferRequestDTO` - Transfer request information
106
+ - `PaginatedTransferRequestsDTO` - Paginated transfer requests
107
+ - `CreateTransferRequestDTO` - Create transfer request
108
+ - `ProcessTransferRequestDTO` - Process transfer request
109
+
110
+ #### Notification DTOs
111
+ - `NotificationDTO` - Notification information
112
+ - `CreateNotificationDTO` - Create notification
113
+
114
+ ### Request DTOs
115
+
116
+ #### Player Requests
117
+ - `CreatePlayerRequestDTO` - Create player request
118
+ - `UpdatePlayerDataRequestDTO` - Update player data request
119
+ - `PlayerRequestDTO` - Player request
120
+
121
+ #### Fixture Requests
122
+ - `CreateFixtureRequestDTO` - Create fixture request
123
+ - `UpdateFixtureRequestDTO` - Update fixture request
124
+
125
+ #### Game Requests
126
+ - `CreateGameRequestDTO` - Create game request
127
+ - `UpdateGameRequestDTO` - Update game request
128
+
129
+ ## Usage
130
+
131
+ ### Installation
132
+
133
+ The shared-dtos package is referenced locally in both client and server `package.json` files:
134
+
135
+ ```json
136
+ "@pro-clubs-manager/shared-dtos": "file:../shared-dtos"
137
+ ```
138
+
139
+ ### Importing DTOs
140
+
141
+ **In the Client (Angular):**
142
+ ```typescript
143
+ import { PlayerDTO, TeamDTO, GAME_STATUS } from '@pro-clubs-manager/shared-dtos';
144
+
145
+ // Use in your components
146
+ export class PlayerComponent {
147
+ player: PlayerDTO;
148
+ gameStatus = GAME_STATUS;
149
+ }
150
+ ```
151
+
152
+ **In the Server (Express):**
153
+ ```typescript
154
+ import { PlayerDTO, GameDTO, CreateGameRequestDTO } from '@pro-clubs-manager/shared-dtos';
155
+
156
+ // Use in your services and controllers
157
+ app.post('/games', (req: Request<{}, {}, CreateGameRequestDTO>, res: Response) => {
158
+ // Implementation
159
+ });
160
+ ```
161
+
162
+ ### Specific Import Paths
163
+
164
+ For more specific imports:
165
+
166
+ ```typescript
167
+ // Import enums
168
+ import { GAME_STATUS, EVENT_TYPE } from '@pro-clubs-manager/shared-dtos';
169
+
170
+ // Import response DTOs
171
+ import { PlayerDTO, GameDTO } from '@pro-clubs-manager/shared-dtos';
172
+
173
+ // Import request DTOs
174
+ import { CreatePlayerRequestDTO, UpdateFixtureRequestDTO } from '@pro-clubs-manager/shared-dtos';
175
+ ```
176
+
177
+ ## Development
178
+
179
+ ### Building the Package
180
+
181
+ ```bash
182
+ cd shared-dtos
183
+ npm run build
184
+ ```
185
+
186
+ This compiles TypeScript to JavaScript and generates type definition files in the `dist/` folder.
187
+
188
+ ### Watching for Changes
189
+
190
+ ```bash
191
+ cd shared-dtos
192
+ npm run watch
193
+ ```
194
+
195
+ This watches for changes and automatically recompiles.
196
+
197
+ ### Adding New DTOs
198
+
199
+ 1. Create a new file in the appropriate folder (`enums/`, `requests/`, or `responses/`)
200
+ 2. Export your interfaces/types
201
+ 3. Add the export to the folder's `index.ts`
202
+ 4. The main entry point (`src/index.ts`) automatically exports everything
203
+ 5. Run `npm run build` to compile
204
+
205
+ Example: Adding a new `User` DTO
206
+
207
+ ```typescript
208
+ // src/dtos/responses/user-dtos.ts
209
+ export interface UserDTO {
210
+ id: string;
211
+ email: string;
212
+ firstName: string;
213
+ lastName: string;
214
+ role: 'admin' | 'captain' | 'player';
215
+ }
216
+ ```
217
+
218
+ Then it's automatically available throughout the application.
219
+
220
+ ## Updating Projects
221
+
222
+ When you modify the shared-dtos package:
223
+
224
+ 1. **Build the package**: `npm run build` in the `shared-dtos` folder
225
+ 2. **No need to reinstall**: The `file:` protocol means the client and server will automatically use the latest build
226
+ 3. **Restart dev servers**: If using `npm start` or `ng serve`, restart to pick up changes
227
+
228
+ ## Best Practices
229
+
230
+ 1. **Keep DTOs focused** - Each DTO should represent a specific data structure
231
+ 2. **Use meaningful names** - Follow the `<Name>DTO` or `<Action><Name>DTO` convention
232
+ 3. **Document complex types** - Add JSDoc comments for clarity
233
+ 4. **Avoid circular dependencies** - Keep DTO dependencies simple
234
+ 5. **Version carefully** - When making breaking changes, update the package version
235
+ 6. **Test imports** - After adding new DTOs, ensure they import correctly in both client and server
236
+
237
+ ## Migration Guide
238
+
239
+ ### From NPM Package to Local Package
240
+
241
+ The package was migrated from a published NPM package (`@pro-clubs-manager/shared-dtos@1.x`) to a local monorepo package for easier development and updates.
242
+
243
+ **What Changed:**
244
+ - All DTOs are now in `shared-dtos/src/`
245
+ - Local package is automatically built and linked
246
+ - Changes are immediately reflected (after rebuild)
247
+ - No need to publish to NPM for local development
248
+
249
+ **What Stayed the Same:**
250
+ - Import paths remain identical: `@pro-clubs-manager/shared-dtos`
251
+ - All existing DTOs are included
252
+ - New DTOs added (event, transfer, notification)
253
+
254
+ ## Troubleshooting
255
+
256
+ ### DTOs not updating in IDE
257
+
258
+ - Clear TypeScript cache: Delete `shared-dtos/dist/`
259
+ - Run `npm run build`
260
+ - Restart your IDE
261
+
262
+ ### Import errors in client/server
263
+
264
+ - Ensure `npm install` was run in both client and server after updating `package.json`
265
+ - Check that the import path is correct
266
+ - Verify the DTO is exported in `src/index.ts`
267
+
268
+ ### Build errors
269
+
270
+ - Run `npm run clean` then `npm run build` in the shared-dtos folder
271
+ - Check for TypeScript errors in the source files
272
+ - Ensure TypeScript version is compatible (^5.3.2)
273
+
274
+ ## Future Enhancements
275
+
276
+ - Add more comprehensive JSDoc comments
277
+ - Create example usage files
278
+ - Add validation schemas (using libraries like Zod or Joi)
279
+ - Publish to NPM for external consumption
280
+ - Add comprehensive test coverage
281
+
282
+ ## Support
283
+
284
+ For issues or questions about the shared-dtos package, refer to the main project documentation or create an issue in the repository.
@@ -0,0 +1,33 @@
1
+ export interface ApiErrorResponse {
2
+ statusCode: number;
3
+ message: string;
4
+ errorCode?: string;
5
+ details?: {
6
+ [key: string]: any;
7
+ };
8
+ timestamp?: string;
9
+ path?: string;
10
+ }
11
+ export declare enum ErrorCode {
12
+ BAD_REQUEST = "BAD_REQUEST",
13
+ INVALID_INPUT = "INVALID_INPUT",
14
+ MISSING_REQUIRED_FIELD = "MISSING_REQUIRED_FIELD",
15
+ UNAUTHORIZED = "UNAUTHORIZED",
16
+ TOKEN_EXPIRED = "TOKEN_EXPIRED",
17
+ FORBIDDEN = "FORBIDDEN",
18
+ NOT_FOUND = "NOT_FOUND",
19
+ RESOURCE_NOT_FOUND = "RESOURCE_NOT_FOUND",
20
+ CONFLICT = "CONFLICT",
21
+ DUPLICATE_ENTRY = "DUPLICATE_ENTRY",
22
+ VALIDATION_ERROR = "VALIDATION_ERROR",
23
+ INTERNAL_SERVER_ERROR = "INTERNAL_SERVER_ERROR",
24
+ DATABASE_ERROR = "DATABASE_ERROR",
25
+ EXTERNAL_SERVICE_ERROR = "EXTERNAL_SERVICE_ERROR",
26
+ FILE_UPLOAD_ERROR = "FILE_UPLOAD_ERROR",
27
+ PLAYER_ASSOCIATION_ERROR = "PLAYER_ASSOCIATION_ERROR",
28
+ TRANSFER_REQUEST_ERROR = "TRANSFER_REQUEST_ERROR",
29
+ TEAM_ERROR = "TEAM_ERROR",
30
+ PLAYER_ERROR = "PLAYER_ERROR",
31
+ USER_ERROR = "USER_ERROR"
32
+ }
33
+ //# sourceMappingURL=api-error-response.d.ts.map