import { PrizeDto } from '../dtos'; export class PrizeViewModel implements PrizeDto { id: string; name: string; amount: number; currency: string; position?: number; constructor(dto: PrizeDto) { Object.assign(this, dto); } /** UI-specific: Formatted amount */ get formattedAmount(): string { return `${this.currency} ${this.amount.toFixed(2)}`; } /** UI-specific: Position display */ get positionDisplay(): string { if (!this.position) return 'Special'; switch (this.position) { case 1: return '1st Place'; case 2: return '2nd Place'; case 3: return '3rd Place'; default: return `${this.position}th Place`; } } /** UI-specific: Prize description */ get prizeDescription(): string { return `${this.name} - ${this.formattedAmount}`; } }