override def compare()

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
        }
      }
    }