import { ViewModel } from "../contracts/view-models/ViewModel"; import type { LeagueAdminViewData } from "../view-data/LeagueAdminViewData"; import { LeagueMemberViewModel } from './LeagueMemberViewModel'; export class LeagueAdminViewModel extends ViewModel { private readonly data: LeagueAdminViewData; readonly members: LeagueMemberViewModel[]; constructor(data: LeagueAdminViewData) { super(); this.data = data; this.members = data.members.map(m => new LeagueMemberViewModel(m)); } get config(): unknown { return this.data.config; } get joinRequests(): any[] { return this.data.joinRequests; } /** UI-specific: Total pending requests count */ get pendingRequestsCount(): number { return this.joinRequests.length; } /** UI-specific: Whether there are any pending requests */ get hasPendingRequests(): boolean { return this.joinRequests.length > 0; } }