website refactor

This commit is contained in:
2026-01-14 10:51:05 +01:00
parent 4522d41aef
commit 0d89ad027e
291 changed files with 6887 additions and 3685 deletions

View File

@@ -1,16 +1,26 @@
import type { SponsorshipRequestDTO } from '@/lib/types/generated/SponsorshipRequestDTO';
import type { GetPendingSponsorshipRequestsOutputDTO } from '@/lib/types/generated/GetPendingSponsorshipRequestsOutputDTO';
import type { SponsorshipRequestsViewData } from '@/lib/view-data/SponsorshipRequestsViewData';
export interface SponsorshipRequestsViewData {
requests: SponsorshipRequestDTO[];
isEmpty: boolean;
}
/**
* ViewData Builder for Sponsorship Requests page
* Transforms API DTO to ViewData for templates
*/
export class SponsorshipRequestsPageViewDataBuilder {
build(queryResult: GetPendingSponsorshipRequestsOutputDTO): SponsorshipRequestsViewData {
static build(apiDto: GetPendingSponsorshipRequestsOutputDTO): SponsorshipRequestsViewData {
return {
requests: queryResult.requests,
isEmpty: queryResult.requests.length === 0,
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,
})),
}],
};
}
}