import java.util.List;
import java.util.function.Predicate;

public class ValidasiPesanan {

    record Pesanan(String id, int jumlah, double total) {}

    static void periksa(Pesanan p, List<Predicate<Pesanan>> aturan) {
        for (Predicate<Pesanan> aturanSatu : aturan) {
            if (!aturanSatu.test(p)) {
                System.out.println(p.id() + " DITOLAK");
                return;
            }
        }
        System.out.println(p.id() + " LOLOS");
    }

    public static void main(String[] args) {
        Predicate<Pesanan> jumlahWajar = p -> p.jumlah() > 0 && p.jumlah() <= 100;
        Predicate<Pesanan> totalWajar = p -> p.total() >= 0;

        List<Pesanan> pesanan = List.of(
                new Pesanan("A-1", 3, 75000),
                new Pesanan("A-2", 0, 5000),
                new Pesanan("A-3", 250, 120000));

        for (Pesanan p : pesanan) {
            periksa(p, List.of(jumlahWajar, totalWajar));
        }
    }
}
