Files
gridpilot.gg/packages/racing/application/presenters/ITeamJoinRequestsPresenter.ts
2025-12-11 21:06:25 +01:00

27 lines
769 B
TypeScript

import type { TeamJoinRequest } from '../../domain/types/TeamMembership';
import type { Presenter } from '@gridpilot/shared/presentation';
export interface TeamJoinRequestViewModel {
requestId: string;
driverId: string;
driverName: string;
teamId: string;
status: 'pending' | 'approved' | 'rejected';
requestedAt: string;
avatarUrl: string;
}
export interface TeamJoinRequestsViewModel {
requests: TeamJoinRequestViewModel[];
pendingCount: number;
totalCount: number;
}
export interface TeamJoinRequestsResultDTO {
requests: TeamJoinRequest[];
driverNames: Record<string, string>;
avatarUrls: Record<string, string>;
}
export interface ITeamJoinRequestsPresenter
extends Presenter<TeamJoinRequestsResultDTO, TeamJoinRequestsViewModel> {}