pro-clubs-shared-dtos 3.0.0 → 3.1.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 (116) hide show
  1. package/dist/dtos/comment.dto.d.ts +24 -0
  2. package/dist/dtos/comment.dto.d.ts.map +1 -0
  3. package/dist/dtos/comment.dto.js +3 -0
  4. package/dist/dtos/comment.dto.js.map +1 -0
  5. package/dist/dtos/events/event.dto.d.ts +86 -0
  6. package/dist/dtos/events/event.dto.d.ts.map +1 -0
  7. package/dist/dtos/events/event.dto.js +34 -0
  8. package/dist/dtos/events/event.dto.js.map +1 -0
  9. package/dist/dtos/game.dto.d.ts +40 -0
  10. package/dist/dtos/game.dto.d.ts.map +1 -0
  11. package/dist/dtos/game.dto.js +3 -0
  12. package/dist/dtos/game.dto.js.map +1 -0
  13. package/dist/dtos/prediction.dto.d.ts +29 -0
  14. package/dist/dtos/prediction.dto.d.ts.map +1 -0
  15. package/dist/dtos/prediction.dto.js +4 -0
  16. package/dist/dtos/prediction.dto.js.map +1 -0
  17. package/dist/index.d.ts +12 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +12 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/service-interfaces/comment/comment.interface.d.ts +10 -0
  22. package/dist/service-interfaces/comment/comment.interface.d.ts.map +1 -0
  23. package/dist/service-interfaces/comment/comment.interface.js +3 -0
  24. package/dist/service-interfaces/comment/comment.interface.js.map +1 -0
  25. package/dist/service-interfaces/comment/index.d.ts +2 -0
  26. package/dist/service-interfaces/comment/index.d.ts.map +1 -0
  27. package/dist/service-interfaces/comment/index.js +18 -0
  28. package/dist/service-interfaces/comment/index.js.map +1 -0
  29. package/dist/service-interfaces/game/game-controller.interface.d.ts +11 -0
  30. package/dist/service-interfaces/game/game-controller.interface.d.ts.map +1 -0
  31. package/dist/service-interfaces/game/game-controller.interface.js +3 -0
  32. package/dist/service-interfaces/game/game-controller.interface.js.map +1 -0
  33. package/dist/service-interfaces/game/game-repository.interface.d.ts +9 -0
  34. package/dist/service-interfaces/game/game-repository.interface.d.ts.map +1 -0
  35. package/dist/service-interfaces/game/game-repository.interface.js +3 -0
  36. package/dist/service-interfaces/game/game-repository.interface.js.map +1 -0
  37. package/dist/service-interfaces/game/game.interface.d.ts +38 -0
  38. package/dist/service-interfaces/game/game.interface.d.ts.map +1 -0
  39. package/dist/service-interfaces/game/game.interface.js +3 -0
  40. package/dist/service-interfaces/game/game.interface.js.map +1 -0
  41. package/dist/service-interfaces/game/index.d.ts +4 -0
  42. package/dist/service-interfaces/game/index.d.ts.map +1 -0
  43. package/dist/service-interfaces/game/index.js +20 -0
  44. package/dist/service-interfaces/game/index.js.map +1 -0
  45. package/dist/service-interfaces/index.d.ts +9 -0
  46. package/dist/service-interfaces/index.d.ts.map +1 -0
  47. package/dist/service-interfaces/index.js +25 -0
  48. package/dist/service-interfaces/index.js.map +1 -0
  49. package/dist/service-interfaces/notification.interface.d.ts +20 -0
  50. package/dist/service-interfaces/notification.interface.d.ts.map +1 -0
  51. package/dist/service-interfaces/notification.interface.js +3 -0
  52. package/dist/service-interfaces/notification.interface.js.map +1 -0
  53. package/dist/service-interfaces/prediction/index.d.ts +2 -0
  54. package/dist/service-interfaces/prediction/index.d.ts.map +1 -0
  55. package/dist/service-interfaces/prediction/index.js +18 -0
  56. package/dist/service-interfaces/prediction/index.js.map +1 -0
  57. package/dist/service-interfaces/prediction/prediction.interface.d.ts +8 -0
  58. package/dist/service-interfaces/prediction/prediction.interface.d.ts.map +1 -0
  59. package/dist/service-interfaces/prediction/prediction.interface.js +3 -0
  60. package/dist/service-interfaces/prediction/prediction.interface.js.map +1 -0
  61. package/dist/service-interfaces/team/index.d.ts +2 -0
  62. package/dist/service-interfaces/team/index.d.ts.map +1 -0
  63. package/dist/service-interfaces/team/index.js +18 -0
  64. package/dist/service-interfaces/team/index.js.map +1 -0
  65. package/dist/service-interfaces/team/team.interface.d.ts +32 -0
  66. package/dist/service-interfaces/team/team.interface.d.ts.map +1 -0
  67. package/dist/service-interfaces/team/team.interface.js +3 -0
  68. package/dist/service-interfaces/team/team.interface.js.map +1 -0
  69. package/dist/service-interfaces/transfer-request.interface.d.ts +32 -0
  70. package/dist/service-interfaces/transfer-request.interface.d.ts.map +1 -0
  71. package/dist/service-interfaces/transfer-request.interface.js +3 -0
  72. package/dist/service-interfaces/transfer-request.interface.js.map +1 -0
  73. package/dist/service-interfaces/user/index.d.ts +4 -0
  74. package/dist/service-interfaces/user/index.d.ts.map +1 -0
  75. package/dist/service-interfaces/user/index.js +20 -0
  76. package/dist/service-interfaces/user/index.js.map +1 -0
  77. package/dist/service-interfaces/user/user-controller.interface.d.ts +18 -0
  78. package/dist/service-interfaces/user/user-controller.interface.d.ts.map +1 -0
  79. package/dist/service-interfaces/user/user-controller.interface.js +3 -0
  80. package/dist/service-interfaces/user/user-controller.interface.js.map +1 -0
  81. package/dist/service-interfaces/user/user-repository.interface.d.ts +9 -0
  82. package/dist/service-interfaces/user/user-repository.interface.d.ts.map +1 -0
  83. package/dist/service-interfaces/user/user-repository.interface.js +3 -0
  84. package/dist/service-interfaces/user/user-repository.interface.js.map +1 -0
  85. package/dist/service-interfaces/user/user.interface.d.ts +48 -0
  86. package/dist/service-interfaces/user/user.interface.d.ts.map +1 -0
  87. package/dist/service-interfaces/user/user.interface.js +3 -0
  88. package/dist/service-interfaces/user/user.interface.js.map +1 -0
  89. package/dist/service-interfaces/wrapper-services/index.d.ts +50 -0
  90. package/dist/service-interfaces/wrapper-services/index.d.ts.map +1 -0
  91. package/dist/service-interfaces/wrapper-services/index.js +3 -0
  92. package/dist/service-interfaces/wrapper-services/index.js.map +1 -0
  93. package/package.json +1 -1
  94. package/src/dtos/comment.dto.ts +24 -0
  95. package/src/dtos/events/event.dto.ts +99 -0
  96. package/src/dtos/game.dto.ts +44 -0
  97. package/src/dtos/prediction.dto.ts +31 -0
  98. package/src/index.ts +15 -1
  99. package/src/service-interfaces/comment/comment.interface.ts +9 -0
  100. package/src/service-interfaces/comment/index.ts +1 -0
  101. package/src/service-interfaces/game/game-controller.interface.ts +10 -0
  102. package/src/service-interfaces/game/game-repository.interface.ts +8 -0
  103. package/src/service-interfaces/game/game.interface.ts +43 -0
  104. package/src/service-interfaces/game/index.ts +3 -0
  105. package/src/service-interfaces/index.ts +9 -0
  106. package/src/service-interfaces/notification.interface.ts +20 -0
  107. package/src/service-interfaces/prediction/index.ts +1 -0
  108. package/src/service-interfaces/prediction/prediction.interface.ts +7 -0
  109. package/src/service-interfaces/team/index.ts +1 -0
  110. package/src/service-interfaces/team/team.interface.ts +33 -0
  111. package/src/service-interfaces/transfer-request.interface.ts +34 -0
  112. package/src/service-interfaces/user/index.ts +3 -0
  113. package/src/service-interfaces/user/user-controller.interface.ts +17 -0
  114. package/src/service-interfaces/user/user-repository.interface.ts +8 -0
  115. package/src/service-interfaces/user/user.interface.ts +55 -0
  116. package/src/service-interfaces/wrapper-services/index.ts +57 -0
