in handlers/product-move-api/src/main/scala/com/gu/productmove/SQS.scala [185:248]
private def impl(creds: AwsCredentialsProvider): Try[SqsClient] =
Try(
SqsClient.builder
.region(Region.EU_WEST_1)
.credentialsProvider(creds)
.build(),
)
}
sealed trait EmailPayloadAttributes
case class toRCEmailPayloadProductSwitchAttributes(
first_name: String,
last_name: String,
start_date: String,
price: String,
payment_frequency: String,
currency: String,
subscription_id: String,
) extends EmailPayloadAttributes
derives JsonEncoder
case class RCtoSPEmailPayloadProductSwitchAttributes(
first_name: String,
last_name: String,
first_payment_amount: String,
date_of_first_payment: String,
price: String,
payment_frequency: String,
currency: String,
subscription_id: String,
) extends EmailPayloadAttributes
derives JsonEncoder
case class EmailPayloadCancellationAttributes(
first_name: String,
last_name: String,
product_type: String,
cancellation_effective_date: Option[String],
) extends EmailPayloadAttributes
derives JsonEncoder
case class EmailPayloadUpdateAmountAttributes(
first_name: String,
last_name: String,
new_amount: String,
currency: String,
frequency: String,
next_payment_date: String,
) extends EmailPayloadAttributes
derives JsonEncoder
case class EmailPayloadContactAttributes(SubscriberAttributes: EmailPayloadAttributes) derives JsonEncoder
case class EmailPayload(Address: Option[String], ContactAttributes: EmailPayloadContactAttributes) derives JsonEncoder
case class EmailMessage(
To: EmailPayload,
DataExtensionName: String,
SfContactId: String,
IdentityUserId: Option[IdentityId],
) derives JsonEncoder
object EmailMessage {