import { TeamSummaryDto } from '../dtos';

export class TeamSummaryViewModel implements TeamSummaryDto {
  id: string;
  name: string;
  logoUrl?: string;
  memberCount: number;
  rating: number;

  private maxMembers = 10; // Assuming max members

  constructor(dto: TeamSummaryDto) {
    Object.assign(this, dto);
  }

  /** UI-specific: Whether team is full */
  get isFull(): boolean {
    return this.memberCount >= this.maxMembers;
  }

  /** UI-specific: Rating display */
  get ratingDisplay(): string {
    return this.rating.toFixed(0);
  }

  /** UI-specific: Member count display */
  get memberCountDisplay(): string {
    return `${this.memberCount}/${this.maxMembers}`;
  }

  /** UI-specific: Status indicator */
  get statusIndicator(): string {
    if (this.isFull) return 'Full';
    return 'Open';
  }

  /** UI-specific: Status color */
  get statusColor(): string {
    return this.isFull ? 'red' : 'green';
  }
}