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> {}