import type { Presenter } from '@core/shared/presentation';

export interface TeamListItemViewModel {
  id: string;
  name: string;
  tag: string;
  description: string;
  memberCount: number;
  leagues: string[];
  specialization?: 'endurance' | 'sprint' | 'mixed';
  region?: string;
  languages?: string[];
}

export interface AllTeamsViewModel {
  teams: TeamListItemViewModel[];
  totalCount: number;
}

export interface AllTeamsResultDTO {
  teams: Array<{
    id: string;
    name: string;
    tag: string;
    description: string;
    ownerId: string;
    leagues: string[];
    createdAt: Date;
    memberCount: number;
  }>;
}

export interface IAllTeamsPresenter
  extends Presenter<AllTeamsResultDTO, AllTeamsViewModel> {}