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