Files
gridpilot.gg/apps/website/lib/view-models/LeagueMembershipsViewModel.ts
2025-12-24 21:44:58 +01:00

26 lines
755 B
TypeScript

import { LeagueMemberViewModel } from './LeagueMemberViewModel';
import type { LeagueMemberDTO } from '../types/generated/LeagueMemberDTO';
/**
* View Model for League Memberships
*
* Represents the league's memberships in a UI-ready format.
*/
export class LeagueMembershipsViewModel {
memberships: LeagueMemberViewModel[];
constructor(dto: { members: LeagueMemberDTO[] }, currentUserId: string) {
this.memberships = dto.members.map(membership => new LeagueMemberViewModel(membership, currentUserId));
}
/** 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;
}
}