001
002package com.commercetools.api.predicates.query.message;
003
004import java.util.function.Function;
005
006import com.commercetools.api.predicates.query.*;
007
008public class OrderCustomLineItemDiscountSetMessagePayloadQueryBuilderDsl {
009    public OrderCustomLineItemDiscountSetMessagePayloadQueryBuilderDsl() {
010    }
011
012    public static OrderCustomLineItemDiscountSetMessagePayloadQueryBuilderDsl of() {
013        return new OrderCustomLineItemDiscountSetMessagePayloadQueryBuilderDsl();
014    }
015
016    public StringComparisonPredicateBuilder<OrderCustomLineItemDiscountSetMessagePayloadQueryBuilderDsl> type() {
017        return new StringComparisonPredicateBuilder<>(
018            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("type")),
019            p -> new CombinationQueryPredicate<>(p, OrderCustomLineItemDiscountSetMessagePayloadQueryBuilderDsl::of));
020    }
021
022    public StringComparisonPredicateBuilder<OrderCustomLineItemDiscountSetMessagePayloadQueryBuilderDsl> customLineItemId() {
023        return new StringComparisonPredicateBuilder<>(
024            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("customLineItemId")),
025            p -> new CombinationQueryPredicate<>(p, OrderCustomLineItemDiscountSetMessagePayloadQueryBuilderDsl::of));
026    }
027
028    public StringComparisonPredicateBuilder<OrderCustomLineItemDiscountSetMessagePayloadQueryBuilderDsl> customLineItemKey() {
029        return new StringComparisonPredicateBuilder<>(
030            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("customLineItemKey")),
031            p -> new CombinationQueryPredicate<>(p, OrderCustomLineItemDiscountSetMessagePayloadQueryBuilderDsl::of));
032    }
033
034    public CombinationQueryPredicate<OrderCustomLineItemDiscountSetMessagePayloadQueryBuilderDsl> discountedPricePerQuantity(
035            Function<com.commercetools.api.predicates.query.cart.DiscountedLineItemPriceForQuantityQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.cart.DiscountedLineItemPriceForQuantityQueryBuilderDsl>> fn) {
036        return new CombinationQueryPredicate<>(ContainerQueryPredicate.of()
037                .parent(ConstantQueryPredicate.of().constant("discountedPricePerQuantity"))
038                .inner(fn.apply(
039                    com.commercetools.api.predicates.query.cart.DiscountedLineItemPriceForQuantityQueryBuilderDsl
040                            .of())),
041            OrderCustomLineItemDiscountSetMessagePayloadQueryBuilderDsl::of);
042    }
043
044    public CollectionPredicateBuilder<OrderCustomLineItemDiscountSetMessagePayloadQueryBuilderDsl> discountedPricePerQuantity() {
045        return new CollectionPredicateBuilder<>(
046            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("discountedPricePerQuantity")),
047            p -> new CombinationQueryPredicate<>(p, OrderCustomLineItemDiscountSetMessagePayloadQueryBuilderDsl::of));
048    }
049
050    public CombinationQueryPredicate<OrderCustomLineItemDiscountSetMessagePayloadQueryBuilderDsl> taxedPrice(
051            Function<com.commercetools.api.predicates.query.cart.TaxedItemPriceQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.cart.TaxedItemPriceQueryBuilderDsl>> fn) {
052        return new CombinationQueryPredicate<>(
053            ContainerQueryPredicate.of()
054                    .parent(ConstantQueryPredicate.of().constant("taxedPrice"))
055                    .inner(fn.apply(com.commercetools.api.predicates.query.cart.TaxedItemPriceQueryBuilderDsl.of())),
056            OrderCustomLineItemDiscountSetMessagePayloadQueryBuilderDsl::of);
057    }
058
059}