in app/com/gu/memsub/subsv2/Subscription.scala [84:99]
override def compare(x: AnyPlan, y: AnyPlan): Int = {
(x, y) match {
case (_: PaidSubscriptionPlan[_, _], _: FreeSubscriptionPlan[_, _]) => gt
case (_: FreeSubscriptionPlan[_, _], _: PaidSubscriptionPlan[_, _]) => lt
case (friendX: FreeSubscriptionPlan[_, _], friendY: FreeSubscriptionPlan[_, _]) => {
if (friendX.start < friendY.start) lt
else if (friendX.start > friendY.start) gt
else eq
}
case (planX: PaidSubscriptionPlan[_, _], planY: PaidSubscriptionPlan[_, _]) => {
val priceX = planX.charges.price.prices.head.amount
val priceY = planY.charges.price.prices.head.amount
(priceX * 100).toInt - (priceY * 100).toInt
}
}
}