in lambda/src/main/scala/pricemigrationengine/handlers/NotificationHandler.scala [73:94]
def updateItemToDoNotProcessUntil(
item: CohortItem,
subscription: ZuoraSubscription
): ZIO[CohortTable with Zuora, Failure, Unit] = {
for {
cancellationDate <- ZIO
.fromOption(SupporterPlus2024Migration.cancellationSaveDiscountEffectiveDate(subscription))
.orElseFail(DataExtractionFailure(s"Could not extract cancellation date for item ${item}"))
billingPeriod <- ZIO
.fromOption(item.billingPeriod)
.orElseFail(DataExtractionFailure(s"Could not extract billing period for item ${item}"))
months <- ZIO.succeed(CohortItem.billingPeriodToInt(billingPeriod))
_ <- CohortTable
.update(
CohortItem(
subscriptionName = item.subscriptionName,
processingStage = DoNotProcessUntil,
doNotProcessUntil = Some(cancellationDate.plusMonths(List(months * 2, 6).max))
)
)
} yield ()
}