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

28 lines
751 B
TypeScript

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