// Note: No generated DTO available for Sponsor yet
interface SponsorDTO {
  id: string;
  name: string;
  logoUrl?: string;
  websiteUrl?: string;
}

export class SponsorViewModel {
  id: string;
  name: string;
  declare logoUrl?: string;
  declare websiteUrl?: string;

  constructor(dto: SponsorDTO) {
    this.id = dto.id;
    this.name = dto.name;
    if (dto.logoUrl !== undefined) this.logoUrl = dto.logoUrl;
    if (dto.websiteUrl !== undefined) this.websiteUrl = dto.websiteUrl;
  }

  /** UI-specific: Display name */
  get displayName(): string {
    return this.name;
  }

  /** UI-specific: Whether has website */
  get hasWebsite(): boolean {
    return !!this.websiteUrl;
  }

  /** UI-specific: Website link text */
  get websiteLinkText(): string {
    return 'Visit Website';
  }
}