import { ViewModel } from "../contracts/view-models/ViewModel"; import type { LeagueMembershipsViewData } from "../view-data/LeagueMembershipsViewData"; import { LeagueMemberViewModel } from './LeagueMemberViewModel'; export class LeagueMembershipsViewModel extends ViewModel { private readonly data: LeagueMembershipsViewData; readonly memberships: LeagueMemberViewModel[]; constructor(data: LeagueMembershipsViewData) { super(); this.data = data; this.memberships = data.memberships.map((m) => new LeagueMemberViewModel(m)); } /** UI-specific: Number of members */ get memberCount(): number { return this.memberships.length; } /** UI-specific: Whether the league has members */ get hasMembers(): boolean { return this.memberCount > 0; } }