import type { ViewDataBuilder } from '@/lib/contracts/builders/ViewDataBuilder'; import { DateFormatter } from '@/lib/formatters/DateFormatter'; import { StatusFormatter } from '@/lib/formatters/StatusFormatter'; import type { LeagueSponsorshipsApiDto } from '@/lib/types/tbd/LeagueSponsorshipsApiDto'; import type { LeagueSponsorshipsViewData } from '@/lib/view-data/LeagueSponsorshipsViewData'; type LeagueSponsorshipsInputDTO = LeagueSponsorshipsApiDto; export class LeagueSponsorshipsViewDataBuilder { public static build(apiDto: LeagueSponsorshipsInputDTO): LeagueSponsorshipsViewData { return { leagueId: apiDto.leagueId, activeTab: 'overview', onTabChange: () => {}, league: apiDto.league, sponsorshipSlots: apiDto.sponsorshipSlots, sponsorshipRequests: apiDto.sponsorshipRequests.map(r => ({ id: r.id, slotId: r.slotId, sponsorId: r.sponsorId, sponsorName: r.sponsorName, requestedAt: r.requestedAt, formattedRequestedAt: DateFormatter.formatShort(r.requestedAt), status: r.status as 'pending' | 'approved' | 'rejected', statusLabel: StatusFormatter.protestStatus(r.status), })), }; } } LeagueSponsorshipsViewDataBuilder satisfies ViewDataBuilder;