refactor core presenters

This commit is contained in:
2025-12-19 19:42:19 +01:00
parent 8116fe888f
commit 94fc538f44
228 changed files with 2817 additions and 3097 deletions

View File

@@ -1,22 +1,41 @@
import type { GetEntitySponsorshipPricingResultDTO } from '@core/racing/application/use-cases/GetEntitySponsorshipPricingUseCase';
import type { IEntitySponsorshipPricingPresenter } from '@core/racing/application/presenters/IEntitySponsorshipPricingPresenter';
import type { GetEntitySponsorshipPricingOutputPort } from '@core/racing/application/ports/output/GetEntitySponsorshipPricingOutputPort';
import { GetEntitySponsorshipPricingResultDTO } from '../dtos/GetEntitySponsorshipPricingResultDTO';
export class GetEntitySponsorshipPricingPresenter implements IEntitySponsorshipPricingPresenter {
export class GetEntitySponsorshipPricingPresenter {
private result: GetEntitySponsorshipPricingResultDTO | null = null;
reset() {
this.result = null;
}
present(dto: GetEntitySponsorshipPricingResultDTO | null) {
this.result = dto;
async present(output: GetEntitySponsorshipPricingOutputPort | null) {
if (!output) {
this.result = { pricing: [] };
return;
}
const pricing = [];
if (output.mainSlot) {
pricing.push({
id: `${output.entityType}-${output.entityId}-main`,
level: 'main',
price: output.mainSlot.price,
currency: output.mainSlot.currency,
});
}
if (output.secondarySlot) {
pricing.push({
id: `${output.entityType}-${output.entityId}-secondary`,
level: 'secondary',
price: output.secondarySlot.price,
currency: output.secondarySlot.currency,
});
}
this.result = { pricing };
}
getViewModel(): GetEntitySponsorshipPricingResultDTO | null {
return this.result;
}
get viewModel(): GetEntitySponsorshipPricingResultDTO | null {
return this.result;
}
}