wip
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* Application Port: ITeamMembershipRepository
|
||||
*
|
||||
* Repository interface for team membership and join request operations.
|
||||
* This defines the persistence boundary for team membership-related entities.
|
||||
*/
|
||||
|
||||
import type {
|
||||
TeamMembership,
|
||||
TeamJoinRequest,
|
||||
} from '../entities/Team';
|
||||
|
||||
export interface ITeamMembershipRepository {
|
||||
/**
|
||||
* Get membership for a driver in a team, or null if none exists.
|
||||
*/
|
||||
getMembership(teamId: string, driverId: string): Promise<TeamMembership | null>;
|
||||
|
||||
/**
|
||||
* Get the active team membership for a driver (if any).
|
||||
*/
|
||||
getActiveMembershipForDriver(driverId: string): Promise<TeamMembership | null>;
|
||||
|
||||
/**
|
||||
* Get all active members for a team.
|
||||
*/
|
||||
getTeamMembers(teamId: string): Promise<TeamMembership[]>;
|
||||
|
||||
/**
|
||||
* Persist a membership (create or update).
|
||||
*/
|
||||
saveMembership(membership: TeamMembership): Promise<TeamMembership>;
|
||||
|
||||
/**
|
||||
* Remove a membership for a driver in a team.
|
||||
*/
|
||||
removeMembership(teamId: string, driverId: string): Promise<void>;
|
||||
|
||||
/**
|
||||
* Get all join requests for a team.
|
||||
*/
|
||||
getJoinRequests(teamId: string): Promise<TeamJoinRequest[]>;
|
||||
|
||||
/**
|
||||
* Persist a join request (create or update).
|
||||
*/
|
||||
saveJoinRequest(request: TeamJoinRequest): Promise<TeamJoinRequest>;
|
||||
|
||||
/**
|
||||
* Remove a join request by its ID.
|
||||
*/
|
||||
removeJoinRequest(requestId: string): Promise<void>;
|
||||
}
|
||||
Reference in New Issue
Block a user