in app/com/gu/memsub/subsv2/Plan.scala [149:188]
def apply(
productRatePlanChargeId: ProductRatePlanChargeId,
pricing: PricingSummary,
billingPeriod: Option[ZBillingPeriod],
specificBillingPeriod: Option[Int],
model: String,
name: String,
`type`: String,
endDateCondition: EndDateCondition,
upToPeriods: Option[Int],
upToPeriodsType: Option[UpToPeriodsType],
): ZuoraCharge = ZuoraCharge(
SubscriptionRatePlanChargeId(""),
productRatePlanChargeId,
pricing,
billingPeriod,
specificBillingPeriod,
model,
name,
`type`,
endDateCondition,
upToPeriods,
upToPeriodsType,
)
}
/** Low level model of a product rate plan, as it appears in the Zuora product catalog
*/
case class CatalogZuoraPlan(
id: ProductRatePlanId,
name: String,
description: String,
productId: ProductId,
saving: Option[String],
charges: List[ZuoraCharge],
benefits: Map[ProductRatePlanChargeId, Benefit],
status: Status,
frontendId: Option[FrontendId],
private val productTypeOption: Option[String],
) {