import { Quote, QuoteWithMeters, Tariff, TIL, QuickQuoteRequestParams, EstimatedQuoteRequestParams, UsageBasedQuoteRequestParams, MoveInQuoteRequestParams, SaveQuoteRequest } from './Quote'; import { meters } from './Address.fixture'; import { LocalDate } from 'js-joda'; function til(name: string, annualSpend: number): TIL { return { name, supplierName: 'OVO Energy', paymentMethod: 'Pay Monthly', unitRate: 1.23, standingCharge: 4.56, tariffEndDate: LocalDate.now().plusYears(1), exitFees: 0, discount: 30, annualUsage: 6789, annualSpend, comparisonRate: 5.67 } } function tariff(name: string, tagline: string, description: string, expectedAnnualSpend: number, contractLength: number): Tariff { return { name, description, tagline, renewableFuelPercentage: 33, exitFees: 0, discount: 60, contractLength, expectedAnnualSpend, expectedAnnualSavings: 200, tils: { 'Electricity': til(name, expectedAnnualSpend / 2) } } } export const quote: Quote = { quoteType: 'Quick', postcode: 'AB1 2CD', retailer: 'OVO', fuel: 'Electricity', paymentMethod: 'Paym', economy7: false, dateCreated: LocalDate.of(2016, 3, 22), region: 'London', serviceType: 'FullService', currentSupply: {}, boltons: [{ name: 'Green', displayName: 'Green Energy', cost: 5.0, description: "100% green electricity from renewable sources" }, { name: 'Chargemaster', displayName: 'POLAR plus Membership', cost: 25.0, description: "Access to 5,000 charging points nationwide" }], bundles: [{ name: "EV", displayName: "EV Everywhere", description: "EV Everywhere takes you a lot further", tariff: "2YearFixed", expectedAnnualSpend: 1096.95, benefits: { "term": "2 year fixed unit rates", "interest": "3% interest reward on your credit balance", "exitFees": "£30 exit fee per fuel if you leave before your plan ends", "onlineDiscount": "A £60 yearly discount for submitting your meter readings online" }, boltons: [ { name: "Green", discountPercentage: 100 }, { name: "Chargemaster", discountPercentage: 100 } ] }], tariffs: { 'Fixed': tariff('Better Energy', 'Start saving', 'Big savings and get fixed rates for a year', 800, 12), '2YearFixed': tariff('2 Year Fixed', 'Fix now', 'Zero price increases for at least 2 years', 900, 24), 'Variable': tariff('Simpler Energy', 'Stay flexible', 'Our most flexible plan with no contract and no exit fees', 1000, 0) } }; export const quickQuoteRequestParams: QuickQuoteRequestParams = { retailer: 'OVO', postcode: 'postcode', economy7: false, fuel: 'Electricity', paymentMethod: 'Paym', usage: 'Medium' }; export const estimatedQuoteRequestParams: EstimatedQuoteRequestParams = { retailer: 'OVO', postcode: 'postcode', economy7: false, fuel: 'Electricity', paymentMethod: 'Paym', energyUsage: 'EveningsAndWeekends', insulation: 'Good', numberOfOccupants: 2, numberOfRooms: 3 }; export const usageBasedQuoteRequestParams: UsageBasedQuoteRequestParams = { retailer: 'OVO', postcode: 'postcode', economy7: false, fuel: 'Electricity', paymentMethod: 'Paym', electricityPeriod: 'Monthly', electricitySupplierId: '23', electricityTariffId: '48', electricityUnit: 'KWh', electricityUsage: 1239 }; export const moveInQuoteRequestParams: MoveInQuoteRequestParams = { retailer: 'OVO', postcode: 'postcode', economy7: false, fuel: 'Electricity', paymentMethod: 'Paym', electricityUsage: 798 }; export const saveQuoteRequest: SaveQuoteRequest = { email: 'email.address@ovoenergy.com', tariffId: 'Fixed', quote }; export const paygQuote: Quote = {...quote, paymentMethod: 'Payg', tariffs: { 'Variable': tariff('Pay As You Go', 'Switch to smart', 'Top up anywhere with no exit fees and no contract', 705.83466, 0), }, bundles: []}; export const quoteWithMeters: QuoteWithMeters = {...quote, meters: [] }; export const paygQuoteWithMeters: QuoteWithMeters = {...paygQuote, meters: [] };