in lambda/src/main/scala/pricemigrationengine/model/ZuoraSubscriptionUpdate.scala [106:130]
def fromRatePlanGuardianWeekly(
account: ZuoraAccount,
catalogue: ZuoraProductCatalogue,
contractEffectiveDate: LocalDate,
enforcedPrice: Option[BigDecimal]
)(
ratePlan: ZuoraRatePlan
): Either[DataExtractionFailure, AddZuoraRatePlan] =
for {
guardianWeekly <- GuardianWeeklyMigration.getNewRatePlanCharges(
account,
catalogue,
ratePlan.ratePlanCharges
)
chargeOverrides <- guardianWeekly.chargePairs
.map(chargePair =>
fromRatePlanCharge(
chargePair.chargeFromProduct,
chargePair.chargeFromSubscription,
enforcedPrice
)
)
.sequence
.map(_.flatten)
} yield AddZuoraRatePlan(