Skip to content

Instantly share code, notes, and snippets.

@manishkkatoch
Last active February 13, 2019 15:10
Show Gist options
  • Save manishkkatoch/be8ce452d7ec015ec51dcf5fab451d43 to your computer and use it in GitHub Desktop.
Save manishkkatoch/be8ce452d7ec015ec51dcf5fab451d43 to your computer and use it in GitHub Desktop.
// simple Member class
case class Member(id: String, name: String, points: Long)
// member types
trait MemberType {val member: Member}
case class FirstTimer(member: Member) extends MemberType
case class FrequentShopper(member: Member) extends MemberType
case class Patron(member: Member) extends MemberType
// membership card
abstract class MembershipCard(member: Member, levelName: String)
case class Silver(member: Member) extends MembershipCard(member,"silver")
case class Gold(member: Member) extends MembershipCard(member,"gold")
case class Platinum(member: Member) extends MembershipCard(member,"platinum")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment