def fromRatePlanGuardianWeekly()

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(