in lambda/src/main/scala/pricemigrationengine/model/EstimationResult.scala [25:44]
def apply(
account: ZuoraAccount,
catalogue: ZuoraProductCatalogue,
subscription: ZuoraSubscription,
invoiceList: ZuoraInvoiceList,
startDateLowerBound: LocalDate,
cohortSpec: CohortSpec,
): Either[Failure, EstimationData] = {
for {
startDate <- AmendmentData.nextServiceStartDate(invoiceList, subscription, startDateLowerBound)
priceData <- AmendmentData.priceData(account, catalogue, subscription, invoiceList, startDate, cohortSpec)
} yield EstimationData(
subscription.subscriptionNumber,
startDate,
priceData.currency,
priceData.oldPrice,
priceData.newPrice,
priceData.billingPeriod
)
}