view models
This commit is contained in:
25
apps/website/lib/view-models/LeagueMembershipsViewModel.ts
Normal file
25
apps/website/lib/view-models/LeagueMembershipsViewModel.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user