Files
gridpilot.gg/core/racing/application/presenters/ITeamJoinRequestsPresenter.ts
2025-12-16 11:52:26 +01:00

27 lines
764 B
TypeScript

import type { TeamJoinRequest } from '../../domain/types/TeamMembership';
import type { Presenter } from '@core/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> {}