25 lines
762 B
TypeScript
25 lines
762 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: { memberships: LeagueMemberDTO[] }, currentUserId: string) {
|
|
this.memberships = dto.memberships.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;
|
|
}
|
|
} |