in support-workers/src/main/scala/com/gu/support/workers/lambdas/CreateSalesforceContact.scala [51:70]
def build(
salesforceContactRecords: SalesforceContactRecords,
): CreateZuoraSubscriptionState =
(product, paymentMethod) match {
case (product: Contribution, purchase) =>
toNextContribution(salesforceContactRecords, product, purchase)
case (product: SupporterPlus, purchase) =>
toNextSupporterPlus(salesforceContactRecords, product, purchase)
case (product: TierThree, purchase) =>
toNextTierThree(salesforceContactRecords, product, purchase)
case (product: GuardianAdLite, purchase) =>
toNextGuardianAdLite(salesforceContactRecords, product, purchase)
case (product: DigitalPack, purchase) if product.readerType == ReaderType.Direct =>
toNextDSDirect(salesforceContactRecords.buyer, product, purchase)
case (product: Paper, purchase) =>
toNextPaper(salesforceContactRecords.buyer, product, purchase)
case (product: GuardianWeekly, purchase) =>
toNextWeekly(salesforceContactRecords, product, purchase)
case _ => throw new RuntimeException("could not create value state")
}