diff --git a/internal/logic/public/order/getDiscount.go b/internal/logic/public/order/getDiscount.go index 565c14b..87dc722 100644 --- a/internal/logic/public/order/getDiscount.go +++ b/internal/logic/public/order/getDiscount.go @@ -4,25 +4,21 @@ import "github.com/perfect-panel/server/internal/types" // getDiscount returns the discount factor for the given quantity. // -// - New user: pick the tier with the lowest discount value (best deal) among all matching tiers. -// - Non-new user: pick the tier with the highest discount value (most expensive / least discount) -// among tiers where new_user_only=false only. +// - New user: pick the tier with the lowest discount value (biggest saving). +// - Non-new user: pick the tier with the highest discount value (least saving / closest to full price). func getDiscount(discounts []types.SubscribeDiscount, inputMonths int64, isNewUser bool) float64 { best := float64(-1) for _, d := range discounts { if d.Quantity != inputMonths || d.Discount <= 0 || d.Discount >= 100 { continue } - if !isNewUser && d.NewUserOnly { - continue - } if isNewUser { // lowest discount value = biggest saving if best < 0 || d.Discount < best { best = d.Discount } } else { - // highest discount value = least discount (closest to original price) + // highest discount value = least saving (closest to original price) if best < 0 || d.Discount > best { best = d.Discount }