package net.buycraft.plugin.data; import lombok.Value; import java.math.BigDecimal; import java.util.Objects; @Value public class Package implements Comparable<Package> { private final int id; private final int order; private final String name; private final BigDecimal price; private final Sale sale; @Override public int compareTo(Package o) { Objects.requireNonNull(o, "package"); return Integer.compare(order, o.getOrder()); } public BigDecimal getEffectivePrice() { BigDecimal rounded = price.setScale(2, BigDecimal.ROUND_HALF_UP); if (sale == null) { return rounded; } return rounded.subtract(sale.getDiscount().setScale(2, BigDecimal.ROUND_HALF_UP)); } @Value public static class Sale { private final boolean active; private final BigDecimal discount; } }