import type { TeamMembership } from '../../domain/types/TeamMembership';
import type { Presenter } from '@core/shared/presentation';

export interface TeamMemberViewModel {
  driverId: string;
  driverName: string;
  role: 'owner' | 'manager' | 'member';
  joinedAt: string;
  isActive: boolean;
  avatarUrl: string;
}

export interface TeamMembersViewModel {
  members: TeamMemberViewModel[];
  totalCount: number;
  ownerCount: number;
  managerCount: number;
  memberCount: number;
}

export interface TeamMembersResultDTO {
  memberships: TeamMembership[];
  driverNames: Record<string, string>;
  avatarUrls: Record<string, string>;
}

export interface ITeamMembersPresenter
  extends Presenter<TeamMembersResultDTO, TeamMembersViewModel> {}