import { UserDataState } from '../state/UserDataState'; import { Retailer } from '../entities/Enums'; import { QuickQuoteRequestParams, EstimatedQuoteRequestParams, UsageBasedQuoteRequestParams, MoveInQuoteRequestParams } from '../entities/Quote'; export class QuoteRequestConversions { constructor(private userDataState: UserDataState, private retailer: Retailer) { } private convertBaseQuoteParams() { const region = this.userDataState.region ? { region: this.userDataState.region } : {} const serviceType = this.userDataState.serviceType ? { serviceType: this.userDataState.serviceType } : {} return { retailer: this.retailer, postcode: this.userDataState.postcode, economy7: this.userDataState.economy7, fuel: this.userDataState.fuel, paymentMethod: this.userDataState.paymentMethod, ...serviceType, ...region, } } convertToQuickQuoteParams(): QuickQuoteRequestParams { return { ...this.convertBaseQuoteParams(), usage: this.userDataState.usage, } } convertToEstimatedQuoteParams(): EstimatedQuoteRequestParams { return { ...this.convertBaseQuoteParams(), energyUsage: this.userDataState.energyUsage, insulation: this.userDataState.insulation, numberOfOccupants: this.userDataState.numberOfOccupants, numberOfRooms: this.userDataState.numberOfRooms } } convertToUsageBasedQuoteParams(): UsageBasedQuoteRequestParams { const gasParams = this.userDataState.fuel === 'Electricity' ? {} : { gasPeriod: this.userDataState.gasPeriod, gasSupplierId: this.userDataState.previousGasSupplier ? this.userDataState.previousGasSupplier.id : undefined, gasTariffId: this.userDataState.previousGasTariff ? this.userDataState.previousGasTariff.id : undefined, gasUnit: this.userDataState.gasUnit, gasUsage: this.userDataState.gasUsage }; return { ...this.convertBaseQuoteParams(), electricityPeriod: this.userDataState.electricityPeriod, electricitySupplierId: this.userDataState.previousElectricitySupplier ? this.userDataState.previousElectricitySupplier.id : undefined, electricityTariffId: this.userDataState.previousElectricityTariff ? this.userDataState.previousElectricityTariff.id : undefined, electricityUnit: this.userDataState.electricityUnit, electricityUsage: this.userDataState.electricityUsage, ...gasParams } } convertToMoveInQuoteParams(): MoveInQuoteRequestParams { const gasUsage = this.userDataState.fuel === 'Electricity' ? {} : { gasUsage: this.userDataState.gasUsage }; return { ...this.convertBaseQuoteParams(), electricityUsage: this.userDataState.electricityUsage, ...gasUsage } } }