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.
- package/INTEGRATION_GUIDE.md +237 -0
- package/MIGRATION_SUMMARY.md +163 -0
- package/README.md +284 -0
- package/dist/dtos/api-error-response.d.ts +33 -0
- package/dist/dtos/api-error-response.d.ts.map +1 -0
- package/dist/dtos/api-error-response.js +27 -0
- package/dist/dtos/api-error-response.js.map +1 -0
- package/dist/dtos/api-response/api-error-response.dto.d.ts +33 -0
- package/dist/dtos/api-response/api-error-response.dto.d.ts.map +1 -0
- package/dist/dtos/api-response/api-error-response.dto.js +27 -0
- package/dist/dtos/api-response/api-error-response.dto.js.map +1 -0
- package/dist/dtos/api-response/index.d.ts +2 -0
- package/dist/dtos/api-response/index.d.ts.map +1 -0
- package/dist/dtos/api-response/index.js +18 -0
- package/dist/dtos/api-response/index.js.map +1 -0
- package/dist/dtos/enums/extended-game-status.d.ts +9 -0
- package/dist/dtos/enums/extended-game-status.d.ts.map +1 -0
- package/dist/dtos/enums/extended-game-status.enum.d.ts +9 -0
- package/dist/dtos/enums/extended-game-status.enum.d.ts.map +1 -0
- package/dist/dtos/enums/extended-game-status.enum.js +13 -0
- package/dist/dtos/enums/extended-game-status.enum.js.map +1 -0
- package/dist/dtos/enums/extended-game-status.js +13 -0
- package/dist/dtos/enums/extended-game-status.js.map +1 -0
- package/dist/dtos/enums/index.d.ts +72 -0
- package/dist/dtos/enums/index.d.ts.map +1 -0
- package/dist/dtos/enums/index.js +97 -0
- package/dist/dtos/enums/index.js.map +1 -0
- package/dist/dtos/index.d.ts +5 -0
- package/dist/dtos/index.d.ts.map +1 -0
- package/dist/dtos/index.js +21 -0
- package/dist/dtos/index.js.map +1 -0
- package/dist/dtos/models/ban.d.ts +15 -0
- package/dist/dtos/models/ban.d.ts.map +1 -0
- package/dist/dtos/models/ban.js +87 -0
- package/dist/dtos/models/ban.js.map +1 -0
- package/dist/dtos/models/chat.d.ts +25 -0
- package/dist/dtos/models/chat.d.ts.map +1 -0
- package/dist/dtos/models/chat.js +95 -0
- package/dist/dtos/models/chat.js.map +1 -0
- package/dist/dtos/models/comment.d.ts +14 -0
- package/dist/dtos/models/comment.d.ts.map +1 -0
- package/dist/dtos/models/comment.js +46 -0
- package/dist/dtos/models/comment.js.map +1 -0
- package/dist/dtos/models/event.d.ts +54 -0
- package/dist/dtos/models/event.d.ts.map +1 -0
- package/dist/dtos/models/event.js +102 -0
- package/dist/dtos/models/event.js.map +1 -0
- package/dist/dtos/models/fixture.d.ts +26 -0
- package/dist/dtos/models/fixture.d.ts.map +1 -0
- package/dist/dtos/models/fixture.js +58 -0
- package/dist/dtos/models/fixture.js.map +1 -0
- package/dist/dtos/models/index.d.ts +23 -0
- package/dist/dtos/models/index.d.ts.map +1 -0
- package/dist/dtos/models/index.js +39 -0
- package/dist/dtos/models/index.js.map +1 -0
- package/dist/dtos/models/league.d.ts +20 -0
- package/dist/dtos/models/league.d.ts.map +1 -0
- package/dist/dtos/models/league.js +63 -0
- package/dist/dtos/models/league.js.map +1 -0
- package/dist/dtos/models/news.d.ts +47 -0
- package/dist/dtos/models/news.d.ts.map +1 -0
- package/dist/dtos/models/news.js +97 -0
- package/dist/dtos/models/news.js.map +1 -0
- package/dist/dtos/models/notification.d.ts +16 -0
- package/dist/dtos/models/notification.d.ts.map +1 -0
- package/dist/dtos/models/notification.js +93 -0
- package/dist/dtos/models/notification.js.map +1 -0
- package/dist/dtos/models/player-association-request.d.ts +16 -0
- package/dist/dtos/models/player-association-request.d.ts.map +1 -0
- package/dist/dtos/models/player-association-request.js +89 -0
- package/dist/dtos/models/player-association-request.js.map +1 -0
- package/dist/dtos/models/season-achievement.d.ts +86 -0
- package/dist/dtos/models/season-achievement.d.ts.map +1 -0
- package/dist/dtos/models/season-achievement.js +126 -0
- package/dist/dtos/models/season-achievement.js.map +1 -0
- package/dist/dtos/models/team-of-the-season.d.ts +31 -0
- package/dist/dtos/models/team-of-the-season.d.ts.map +1 -0
- package/dist/dtos/models/team-of-the-season.js +69 -0
- package/dist/dtos/models/team-of-the-season.js.map +1 -0
- package/dist/dtos/models/team.d.ts +63 -0
- package/dist/dtos/models/team.d.ts.map +1 -0
- package/dist/dtos/models/team.js +88 -0
- package/dist/dtos/models/team.js.map +1 -0
- package/dist/dtos/models/transfer-request.d.ts +18 -0
- package/dist/dtos/models/transfer-request.d.ts.map +1 -0
- package/dist/dtos/models/transfer-request.js +132 -0
- package/dist/dtos/models/transfer-request.js.map +1 -0
- package/dist/dtos/models/user.d.ts +21 -0
- package/dist/dtos/models/user.d.ts.map +1 -0
- package/dist/dtos/models/user.js +109 -0
- package/dist/dtos/models/user.js.map +1 -0
- package/dist/dtos/requests/create-player-request.d.ts +12 -0
- package/dist/dtos/requests/create-player-request.d.ts.map +1 -0
- package/dist/dtos/requests/create-player-request.js +3 -0
- package/dist/dtos/requests/create-player-request.js.map +1 -0
- package/dist/dtos/requests/fixture-game-requests.d.ts +25 -0
- package/dist/dtos/requests/fixture-game-requests.d.ts.map +1 -0
- package/dist/dtos/requests/fixture-game-requests.js +3 -0
- package/dist/dtos/requests/fixture-game-requests.js.map +1 -0
- package/dist/dtos/requests/fixture-requests.d.ts +12 -0
- package/dist/dtos/requests/fixture-requests.d.ts.map +1 -0
- package/dist/dtos/requests/fixture-requests.js +3 -0
- package/dist/dtos/requests/fixture-requests.js.map +1 -0
- package/dist/dtos/requests/game-requests.d.ts +15 -0
- package/dist/dtos/requests/game-requests.d.ts.map +1 -0
- package/dist/dtos/requests/game-requests.js +3 -0
- package/dist/dtos/requests/game-requests.js.map +1 -0
- package/dist/dtos/requests/index.d.ts +8 -0
- package/dist/dtos/requests/index.d.ts.map +1 -0
- package/dist/dtos/requests/index.js +24 -0
- package/dist/dtos/requests/index.js.map +1 -0
- package/dist/dtos/requests/player-performance-request.d.ts +15 -0
- package/dist/dtos/requests/player-performance-request.d.ts.map +1 -0
- package/dist/dtos/requests/player-performance-request.js +3 -0
- package/dist/dtos/requests/player-performance-request.js.map +1 -0
- package/dist/dtos/requests/player-requests.d.ts +9 -0
- package/dist/dtos/requests/player-requests.d.ts.map +1 -0
- package/dist/dtos/requests/player-requests.js +3 -0
- package/dist/dtos/requests/player-requests.js.map +1 -0
- package/dist/dtos/requests/update-player-data-request.d.ts +9 -0
- package/dist/dtos/requests/update-player-data-request.d.ts.map +1 -0
- package/dist/dtos/requests/update-player-data-request.js +3 -0
- package/dist/dtos/requests/update-player-data-request.js.map +1 -0
- package/dist/dtos/responses/api-error-response.interface.d.ts +33 -0
- package/dist/dtos/responses/api-error-response.interface.d.ts.map +1 -0
- package/dist/dtos/responses/api-error-response.interface.js +27 -0
- package/dist/dtos/responses/api-error-response.interface.js.map +1 -0
- package/dist/dtos/responses/error-dtos.d.ts +33 -0
- package/dist/dtos/responses/error-dtos.d.ts.map +1 -0
- package/dist/dtos/responses/error-dtos.js +27 -0
- package/dist/dtos/responses/error-dtos.js.map +1 -0
- package/dist/dtos/responses/event-dtos.d.ts +84 -0
- package/dist/dtos/responses/event-dtos.d.ts.map +1 -0
- package/dist/dtos/responses/event-dtos.js +3 -0
- package/dist/dtos/responses/event-dtos.js.map +1 -0
- package/dist/dtos/responses/fixture-dtos.d.ts +46 -0
- package/dist/dtos/responses/fixture-dtos.d.ts.map +1 -0
- package/dist/dtos/responses/fixture-dtos.js +3 -0
- package/dist/dtos/responses/fixture-dtos.js.map +1 -0
- package/dist/dtos/responses/game-dtos.d.ts +76 -0
- package/dist/dtos/responses/game-dtos.d.ts.map +1 -0
- package/dist/dtos/responses/game-dtos.js +3 -0
- package/dist/dtos/responses/game-dtos.js.map +1 -0
- package/dist/dtos/responses/index.d.ts +11 -0
- package/dist/dtos/responses/index.d.ts.map +1 -0
- package/dist/dtos/responses/index.js +27 -0
- package/dist/dtos/responses/index.js.map +1 -0
- package/dist/dtos/responses/league-dtos.d.ts +10 -0
- package/dist/dtos/responses/league-dtos.d.ts.map +1 -0
- package/dist/dtos/responses/league-dtos.js +3 -0
- package/dist/dtos/responses/league-dtos.js.map +1 -0
- package/dist/dtos/responses/notification-dtos.d.ts +21 -0
- package/dist/dtos/responses/notification-dtos.d.ts.map +1 -0
- package/dist/dtos/responses/notification-dtos.js +3 -0
- package/dist/dtos/responses/notification-dtos.js.map +1 -0
- package/dist/dtos/responses/player-dtos.d.ts +83 -0
- package/dist/dtos/responses/player-dtos.d.ts.map +1 -0
- package/dist/dtos/responses/player-dtos.js +3 -0
- package/dist/dtos/responses/player-dtos.js.map +1 -0
- package/dist/dtos/responses/stats-dtos.d.ts +77 -0
- package/dist/dtos/responses/stats-dtos.d.ts.map +1 -0
- package/dist/dtos/responses/stats-dtos.js +3 -0
- package/dist/dtos/responses/stats-dtos.js.map +1 -0
- package/dist/dtos/responses/team-dtos.d.ts +28 -0
- package/dist/dtos/responses/team-dtos.d.ts.map +1 -0
- package/dist/dtos/responses/team-dtos.js +3 -0
- package/dist/dtos/responses/team-dtos.js.map +1 -0
- package/dist/dtos/responses/transfer-dtos.d.ts +60 -0
- package/dist/dtos/responses/transfer-dtos.d.ts.map +1 -0
- package/dist/dtos/responses/transfer-dtos.js +3 -0
- package/dist/dtos/responses/transfer-dtos.js.map +1 -0
- package/dist/dtos/transfer-request/index.d.ts +2 -0
- package/dist/dtos/transfer-request/index.d.ts.map +1 -0
- package/dist/dtos/transfer-request/index.js +18 -0
- package/dist/dtos/transfer-request/index.js.map +1 -0
- package/dist/dtos/transfer-request/transfer-request.dto.d.ts +1 -0
- package/dist/dtos/transfer-request/transfer-request.dto.d.ts.map +1 -0
- package/dist/dtos/transfer-request/transfer-request.dto.js +2 -0
- package/dist/dtos/transfer-request/transfer-request.dto.js.map +1 -0
- package/dist/enums/event-enums.d.ts +10 -0
- package/dist/enums/event-enums.d.ts.map +1 -0
- package/dist/enums/event-enums.js +15 -0
- package/dist/enums/event-enums.js.map +1 -0
- package/dist/enums/extended-game-status.d.ts +10 -0
- package/dist/enums/extended-game-status.d.ts.map +1 -0
- package/dist/enums/extended-game-status.js +14 -0
- package/dist/enums/extended-game-status.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/api-error-response.d.ts +33 -0
- package/dist/interfaces/api-error-response.d.ts.map +1 -0
- package/dist/interfaces/api-error-response.js +27 -0
- package/dist/interfaces/api-error-response.js.map +1 -0
- package/dist/interfaces/event.dto.d.ts +86 -0
- package/dist/interfaces/event.dto.d.ts.map +1 -0
- package/dist/interfaces/event.dto.js +34 -0
- package/dist/interfaces/event.dto.js.map +1 -0
- package/dist/interfaces/fixture/fixture-controller.interface.d.ts +7 -0
- package/dist/interfaces/fixture/fixture-controller.interface.d.ts.map +1 -0
- package/dist/interfaces/fixture/fixture-controller.interface.js +3 -0
- package/dist/interfaces/fixture/fixture-controller.interface.js.map +1 -0
- package/dist/interfaces/fixture/fixture-repository.interface.d.ts +14 -0
- package/dist/interfaces/fixture/fixture-repository.interface.d.ts.map +1 -0
- package/dist/interfaces/fixture/fixture-repository.interface.js +3 -0
- package/dist/interfaces/fixture/fixture-repository.interface.js.map +1 -0
- package/dist/interfaces/fixture/fixture-service.interface.d.ts +11 -0
- package/dist/interfaces/fixture/fixture-service.interface.d.ts.map +1 -0
- package/dist/interfaces/fixture/fixture-service.interface.js +3 -0
- package/dist/interfaces/fixture/fixture-service.interface.js.map +1 -0
- package/dist/interfaces/fixture/index.d.ts +5 -0
- package/dist/interfaces/fixture/index.d.ts.map +1 -0
- package/dist/interfaces/fixture/index.js +3 -0
- package/dist/interfaces/fixture/index.js.map +1 -0
- package/dist/interfaces/game/game-controller.interface.d.ts +16 -0
- package/dist/interfaces/game/game-controller.interface.d.ts.map +1 -0
- package/dist/interfaces/game/game-controller.interface.js +3 -0
- package/dist/interfaces/game/game-controller.interface.js.map +1 -0
- package/dist/interfaces/game/game-repository.interface.d.ts +37 -0
- package/dist/interfaces/game/game-repository.interface.d.ts.map +1 -0
- package/dist/interfaces/game/game-repository.interface.js +3 -0
- package/dist/interfaces/game/game-repository.interface.js.map +1 -0
- package/dist/interfaces/game/game-service.interface.d.ts +32 -0
- package/dist/interfaces/game/game-service.interface.d.ts.map +1 -0
- package/dist/interfaces/game/game-service.interface.js +3 -0
- package/dist/interfaces/game/game-service.interface.js.map +1 -0
- package/dist/interfaces/game/index.d.ts +5 -0
- package/dist/interfaces/game/index.d.ts.map +1 -0
- package/dist/interfaces/game/index.js +3 -0
- package/dist/interfaces/game/index.js.map +1 -0
- package/dist/interfaces/league/index.d.ts +5 -0
- package/dist/interfaces/league/index.d.ts.map +1 -0
- package/dist/interfaces/league/index.js +3 -0
- package/dist/interfaces/league/index.js.map +1 -0
- package/dist/interfaces/league/league-controller.interface.d.ts +17 -0
- package/dist/interfaces/league/league-controller.interface.d.ts.map +1 -0
- package/dist/interfaces/league/league-controller.interface.js +3 -0
- package/dist/interfaces/league/league-controller.interface.js.map +1 -0
- package/dist/interfaces/league/league-repository.interface.d.ts +30 -0
- package/dist/interfaces/league/league-repository.interface.d.ts.map +1 -0
- package/dist/interfaces/league/league-repository.interface.js +3 -0
- package/dist/interfaces/league/league-repository.interface.js.map +1 -0
- package/dist/interfaces/league/league-service.interface.d.ts +54 -0
- package/dist/interfaces/league/league-service.interface.d.ts.map +1 -0
- package/dist/interfaces/league/league-service.interface.js +3 -0
- package/dist/interfaces/league/league-service.interface.js.map +1 -0
- package/dist/interfaces/news/index.d.ts +5 -0
- package/dist/interfaces/news/index.d.ts.map +1 -0
- package/dist/interfaces/news/index.js +3 -0
- package/dist/interfaces/news/index.js.map +1 -0
- package/dist/interfaces/news/news-controller.interface.d.ts +10 -0
- package/dist/interfaces/news/news-controller.interface.d.ts.map +1 -0
- package/dist/interfaces/news/news-controller.interface.js +3 -0
- package/dist/interfaces/news/news-controller.interface.js.map +1 -0
- package/dist/interfaces/news/news-repository.interface.d.ts +11 -0
- package/dist/interfaces/news/news-repository.interface.d.ts.map +1 -0
- package/dist/interfaces/news/news-repository.interface.js +3 -0
- package/dist/interfaces/news/news-repository.interface.js.map +1 -0
- package/dist/interfaces/news/news-service.interface.d.ts +21 -0
- package/dist/interfaces/news/news-service.interface.d.ts.map +1 -0
- package/dist/interfaces/news/news-service.interface.js +3 -0
- package/dist/interfaces/news/news-service.interface.js.map +1 -0
- package/dist/interfaces/player/index.d.ts +5 -0
- package/dist/interfaces/player/index.d.ts.map +1 -0
- package/dist/interfaces/player/index.js +3 -0
- package/dist/interfaces/player/index.js.map +1 -0
- package/dist/interfaces/player/player-comparison.interface.d.ts +71 -0
- package/dist/interfaces/player/player-comparison.interface.d.ts.map +1 -0
- package/dist/interfaces/player/player-comparison.interface.js +3 -0
- package/dist/interfaces/player/player-comparison.interface.js.map +1 -0
- package/dist/interfaces/player/player-controller.interface.d.ts +23 -0
- package/dist/interfaces/player/player-controller.interface.d.ts.map +1 -0
- package/dist/interfaces/player/player-controller.interface.js +3 -0
- package/dist/interfaces/player/player-controller.interface.js.map +1 -0
- package/dist/interfaces/player/player-opponent-analysis.interface.d.ts +75 -0
- package/dist/interfaces/player/player-opponent-analysis.interface.d.ts.map +1 -0
- package/dist/interfaces/player/player-opponent-analysis.interface.js +11 -0
- package/dist/interfaces/player/player-opponent-analysis.interface.js.map +1 -0
- package/dist/interfaces/player/player-repository.interface.d.ts +27 -0
- package/dist/interfaces/player/player-repository.interface.d.ts.map +1 -0
- package/dist/interfaces/player/player-repository.interface.js +3 -0
- package/dist/interfaces/player/player-repository.interface.js.map +1 -0
- package/dist/interfaces/player/player-season-history.interface.d.ts +55 -0
- package/dist/interfaces/player/player-season-history.interface.d.ts.map +1 -0
- package/dist/interfaces/player/player-season-history.interface.js +3 -0
- package/dist/interfaces/player/player-season-history.interface.js.map +1 -0
- package/dist/interfaces/player/player-service.interface.d.ts +34 -0
- package/dist/interfaces/player/player-service.interface.d.ts.map +1 -0
- package/dist/interfaces/player/player-service.interface.js +3 -0
- package/dist/interfaces/player/player-service.interface.js.map +1 -0
- package/dist/interfaces/stats/top-contributor.interface.d.ts +16 -0
- package/dist/interfaces/stats/top-contributor.interface.d.ts.map +1 -0
- package/dist/interfaces/stats/top-contributor.interface.js +3 -0
- package/dist/interfaces/stats/top-contributor.interface.js.map +1 -0
- package/dist/interfaces/team/index.d.ts +5 -0
- package/dist/interfaces/team/index.d.ts.map +1 -0
- package/dist/interfaces/team/index.js +3 -0
- package/dist/interfaces/team/index.js.map +1 -0
- package/dist/interfaces/team/team-controller.interface.d.ts +20 -0
- package/dist/interfaces/team/team-controller.interface.d.ts.map +1 -0
- package/dist/interfaces/team/team-controller.interface.js +3 -0
- package/dist/interfaces/team/team-controller.interface.js.map +1 -0
- package/dist/interfaces/team/team-repository.interface.d.ts +17 -0
- package/dist/interfaces/team/team-repository.interface.d.ts.map +1 -0
- package/dist/interfaces/team/team-repository.interface.js +3 -0
- package/dist/interfaces/team/team-repository.interface.js.map +1 -0
- package/dist/interfaces/team/team-service.interface.d.ts +25 -0
- package/dist/interfaces/team/team-service.interface.d.ts.map +1 -0
- package/dist/interfaces/team/team-service.interface.js +3 -0
- package/dist/interfaces/team/team-service.interface.js.map +1 -0
- package/dist/interfaces/user/index.d.ts +4 -0
- package/dist/interfaces/user/index.d.ts.map +1 -0
- package/dist/interfaces/user/index.js +20 -0
- package/dist/interfaces/user/index.js.map +1 -0
- package/dist/interfaces/user/user-controller.interface.d.ts +18 -0
- package/dist/interfaces/user/user-controller.interface.d.ts.map +1 -0
- package/dist/interfaces/user/user-controller.interface.js +3 -0
- package/dist/interfaces/user/user-controller.interface.js.map +1 -0
- package/dist/interfaces/user/user-repository.interface.d.ts +12 -0
- package/dist/interfaces/user/user-repository.interface.d.ts.map +1 -0
- package/dist/interfaces/user/user-repository.interface.js +3 -0
- package/dist/interfaces/user/user-repository.interface.js.map +1 -0
- package/dist/interfaces/user/user-service.interface.d.ts +44 -0
- package/dist/interfaces/user/user-service.interface.d.ts.map +1 -0
- package/dist/interfaces/user/user-service.interface.js +3 -0
- package/dist/interfaces/user/user-service.interface.js.map +1 -0
- package/dist/interfaces/util-services/cache-service.interface.d.ts +6 -0
- package/dist/interfaces/util-services/cache-service.interface.d.ts.map +1 -0
- package/dist/interfaces/util-services/cache-service.interface.js +3 -0
- package/dist/interfaces/util-services/cache-service.interface.js.map +1 -0
- package/dist/interfaces/util-services/image-service.interface.d.ts +5 -0
- package/dist/interfaces/util-services/image-service.interface.d.ts.map +1 -0
- package/dist/interfaces/util-services/image-service.interface.js +3 -0
- package/dist/interfaces/util-services/image-service.interface.js.map +1 -0
- package/dist/interfaces/wrapper-services/index.d.ts +8 -0
- package/dist/interfaces/wrapper-services/index.d.ts.map +1 -0
- package/dist/interfaces/wrapper-services/index.js +3 -0
- package/dist/interfaces/wrapper-services/index.js.map +1 -0
- package/dist/interfaces/wrapper-services/league-stats-service.interface.d.ts +22 -0
- package/dist/interfaces/wrapper-services/league-stats-service.interface.d.ts.map +1 -0
- package/dist/interfaces/wrapper-services/league-stats-service.interface.js +3 -0
- package/dist/interfaces/wrapper-services/league-stats-service.interface.js.map +1 -0
- package/dist/interfaces/wrapper-services/player-stats-service.interface.d.ts +14 -0
- package/dist/interfaces/wrapper-services/player-stats-service.interface.d.ts.map +1 -0
- package/dist/interfaces/wrapper-services/player-stats-service.interface.js +3 -0
- package/dist/interfaces/wrapper-services/player-stats-service.interface.js.map +1 -0
- package/dist/interfaces/wrapper-services/player-team-service.interface.d.ts +7 -0
- package/dist/interfaces/wrapper-services/player-team-service.interface.d.ts.map +1 -0
- package/dist/interfaces/wrapper-services/player-team-service.interface.js +3 -0
- package/dist/interfaces/wrapper-services/player-team-service.interface.js.map +1 -0
- package/dist/interfaces/wrapper-services/season-achievement-service.interface.d.ts +145 -0
- package/dist/interfaces/wrapper-services/season-achievement-service.interface.d.ts.map +1 -0
- package/dist/interfaces/wrapper-services/season-achievement-service.interface.js +3 -0
- package/dist/interfaces/wrapper-services/season-achievement-service.interface.js.map +1 -0
- package/dist/interfaces/wrapper-services/season-completion-service.interface.d.ts +7 -0
- package/dist/interfaces/wrapper-services/season-completion-service.interface.d.ts.map +1 -0
- package/dist/interfaces/wrapper-services/season-completion-service.interface.js +3 -0
- package/dist/interfaces/wrapper-services/season-completion-service.interface.js.map +1 -0
- package/dist/interfaces/wrapper-services/team-league-service.interface.d.ts +6 -0
- package/dist/interfaces/wrapper-services/team-league-service.interface.d.ts.map +1 -0
- package/dist/interfaces/wrapper-services/team-league-service.interface.js +3 -0
- package/dist/interfaces/wrapper-services/team-league-service.interface.js.map +1 -0
- package/dist/interfaces/wrapper-services/team-of-the-season-service.interface.d.ts +16 -0
- package/dist/interfaces/wrapper-services/team-of-the-season-service.interface.d.ts.map +1 -0
- package/dist/interfaces/wrapper-services/team-of-the-season-service.interface.js +3 -0
- package/dist/interfaces/wrapper-services/team-of-the-season-service.interface.js.map +1 -0
- package/dist/interfaces/wrapper-services/team-of-the-week-service.interface.d.ts +8 -0
- package/dist/interfaces/wrapper-services/team-of-the-week-service.interface.d.ts.map +1 -0
- package/dist/interfaces/wrapper-services/team-of-the-week-service.interface.js +3 -0
- package/dist/interfaces/wrapper-services/team-of-the-week-service.interface.js.map +1 -0
- package/dist/interfaces/wrapper-services/team-stats-service.interface.d.ts +24 -0
- package/dist/interfaces/wrapper-services/team-stats-service.interface.d.ts.map +1 -0
- package/dist/interfaces/wrapper-services/team-stats-service.interface.js +3 -0
- package/dist/interfaces/wrapper-services/team-stats-service.interface.js.map +1 -0
- package/dist/models/ban.d.ts +19 -0
- package/dist/models/ban.d.ts.map +1 -0
- package/dist/models/ban.js +87 -0
- package/dist/models/ban.js.map +1 -0
- package/dist/models/chat.d.ts +29 -0
- package/dist/models/chat.d.ts.map +1 -0
- package/dist/models/chat.js +95 -0
- package/dist/models/chat.js.map +1 -0
- package/dist/models/comment/comment.d.ts +18 -0
- package/dist/models/comment/comment.d.ts.map +1 -0
- package/dist/models/comment/comment.js +46 -0
- package/dist/models/comment/comment.js.map +1 -0
- package/dist/models/event.d.ts +58 -0
- package/dist/models/event.d.ts.map +1 -0
- package/dist/models/event.js +102 -0
- package/dist/models/event.js.map +1 -0
- package/dist/models/fixture.d.ts +30 -0
- package/dist/models/fixture.d.ts.map +1 -0
- package/dist/models/fixture.js +58 -0
- package/dist/models/fixture.js.map +1 -0
- package/dist/models/game/ea-game-details.d.ts +97 -0
- package/dist/models/game/ea-game-details.d.ts.map +1 -0
- package/dist/models/game/ea-game-details.js +3 -0
- package/dist/models/game/ea-game-details.js.map +1 -0
- package/dist/models/game/game-types.d.ts +44 -0
- package/dist/models/game/game-types.d.ts.map +1 -0
- package/dist/models/game/game-types.js +3 -0
- package/dist/models/game/game-types.js.map +1 -0
- package/dist/models/game/game.d.ts +72 -0
- package/dist/models/game/game.d.ts.map +1 -0
- package/dist/models/game/game.js +145 -0
- package/dist/models/game/game.js.map +1 -0
- package/dist/models/game/player-validation.d.ts +196 -0
- package/dist/models/game/player-validation.d.ts.map +1 -0
- package/dist/models/game/player-validation.js +33 -0
- package/dist/models/game/player-validation.js.map +1 -0
- package/dist/models/league.d.ts +24 -0
- package/dist/models/league.d.ts.map +1 -0
- package/dist/models/league.js +63 -0
- package/dist/models/league.js.map +1 -0
- package/dist/models/news.d.ts +51 -0
- package/dist/models/news.d.ts.map +1 -0
- package/dist/models/news.js +97 -0
- package/dist/models/news.js.map +1 -0
- package/dist/models/notification.d.ts +20 -0
- package/dist/models/notification.d.ts.map +1 -0
- package/dist/models/notification.js +93 -0
- package/dist/models/notification.js.map +1 -0
- package/dist/models/player/player-types.d.ts +11 -0
- package/dist/models/player/player-types.d.ts.map +1 -0
- package/dist/models/player/player-types.js +3 -0
- package/dist/models/player/player-types.js.map +1 -0
- package/dist/models/player/player.d.ts +75 -0
- package/dist/models/player/player.d.ts.map +1 -0
- package/dist/models/player/player.js +115 -0
- package/dist/models/player/player.js.map +1 -0
- package/dist/models/player-association-request.d.ts +20 -0
- package/dist/models/player-association-request.d.ts.map +1 -0
- package/dist/models/player-association-request.js +89 -0
- package/dist/models/player-association-request.js.map +1 -0
- package/dist/models/prediction/prediction.d.ts +21 -0
- package/dist/models/prediction/prediction.d.ts.map +1 -0
- package/dist/models/prediction/prediction.js +42 -0
- package/dist/models/prediction/prediction.js.map +1 -0
- package/dist/models/season-achievement.d.ts +90 -0
- package/dist/models/season-achievement.d.ts.map +1 -0
- package/dist/models/season-achievement.js +126 -0
- package/dist/models/season-achievement.js.map +1 -0
- package/dist/models/team-of-the-season.d.ts +35 -0
- package/dist/models/team-of-the-season.d.ts.map +1 -0
- package/dist/models/team-of-the-season.js +69 -0
- package/dist/models/team-of-the-season.js.map +1 -0
- package/dist/models/team.d.ts +67 -0
- package/dist/models/team.d.ts.map +1 -0
- package/dist/models/team.js +88 -0
- package/dist/models/team.js.map +1 -0
- package/dist/models/transfer-request.d.ts +22 -0
- package/dist/models/transfer-request.d.ts.map +1 -0
- package/dist/models/transfer-request.js +132 -0
- package/dist/models/transfer-request.js.map +1 -0
- package/dist/models/user.d.ts +25 -0
- package/dist/models/user.d.ts.map +1 -0
- package/dist/models/user.js +109 -0
- package/dist/models/user.js.map +1 -0
- package/package.json +32 -0
- package/src/dtos/api-error-response.ts +71 -0
- package/src/dtos/enums/extended-game-status.enum.ts +13 -0
- package/src/dtos/enums/extended-game-status.ts +13 -0
- package/src/dtos/enums/index.ts +88 -0
- package/src/dtos/index.ts +7 -0
- package/src/dtos/requests/create-player-request.ts +12 -0
- package/src/dtos/requests/fixture-game-requests.ts +27 -0
- package/src/dtos/requests/fixture-requests.ts +13 -0
- package/src/dtos/requests/game-requests.ts +16 -0
- package/src/dtos/requests/index.ts +8 -0
- package/src/dtos/requests/player-performance-request.ts +18 -0
- package/src/dtos/requests/player-requests.ts +9 -0
- package/src/dtos/requests/update-player-data-request.ts +9 -0
- package/src/dtos/responses/api-error-response.interface.ts +71 -0
- package/src/dtos/responses/error-dtos.ts +39 -0
- package/src/dtos/responses/event-dtos.ts +97 -0
- package/src/dtos/responses/fixture-dtos.ts +52 -0
- package/src/dtos/responses/game-dtos.ts +82 -0
- package/src/dtos/responses/index.ts +11 -0
- package/src/dtos/responses/league-dtos.ts +10 -0
- package/src/dtos/responses/notification-dtos.ts +23 -0
- package/src/dtos/responses/player-dtos.ts +93 -0
- package/src/dtos/responses/stats-dtos.ts +87 -0
- package/src/dtos/responses/team-dtos.ts +30 -0
- package/src/dtos/responses/transfer-dtos.ts +66 -0
- package/src/dtos/transfer-request/index.ts +1 -0
- package/src/dtos/transfer-request/transfer-request.dto.ts +0 -0
- package/src/enums/extended-game-status.ts +15 -0
- package/src/index.ts +28 -0
- package/src/models/ban.ts +70 -0
- package/src/models/chat.ts +89 -0
- package/src/models/comment/comment.ts +62 -0
- package/src/models/event.ts +137 -0
- package/src/models/fixture.ts +52 -0
- package/src/models/game/ea-game-details.ts +124 -0
- package/src/models/game/game-types.ts +46 -0
- package/src/models/game/game.ts +170 -0
- package/src/models/game/player-validation.ts +262 -0
- package/src/models/league.ts +71 -0
- package/src/models/news.ts +130 -0
- package/src/models/notification.ts +80 -0
- package/src/models/player/player-types.ts +10 -0
- package/src/models/player/player.ts +174 -0
- package/src/models/player-association-request.ts +76 -0
- package/src/models/prediction/prediction.ts +54 -0
- package/src/models/season-achievement.ts +173 -0
- package/src/models/team-of-the-season.ts +74 -0
- package/src/models/team.ts +133 -0
- package/src/models/transfer-request.ts +129 -0
- package/src/models/user.ts +101 -0
- 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
|