case class Customer(customerId: String, email: String, paymentOption: List[PaymentOption]) case class InternetBanking(bankName: String, userId: String, bankWebSite: URI) extends PaymentOption case class CreditCard(cardType: String, issuer: String, cardNo: Long) extends PaymentOption case class DebitCard(cardType: String, issuer: String, cardNo: Long) extends PaymentOption case class Payla(id: String) extends PaymentOption