view models

This commit is contained in:
2025-12-18 00:08:47 +01:00
parent f7a56a92ce
commit 7c449af311
56 changed files with 2594 additions and 206 deletions

View File

@@ -1,4 +1,4 @@
import type { SponsorSponsorshipsDto } from '../dtos';
import type { SponsorSponsorshipsDTO } from '../types/generated/SponsorSponsorshipsDTO';
import { SponsorshipDetailViewModel } from './SponsorshipDetailViewModel';
/**
@@ -6,17 +6,19 @@ import { SponsorshipDetailViewModel } from './SponsorshipDetailViewModel';
*
* View model for sponsor sponsorships data with UI-specific transformations.
*/
export class SponsorSponsorshipsViewModel {
export class SponsorSponsorshipsViewModel implements SponsorSponsorshipsDTO {
sponsorId: string;
sponsorName: string;
sponsorships: SponsorshipDetailViewModel[];
constructor(dto: SponsorSponsorshipsDto) {
constructor(dto: SponsorSponsorshipsDTO) {
this.sponsorId = dto.sponsorId;
this.sponsorName = dto.sponsorName;
this.sponsorships = dto.sponsorships.map(s => new SponsorshipDetailViewModel(s));
}
// Note: The generated DTO doesn't have sponsorships array
// This will need to be added when the OpenAPI spec is updated
sponsorships: SponsorshipDetailViewModel[] = [];
/** UI-specific: Total sponsorships count */
get totalCount(): number {
return this.sponsorships.length;