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.
- package/dist/dtos/comment.dto.d.ts +24 -0
- package/dist/dtos/comment.dto.d.ts.map +1 -0
- package/dist/dtos/comment.dto.js +3 -0
- package/dist/dtos/comment.dto.js.map +1 -0
- package/dist/dtos/events/event.dto.d.ts +86 -0
- package/dist/dtos/events/event.dto.d.ts.map +1 -0
- package/dist/dtos/events/event.dto.js +34 -0
- package/dist/dtos/events/event.dto.js.map +1 -0
- package/dist/dtos/game.dto.d.ts +40 -0
- package/dist/dtos/game.dto.d.ts.map +1 -0
- package/dist/dtos/game.dto.js +3 -0
- package/dist/dtos/game.dto.js.map +1 -0
- package/dist/dtos/prediction.dto.d.ts +29 -0
- package/dist/dtos/prediction.dto.d.ts.map +1 -0
- package/dist/dtos/prediction.dto.js +4 -0
- package/dist/dtos/prediction.dto.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/service-interfaces/comment/comment.interface.d.ts +10 -0
- package/dist/service-interfaces/comment/comment.interface.d.ts.map +1 -0
- package/dist/service-interfaces/comment/comment.interface.js +3 -0
- package/dist/service-interfaces/comment/comment.interface.js.map +1 -0
- package/dist/service-interfaces/comment/index.d.ts +2 -0
- package/dist/service-interfaces/comment/index.d.ts.map +1 -0
- package/dist/service-interfaces/comment/index.js +18 -0
- package/dist/service-interfaces/comment/index.js.map +1 -0
- package/dist/service-interfaces/game/game-controller.interface.d.ts +11 -0
- package/dist/service-interfaces/game/game-controller.interface.d.ts.map +1 -0
- package/dist/service-interfaces/game/game-controller.interface.js +3 -0
- package/dist/service-interfaces/game/game-controller.interface.js.map +1 -0
- package/dist/service-interfaces/game/game-repository.interface.d.ts +9 -0
- package/dist/service-interfaces/game/game-repository.interface.d.ts.map +1 -0
- package/dist/service-interfaces/game/game-repository.interface.js +3 -0
- package/dist/service-interfaces/game/game-repository.interface.js.map +1 -0
- package/dist/service-interfaces/game/game.interface.d.ts +38 -0
- package/dist/service-interfaces/game/game.interface.d.ts.map +1 -0
- package/dist/service-interfaces/game/game.interface.js +3 -0
- package/dist/service-interfaces/game/game.interface.js.map +1 -0
- package/dist/service-interfaces/game/index.d.ts +4 -0
- package/dist/service-interfaces/game/index.d.ts.map +1 -0
- package/dist/service-interfaces/game/index.js +20 -0
- package/dist/service-interfaces/game/index.js.map +1 -0
- package/dist/service-interfaces/index.d.ts +9 -0
- package/dist/service-interfaces/index.d.ts.map +1 -0
- package/dist/service-interfaces/index.js +25 -0
- package/dist/service-interfaces/index.js.map +1 -0
- package/dist/service-interfaces/notification.interface.d.ts +20 -0
- package/dist/service-interfaces/notification.interface.d.ts.map +1 -0
- package/dist/service-interfaces/notification.interface.js +3 -0
- package/dist/service-interfaces/notification.interface.js.map +1 -0
- package/dist/service-interfaces/prediction/index.d.ts +2 -0
- package/dist/service-interfaces/prediction/index.d.ts.map +1 -0
- package/dist/service-interfaces/prediction/index.js +18 -0
- package/dist/service-interfaces/prediction/index.js.map +1 -0
- package/dist/service-interfaces/prediction/prediction.interface.d.ts +8 -0
- package/dist/service-interfaces/prediction/prediction.interface.d.ts.map +1 -0
- package/dist/service-interfaces/prediction/prediction.interface.js +3 -0
- package/dist/service-interfaces/prediction/prediction.interface.js.map +1 -0
- package/dist/service-interfaces/team/index.d.ts +2 -0
- package/dist/service-interfaces/team/index.d.ts.map +1 -0
- package/dist/service-interfaces/team/index.js +18 -0
- package/dist/service-interfaces/team/index.js.map +1 -0
- package/dist/service-interfaces/team/team.interface.d.ts +32 -0
- package/dist/service-interfaces/team/team.interface.d.ts.map +1 -0
- package/dist/service-interfaces/team/team.interface.js +3 -0
- package/dist/service-interfaces/team/team.interface.js.map +1 -0
- package/dist/service-interfaces/transfer-request.interface.d.ts +32 -0
- package/dist/service-interfaces/transfer-request.interface.d.ts.map +1 -0
- package/dist/service-interfaces/transfer-request.interface.js +3 -0
- package/dist/service-interfaces/transfer-request.interface.js.map +1 -0
- package/dist/service-interfaces/user/index.d.ts +4 -0
- package/dist/service-interfaces/user/index.d.ts.map +1 -0
- package/dist/service-interfaces/user/index.js +20 -0
- package/dist/service-interfaces/user/index.js.map +1 -0
- package/dist/service-interfaces/user/user-controller.interface.d.ts +18 -0
- package/dist/service-interfaces/user/user-controller.interface.d.ts.map +1 -0
- package/dist/service-interfaces/user/user-controller.interface.js +3 -0
- package/dist/service-interfaces/user/user-controller.interface.js.map +1 -0
- package/dist/service-interfaces/user/user-repository.interface.d.ts +9 -0
- package/dist/service-interfaces/user/user-repository.interface.d.ts.map +1 -0
- package/dist/service-interfaces/user/user-repository.interface.js +3 -0
- package/dist/service-interfaces/user/user-repository.interface.js.map +1 -0
- package/dist/service-interfaces/user/user.interface.d.ts +48 -0
- package/dist/service-interfaces/user/user.interface.d.ts.map +1 -0
- package/dist/service-interfaces/user/user.interface.js +3 -0
- package/dist/service-interfaces/user/user.interface.js.map +1 -0
- package/dist/service-interfaces/wrapper-services/index.d.ts +50 -0
- package/dist/service-interfaces/wrapper-services/index.d.ts.map +1 -0
- package/dist/service-interfaces/wrapper-services/index.js +3 -0
- package/dist/service-interfaces/wrapper-services/index.js.map +1 -0
- package/package.json +1 -1
- package/src/dtos/comment.dto.ts +24 -0
- package/src/dtos/events/event.dto.ts +99 -0
- package/src/dtos/game.dto.ts +44 -0
- package/src/dtos/prediction.dto.ts +31 -0
- package/src/index.ts +15 -1
- package/src/service-interfaces/comment/comment.interface.ts +9 -0
- package/src/service-interfaces/comment/index.ts +1 -0
- package/src/service-interfaces/game/game-controller.interface.ts +10 -0
- package/src/service-interfaces/game/game-repository.interface.ts +8 -0
- package/src/service-interfaces/game/game.interface.ts +43 -0
- package/src/service-interfaces/game/index.ts +3 -0
- package/src/service-interfaces/index.ts +9 -0
- package/src/service-interfaces/notification.interface.ts +20 -0
- package/src/service-interfaces/prediction/index.ts +1 -0
- package/src/service-interfaces/prediction/prediction.interface.ts +7 -0
- package/src/service-interfaces/team/index.ts +1 -0
- package/src/service-interfaces/team/team.interface.ts +33 -0
- package/src/service-interfaces/transfer-request.interface.ts +34 -0
- package/src/service-interfaces/user/index.ts +3 -0
- package/src/service-interfaces/user/user-controller.interface.ts +17 -0
- package/src/service-interfaces/user/user-repository.interface.ts +8 -0
- package/src/service-interfaces/user/user.interface.ts +55 -0
- 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,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,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
|
+
}
|