Files
gridpilot.gg/apps/website/lib/builders/view-data/SponsorshipRequestsPageViewDataBuilder.ts
2026-01-14 10:51:05 +01:00

27 lines
992 B
TypeScript

import type { GetPendingSponsorshipRequestsOutputDTO } from '@/lib/types/generated/GetPendingSponsorshipRequestsOutputDTO';
import type { SponsorshipRequestsViewData } from '@/lib/view-data/SponsorshipRequestsViewData';
/**
* ViewData Builder for Sponsorship Requests page
* Transforms API DTO to ViewData for templates
*/
export class SponsorshipRequestsPageViewDataBuilder {
static build(apiDto: GetPendingSponsorshipRequestsOutputDTO): SponsorshipRequestsViewData {
return {
sections: [{
entityType: apiDto.entityType as 'driver' | 'team' | 'season',
entityId: apiDto.entityId,
entityName: apiDto.entityType,
requests: apiDto.requests.map(request => ({
id: request.id,
sponsorId: request.sponsorId,
sponsorName: request.sponsorName,
sponsorLogoUrl: request.sponsorLogo || null,
message: request.message || null,
createdAtIso: request.createdAt,
})),
}],
};
}
}