website refactor
This commit is contained in:
@@ -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,
|
||||
})),
|
||||
}],
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user