import { MembershipFeeDto } from '../dtos'; export class MembershipFeeViewModel implements MembershipFeeDto { leagueId: string; amount: number; currency: string; period: string; constructor(dto: MembershipFeeDto) { Object.assign(this, dto); } /** UI-specific: Formatted amount */ get formattedAmount(): string { return `${this.currency} ${this.amount.toFixed(2)}`; } /** UI-specific: Period display */ get periodDisplay(): string { switch (this.period) { case 'monthly': return 'Monthly'; case 'yearly': return 'Yearly'; case 'season': return 'Per Season'; default: return this.period; } } /** UI-specific: Amount per period */ get amountPerPeriod(): string { return `${this.formattedAmount} ${this.periodDisplay.toLowerCase()}`; } }