in lambda/src/main/scala/pricemigrationengine/migrations/Newspaper2024Migration/Amendment.scala [46:73]
def zuoraUpdate(
subscription: ZuoraSubscription,
effectiveDate: LocalDate,
): Either[DataExtractionFailure, ZuoraSubscriptionUpdate] = {
for {
data2024 <- Estimation.subscriptionToSubscriptionData2024(subscription).left.map(DataExtractionFailure)
chargeDistribution <- subscriptionToNewChargeDistribution2024(subscription).toRight(
DataExtractionFailure("Could not extract charge distribution")
)
} yield ZuoraSubscriptionUpdate(
add = List(
AddZuoraRatePlan(
productRatePlanId = data2024.targetRatePlanId,
contractEffectiveDate = effectiveDate,
chargeOverrides =
chargeDistributionToChargeOverrides(chargeDistribution, BillingPeriod.toString(data2024.billingPeriod))
)
),
remove = List(
RemoveZuoraRatePlan(
ratePlanId = data2024.ratePlan.id,
effectiveDate
)
),
currentTerm = None,
currentTermPeriodType = None
)
}