@@ -0,0 +1,9 @@
1
+ export interface ICommentService {
2
+ createComment(gameId: string, userId: string, content: string, parentCommentId?: string): Promise<any>;
3
+ updateComment(commentId: string, userId: string, content: string): Promise<any>;
4
+ deleteComment(commentId: string, userId: string): Promise<void>;
5
+ getCommentsByGame(gameId: string, userId?: string, page?: number, limit?: number): Promise<any>;
6
+ likeComment(commentId: string, userId: string): Promise<any>;
7
+ unlikeComment(commentId: string, userId: string): Promise<any>;
8
+ getUserComments(userId: string, limit?: number): Promise<any[]>;
9
+ }
@@ -0,0 +1 @@
1
+ export * from './comment.interface';
@@ -0,0 +1,10 @@
1
+ export interface IGameController {
2
+ createGame(req: any, res: any): Promise<void>;
3
+ getGameById(req: any, res: any): Promise<void>;
4
+ getAllGames(req: any, res: any): Promise<void>;
5
+ updateGameResult(req: any, res: any): Promise<void>;
6
+ updateGameDate(req: any, res: any): Promise<void>;
7
+ deleteGame(req: any, res: any): Promise<void>;
8
+ updateGameBroadcast(req: any, res: any): Promise<void>;
9
+ updateTeamPlayersPerformance(req: any, res: any): Promise<void>;
10
+ }
@@ -0,0 +1,8 @@
1
+ export interface IGameRepository {
2
+ create(gameData: any): Promise<any>;
3
+ findById(id: string): Promise<any | null>;
4
+ findByIds(ids: string[]): Promise<any[]>;
5
+ findAll(): Promise<any[]>;
6
+ update(id: string, updateData: any): Promise<any | null>;
7
+ delete(id: string): Promise<boolean>;
8
+ }
@@ -0,0 +1,43 @@
1
+ // Extended interface to support BOT players
2
+ export interface UpdatePlayerPerformanceDataRequestExtended {
3
+ playerId: string;
4
+ position: string;
5
+ goals?: number;
6
+ assists?: number;
7
+ rating?: number;
8
+ isBot?: boolean;
9
+ }
10
+
11
+ export interface TopAvgRatingByPosition {
12
+ position: string;
13
+ avgRating: number;
14
+ playerName?: string;
15
+ playerId?: string;
16
+ }
17
+
18
+ export interface IGameService {
19
+ getGameById(id: string, session?: any): Promise<any>;
20
+ getGamesByIds(gamesIds: string[]): Promise<any[]>;
21
+ getAllGames(): Promise<any[]>;
22
+
23
+ getTopAvgRatingByPosition(position: string, minimumGames?: number, session?: any): Promise<TopAvgRatingByPosition[]>;
24
+
25
+ getCurrentSeasonTeamGames(teamId: string, limit?: number, session?: any): Promise<any[]>;
26
+ getTeamVsTeamHistory(team1Id: string, team2Id: string, limit?: number, session?: any): Promise<any[]>;
27
+
28
+ createGame(fixtureId: string, leagueId: string, seasonNumber: number, gameData: any, session: any): Promise<any>;
29
+ createFixtureGames(fixtureId: string, leagueId: string, seasonNumber: number, gamesData: any[], session: any): Promise<any[]>;
30
+
31
+ updateGameResult(gameId: string, homeTeamGoals: number, awayTeamGoals: number, isPlayoffGame: boolean, penalties?: { homeTeamPenalties: number; awayTeamPenalties: number }): Promise<void>;
32
+ resetGameResult(gameId: string): Promise<void>;
33
+ setTechnicalResult(gameId: string, losingTeamId: string, reason: string, date: Date, isPlayoffGame?: boolean): Promise<void>;
34
+ updateGameDate(gameId: string, date: Date): Promise<void>;
35
+ updateGameBroadcast(gameId: string, streamUrl: string, broadcastingTeam: string): Promise<void>;
36
+ updateAiAnalysisImage(gameId: string, imageUrl: string): Promise<void>;
37
+ replaceTeamInGame(gameId: string, oldTeamId: string, newTeamId: string): Promise<void>;
38
+
39
+ updateTeamPlayersPerformance(gameId: string, isHomeTeam: boolean, playersPerformance: UpdatePlayerPerformanceDataRequestExtended[], imageUrl?: string): Promise<void>;
40
+ uploadLineup(gameId: string, isHomeTeam: boolean, lineupData: any[]): Promise<void>;
41
+
42
+ deleteGame(id: string): Promise<void>;
43
+ }
@@ -0,0 +1,3 @@
1
+ export * from './game.interface';
2
+ export * from './game-controller.interface';
3
+ export * from './game-repository.interface';
@@ -0,0 +1,9 @@
1
+ // Export all service interfaces
2
+ export * from './user/index';
3
+ export * from './game/index';
4
+ export * from './team/index';
5
+ export * from './prediction/index';
6
+ export * from './comment/index';
7
+ export * from './transfer-request.interface';
8
+ export * from './notification.interface';
9
+ export * from './wrapper-services/index';
@@ -0,0 +1,20 @@
1
+ export interface CreateNotificationData {
2
+ userId: string;
3
+ type: 'transfer_request' | 'transfer_approved' | 'transfer_rejected' | 'transfer_cancelled' | 'player_association_request' | 'player_association_approved' | 'player_association_rejected' | 'system';
4
+ title: string;
5
+ message: string;
6
+ data?: any;
7
+ expiresAt?: Date;
8
+ }
9
+
10
+ export interface INotificationService {
11
+ createNotification(data: CreateNotificationData, session?: any): Promise<any>;
12
+ getNotificationsByUserId(userId: string, limit?: number, skip?: number): Promise<any[]>;
13
+ getUnreadNotificationsByUserId(userId: string): Promise<any[]>;
14
+ markAsRead(notificationId: string, session?: any): Promise<any | null>;
15
+ markAllAsRead(userId: string, session?: any): Promise<number>;
16
+ deleteNotification(notificationId: string, session?: any): Promise<boolean>;
17
+ deleteAllNotificationsByUserId(userId: string, session?: any): Promise<boolean>;
18
+ countUnreadByUserId(userId: string): Promise<number>;
19
+ cleanupExpiredNotifications(): Promise<number>;
20
+ }
@@ -0,0 +1 @@
1
+ export * from './prediction.interface';
@@ -0,0 +1,7 @@
1
+ export interface IPredictionService {
2
+ createOrUpdatePrediction(gameId: string, userId: string, predictedOutcome: any, confidence?: number): Promise<any>;
3
+ deletePrediction(predictionId: string, userId: string): Promise<void>;
4
+ getPredictionDistribution(gameId: string, userId?: string): Promise<any>;
5
+ getUserPredictions(userId: string, limit?: number): Promise<any[]>;
6
+ getPredictionById(predictionId: string): Promise<any>;
7
+ }
@@ -0,0 +1 @@
1
+ export * from './team.interface';
@@ -0,0 +1,33 @@
1
+ export interface ITeamService {
2
+ getTeamById(teamId: string): Promise<any>;
3
+ getTeams(limit?: number, skip?: number): Promise<any[]>;
4
+ createTeam(teamData: any): Promise<any>;
5
+ updateTeam(teamId: string, updateData: any): Promise<any>;
6
+ deleteTeam(teamId: string): Promise<boolean>;
7
+ getTeamByName(teamName: string): Promise<any>;
8
+ getAllTeamsByLeague(leagueId: string): Promise<any[]>;
9
+ getTeamPlayers(teamId: string): Promise<any[]>;
10
+ addPlayerToTeam(teamId: string, playerId: string): Promise<any>;
11
+ removePlayerFromTeam(teamId: string, playerId: string): Promise<any>;
12
+ updateTeamCaptain(teamId: string, newCaptainId: string): Promise<any>;
13
+ }
14
+
15
+ export interface ITeamController {
16
+ createTeam(req: any, res: any): Promise<void>;
17
+ getTeamById(req: any, res: any): Promise<void>;
18
+ getAllTeams(req: any, res: any): Promise<void>;
19
+ updateTeam(req: any, res: any): Promise<void>;
20
+ deleteTeam(req: any, res: any): Promise<void>;
21
+ getTeamPlayers(req: any, res: any): Promise<void>;
22
+ addPlayer(req: any, res: any): Promise<void>;
23
+ removePlayer(req: any, res: any): Promise<void>;
24
+ }
25
+
26
+ export interface ITeamRepository {
27
+ create(teamData: any): Promise<any>;
28
+ findById(id: string): Promise<any | null>;
29
+ findByName(name: string): Promise<any | null>;
30
+ findAll(): Promise<any[]>;
31
+ update(id: string, updateData: any): Promise<any | null>;
32
+ delete(id: string): Promise<boolean>;
33
+ }
@@ -0,0 +1,34 @@
1
+ export interface CreateTransferRequestData {
2
+ playerId: string;
3
+ fromTeamId?: string | null; // Optional for free agents
4
+ toTeamId: string;
5
+ message?: string;
6
+ }
7
+
8
+ export interface ProcessTransferRequestData {
9
+ requestId: string;
10
+ action: 'approve' | 'reject';
11
+ reason?: string;
12
+ }
13
+
14
+ export interface PaginatedTransferRequests {
15
+ data: any[];
16
+ page: number;
17
+ pageSize: number;
18
+ totalItems: number;
19
+ totalPages: number;
20
+ hasNextPage: boolean;
21
+ hasPreviousPage: boolean;
22
+ }
23
+
24
+ export interface ITransferRequestService {
25
+ createTransferRequest(requestedBy: string, data: CreateTransferRequestData): Promise<any>;
26
+ processTransferRequest(processedBy: string, data: ProcessTransferRequestData): Promise<any>;
27
+ getTransferRequestsByTeam(teamId: string, status?: string): Promise<any[]>;
28
+ getTransferRequestsByPlayer(playerId: string, status?: string): Promise<any[]>;
29
+ getAllTransferRequests(status?: string, leagueId?: string): Promise<any[]>;
30
+ getAllTransferRequestsPaginated(status: string | undefined, leagueId: string | undefined, page: number, pageSize: number): Promise<PaginatedTransferRequests>;
31
+ getTransferRequestById(requestId: string): Promise<any>;
32
+ cancelTransferRequest(requestId: string, userId: string): Promise<void>;
33
+ cleanupExpiredRequests(): Promise<number>;
34
+ }
@@ -0,0 +1,3 @@
1
+ export * from './user.interface';
2
+ export * from './user-controller.interface';
3
+ export * from './user-repository.interface';
@@ -0,0 +1,17 @@
1
+ export interface IUserController {
2
+ createUser(req: any, res: any): Promise<void>;
3
+ loginUser(req: any, res: any): Promise<void>;
4
+ googleAuth(req: any, res: any): Promise<void>;
5
+ getUserById(req: any, res: any): Promise<void>;
6
+ updateUser(req: any, res: any): Promise<void>;
7
+ deleteUser(req: any, res: any): Promise<void>;
8
+ verifyEmail(req: any, res: any): Promise<void>;
9
+ associatePlayer(req: any, res: any): Promise<void>;
10
+ removePlayer(req: any, res: any): Promise<void>;
11
+ searchPlayers(req: any, res: any): Promise<void>;
12
+ getUserPlayers(req: any, res: any): Promise<void>;
13
+ createPlayer(req: any, res: any): Promise<void>;
14
+ requestPasswordReset(req: any, res: any): Promise<void>;
15
+ verifyResetCode(req: any, res: any): Promise<void>;
16
+ resetPassword(req: any, res: any): Promise<void>;
17
+ }
@@ -0,0 +1,8 @@
1
+ export interface IUserRepository {
2
+ create(userData: any): Promise<any>;
3
+ findById(id: string): Promise<any | null>;
4
+ findByEmail(email: string): Promise<any | null>;
5
+ update(id: string, updateData: any): Promise<any | null>;
6
+ delete(id: string): Promise<boolean>;
7
+ findAll(): Promise<any[]>;
8
+ }
@@ -0,0 +1,55 @@
1
+ // User Request/Response DTOs (not service implementations, just contracts)
2
+
3
+ export interface CreateUserRequest {
4
+ email: string;
5
+ password: string;
6
+ firstName: string;
7
+ lastName: string;
8
+ }
9
+
10
+ export interface LoginRequest {
11
+ email: string;
12
+ password: string;
13
+ }
14
+
15
+ export interface GoogleAuthRequest {
16
+ googleId: string;
17
+ email: string;
18
+ firstName: string;
19
+ lastName: string;
20
+ profilePicture?: string;
21
+ }
22
+
23
+ export interface UpdateUserRequest {
24
+ firstName?: string;
25
+ lastName?: string;
26
+ email?: string;
27
+ profileImage?: string;
28
+ }
29
+
30
+ export interface AuthResponse {
31
+ user: any; // IUser from models
32
+ token: string;
33
+ }
34
+
35
+ // Service interface - defines contract for user service implementation
36
+ export interface IUserService {
37
+ createUser(userData: CreateUserRequest): Promise<AuthResponse>;
38
+ loginUser(loginData: LoginRequest): Promise<AuthResponse>;
39
+ googleAuth(googleData: GoogleAuthRequest): Promise<AuthResponse>;
40
+ getUserById(userId: string): Promise<any | null>;
41
+ getUserByEmail(email: string): Promise<any | null>;
42
+ updateUser(userId: string, updateData: Partial<any>): Promise<any | null>;
43
+ deleteUser(userId: string): Promise<boolean>;
44
+ associatePlayerWithUser(userId: string, playerId?: string, playerEmail?: string): Promise<any | null>;
45
+ removePlayerFromUser(userId: string, playerId: string): Promise<any | null>;
46
+ verifyEmail(userId: string): Promise<any | null>;
47
+ searchAvailablePlayers(search?: string, email?: string): Promise<any[]>;
48
+ getUserAssociatedPlayers(userId: string): Promise<any[]>;
49
+ checkPlayerOwnership(userId: string, playerId: string): Promise<boolean>;
50
+ isPlayerAssociated(playerId: string): Promise<boolean>;
51
+ createPlayerForUser(userId: string, playerData: any): Promise<any>;
52
+ requestPasswordReset(email: string): Promise<void>;
53
+ verifyResetCode(email: string, code: string): Promise<boolean>;
54
+ resetPassword(email: string, code: string, newPassword: string): Promise<AuthResponse>;
55
+ }
@@ -0,0 +1,57 @@
1
+ // Wrapper Service Interfaces
2
+ // These define contracts for high-level statistics and achievement services
3
+
4
+ export interface ITeamStatsService {
5
+ getCurrentSeasonAdvancedTeamStats(teamId: string, session?: any): Promise<any | null>;
6
+ getCurrentSeasonTeamPlayersStats(teamId: string, limit?: number, session?: any): Promise<any>;
7
+ getTeamTopScorersAndAssists(teamId: string, limit?: number, session?: any): Promise<{ topScorers: any[]; topAssists: any[] }>;
8
+ getTeamTopContributors(teamId: string, limit?: number, session?: any): Promise<any[]>;
9
+ }
10
+
11
+ export interface IPlayerStatsService {
12
+ getCurrentSeasonAdvancedPlayerStats(playerId: string, session?: any): Promise<any | null>;
13
+ getPlayerCareerStats(playerId: string): Promise<any | null>;
14
+ getPlayerAchievements(playerId: string): Promise<any[]>;
15
+ }
16
+
17
+ export interface ITeamLeagueService {
18
+ getTeamLeaguePositions(teamId: string): Promise<any[]>;
19
+ getCurrentSeasonTeamPosition(teamId: string): Promise<any | null>;
20
+ getTeamHistoricalPositions(teamId: string): Promise<any[]>;
21
+ }
22
+
23
+ export interface IPlayerTeamService {
24
+ getPlayerCurrentTeam(playerId: string): Promise<any | null>;
25
+ getPlayerTeamHistory(playerId: string): Promise<any[]>;
26
+ getTeamPlayers(teamId: string): Promise<any[]>;
27
+ }
28
+
29
+ export interface ITeamOfTheWeekService {
30
+ getTeamOfTheWeek(leagueId: string, seasonNumber: number, weekNumber?: number): Promise<any>;
31
+ getAllTeamsOfTheWeek(leagueId: string, seasonNumber: number): Promise<any[]>;
32
+ createTeamOfTheWeek(leagueId: string, seasonNumber: number, weekNumber: number, players: string[]): Promise<any>;
33
+ }
34
+
35
+ export interface ITeamOfTheSeasonService {
36
+ getTeamOfTheSeason(leagueId: string, seasonNumber: number): Promise<any>;
37
+ createTeamOfTheSeason(leagueId: string, seasonNumber: number, formation: any, players: string[]): Promise<any>;
38
+ }
39
+
40
+ export interface ISeasonCompletionService {
41
+ getSeasonCompletionStatus(leagueId: string, seasonNumber: number): Promise<any>;
42
+ completeSeason(leagueId: string, seasonNumber: number, endDate?: Date): Promise<any>;
43
+ }
44
+
45
+ export interface ISeasonAchievementService {
46
+ getSeasonAchievements(leagueId: string, seasonNumber: number): Promise<any>;
47
+ getPlayerAchievementsInSeason(playerId: string, leagueId: string, seasonNumber: number): Promise<any>;
48
+ getTeamAchievementsInSeason(teamId: string, leagueId: string, seasonNumber: number): Promise<any>;
49
+ previewSeasonEnd(leagueId: string, seasonNumber: number): Promise<any>;
50
+ endSeason(leagueId: string, seasonNumber: number, endDate?: Date, forceEnd?: boolean): Promise<any>;
51
+ }
52
+
53
+ export interface ILeagueStatsService {
54
+ getCurrentSeasonTopScorers(leagueId: string, limit?: number): Promise<any[]>;
55
+ getCurrentSeasonTopAssists(leagueId: string, limit?: number): Promise<any[]>;
56
+ getLeagueStandings(leagueId: string, seasonNumber?: number): Promise<any>;
57
+ }