import type { GetDriverTeamOutputDTO } from '@/lib/types/generated/GetDriverTeamOutputDTO';

/**
 * View Model for Driver's Team
 *
 * Represents a driver's team membership in a UI-ready format.
 */
export class DriverTeamViewModel {
  teamId: string;
  teamName: string;
  tag: string;
  role: string;
  isOwner: boolean;
  canManage: boolean;

  constructor(dto: GetDriverTeamOutputDTO) {
    this.teamId = dto.team.id;
    this.teamName = dto.team.name;
    this.tag = dto.team.tag;
    this.role = dto.membership.role;
    this.isOwner = dto.isOwner;
    this.canManage = dto.canManage;
  }

  /** UI-specific: Display role */
  get displayRole(): string {
    return this.role.charAt(0).toUpperCase() + this.role.slice(1);
  }
}