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

export interface DriverTeamViewModel {
  team: {
    id: string;
    name: string;
    tag: string;
    description: string;
    ownerId: string;
    leagues: string[];
    specialization?: 'endurance' | 'sprint' | 'mixed';
    region?: string;
    languages?: string[];
  };
  membership: {
    role: 'owner' | 'manager' | 'member';
    joinedAt: string;
    isActive: boolean;
  };
  isOwner: boolean;
  canManage: boolean;
}

export interface DriverTeamResultDTO {
  team: Team;
  membership: TeamMembership;
  driverId: string;
}

export interface IDriverTeamPresenter
  extends Presenter<DriverTeamResultDTO, DriverTeamViewModel> {}