001
002package com.commercetools.api.predicates.query.standalone_price;
003
004import java.util.function.Function;
005
006import com.commercetools.api.predicates.query.*;
007
008public class StandalonePriceDraftQueryBuilderDsl {
009    public StandalonePriceDraftQueryBuilderDsl() {
010    }
011
012    public static StandalonePriceDraftQueryBuilderDsl of() {
013        return new StandalonePriceDraftQueryBuilderDsl();
014    }
015
016    public StringComparisonPredicateBuilder<StandalonePriceDraftQueryBuilderDsl> key() {
017        return new StringComparisonPredicateBuilder<>(BinaryQueryPredicate.of().left(new ConstantQueryPredicate("key")),
018            p -> new CombinationQueryPredicate<>(p, StandalonePriceDraftQueryBuilderDsl::of));
019    }
020
021    public StringComparisonPredicateBuilder<StandalonePriceDraftQueryBuilderDsl> sku() {
022        return new StringComparisonPredicateBuilder<>(BinaryQueryPredicate.of().left(new ConstantQueryPredicate("sku")),
023            p -> new CombinationQueryPredicate<>(p, StandalonePriceDraftQueryBuilderDsl::of));
024    }
025
026    public CombinationQueryPredicate<StandalonePriceDraftQueryBuilderDsl> value(
027            Function<com.commercetools.api.predicates.query.common.MoneyQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.common.MoneyQueryBuilderDsl>> fn) {
028        return new CombinationQueryPredicate<>(
029            ContainerQueryPredicate.of()
030                    .parent(ConstantQueryPredicate.of().constant("value"))
031                    .inner(fn.apply(com.commercetools.api.predicates.query.common.MoneyQueryBuilderDsl.of())),
032            StandalonePriceDraftQueryBuilderDsl::of);
033    }
034
035    public StringComparisonPredicateBuilder<StandalonePriceDraftQueryBuilderDsl> country() {
036        return new StringComparisonPredicateBuilder<>(
037            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("country")),
038            p -> new CombinationQueryPredicate<>(p, StandalonePriceDraftQueryBuilderDsl::of));
039    }
040
041    public CombinationQueryPredicate<StandalonePriceDraftQueryBuilderDsl> customerGroup(
042            Function<com.commercetools.api.predicates.query.customer_group.CustomerGroupResourceIdentifierQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.customer_group.CustomerGroupResourceIdentifierQueryBuilderDsl>> fn) {
043        return new CombinationQueryPredicate<>(ContainerQueryPredicate.of()
044                .parent(ConstantQueryPredicate.of().constant("customerGroup"))
045                .inner(fn.apply(
046                    com.commercetools.api.predicates.query.customer_group.CustomerGroupResourceIdentifierQueryBuilderDsl
047                            .of())),
048            StandalonePriceDraftQueryBuilderDsl::of);
049    }
050
051    public CombinationQueryPredicate<StandalonePriceDraftQueryBuilderDsl> channel(
052            Function<com.commercetools.api.predicates.query.channel.ChannelResourceIdentifierQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.channel.ChannelResourceIdentifierQueryBuilderDsl>> fn) {
053        return new CombinationQueryPredicate<>(
054            ContainerQueryPredicate.of()
055                    .parent(ConstantQueryPredicate.of().constant("channel"))
056                    .inner(fn.apply(
057                        com.commercetools.api.predicates.query.channel.ChannelResourceIdentifierQueryBuilderDsl.of())),
058            StandalonePriceDraftQueryBuilderDsl::of);
059    }
060
061    public DateTimeComparisonPredicateBuilder<StandalonePriceDraftQueryBuilderDsl> validFrom() {
062        return new DateTimeComparisonPredicateBuilder<>(
063            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("validFrom")),
064            p -> new CombinationQueryPredicate<>(p, StandalonePriceDraftQueryBuilderDsl::of));
065    }
066
067    public DateTimeComparisonPredicateBuilder<StandalonePriceDraftQueryBuilderDsl> validUntil() {
068        return new DateTimeComparisonPredicateBuilder<>(
069            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("validUntil")),
070            p -> new CombinationQueryPredicate<>(p, StandalonePriceDraftQueryBuilderDsl::of));
071    }
072
073    public CombinationQueryPredicate<StandalonePriceDraftQueryBuilderDsl> tiers(
074            Function<com.commercetools.api.predicates.query.common.PriceTierDraftQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.common.PriceTierDraftQueryBuilderDsl>> fn) {
075        return new CombinationQueryPredicate<>(
076            ContainerQueryPredicate.of()
077                    .parent(ConstantQueryPredicate.of().constant("tiers"))
078                    .inner(fn.apply(com.commercetools.api.predicates.query.common.PriceTierDraftQueryBuilderDsl.of())),
079            StandalonePriceDraftQueryBuilderDsl::of);
080    }
081
082    public CollectionPredicateBuilder<StandalonePriceDraftQueryBuilderDsl> tiers() {
083        return new CollectionPredicateBuilder<>(BinaryQueryPredicate.of().left(new ConstantQueryPredicate("tiers")),
084            p -> new CombinationQueryPredicate<>(p, StandalonePriceDraftQueryBuilderDsl::of));
085    }
086
087    public CombinationQueryPredicate<StandalonePriceDraftQueryBuilderDsl> discounted(
088            Function<com.commercetools.api.predicates.query.common.DiscountedPriceDraftQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.common.DiscountedPriceDraftQueryBuilderDsl>> fn) {
089        return new CombinationQueryPredicate<>(
090            ContainerQueryPredicate.of()
091                    .parent(ConstantQueryPredicate.of().constant("discounted"))
092                    .inner(fn.apply(
093                        com.commercetools.api.predicates.query.common.DiscountedPriceDraftQueryBuilderDsl.of())),
094            StandalonePriceDraftQueryBuilderDsl::of);
095    }
096
097    public CombinationQueryPredicate<StandalonePriceDraftQueryBuilderDsl> custom(
098            Function<com.commercetools.api.predicates.query.type.CustomFieldsDraftQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.type.CustomFieldsDraftQueryBuilderDsl>> fn) {
099        return new CombinationQueryPredicate<>(
100            ContainerQueryPredicate.of()
101                    .parent(ConstantQueryPredicate.of().constant("custom"))
102                    .inner(fn.apply(com.commercetools.api.predicates.query.type.CustomFieldsDraftQueryBuilderDsl.of())),
103            StandalonePriceDraftQueryBuilderDsl::of);
104    }
105
106    public BooleanComparisonPredicateBuilder<StandalonePriceDraftQueryBuilderDsl> active() {
107        return new BooleanComparisonPredicateBuilder<>(
108            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("active")),
109            p -> new CombinationQueryPredicate<>(p, StandalonePriceDraftQueryBuilderDsl::of));
110    }
111
112}