def updateItemToDoNotProcessUntil()

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 ()
  }