import { BaseApiClient } from '../base/BaseApiClient'; import type { AllTeamsDto, TeamDetailsDto, TeamMembersDto, TeamJoinRequestsDto, CreateTeamInputDto, CreateTeamOutputDto, UpdateTeamInputDto, UpdateTeamOutputDto, DriverTeamDto, } from '../../dtos'; /** * Teams API Client * * Handles all team-related API operations. */ export class TeamsApiClient extends BaseApiClient { /** Get all teams */ getAll(): Promise { return this.get('/teams/all'); } /** Get team details */ getDetails(teamId: string): Promise { return this.get(`/teams/${teamId}`); } /** Get team members */ getMembers(teamId: string): Promise { return this.get(`/teams/${teamId}/members`); } /** Get team join requests */ getJoinRequests(teamId: string): Promise { return this.get(`/teams/${teamId}/join-requests`); } /** Create a new team */ create(input: CreateTeamInputDto): Promise { return this.post('/teams', input); } /** Update team */ update(teamId: string, input: UpdateTeamInputDto): Promise { return this.patch(`/teams/${teamId}`, input); } /** Get driver's team */ getDriverTeam(driverId: string): Promise { return this.get(`/teams/driver/${driverId}`); } }