001
002package com.commercetools.api.predicates.query.cart;
003
004import java.util.function.Function;
005
006import com.commercetools.api.predicates.query.*;
007
008public class ShippingDraftQueryBuilderDsl {
009    public ShippingDraftQueryBuilderDsl() {
010    }
011
012    public static ShippingDraftQueryBuilderDsl of() {
013        return new ShippingDraftQueryBuilderDsl();
014    }
015
016    public StringComparisonPredicateBuilder<ShippingDraftQueryBuilderDsl> key() {
017        return new StringComparisonPredicateBuilder<>(BinaryQueryPredicate.of().left(new ConstantQueryPredicate("key")),
018            p -> new CombinationQueryPredicate<>(p, ShippingDraftQueryBuilderDsl::of));
019    }
020
021    public CombinationQueryPredicate<ShippingDraftQueryBuilderDsl> shippingMethod(
022            Function<com.commercetools.api.predicates.query.shipping_method.ShippingMethodReferenceQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.shipping_method.ShippingMethodReferenceQueryBuilderDsl>> fn) {
023        return new CombinationQueryPredicate<>(ContainerQueryPredicate.of()
024                .parent(ConstantQueryPredicate.of().constant("shippingMethod"))
025                .inner(fn.apply(
026                    com.commercetools.api.predicates.query.shipping_method.ShippingMethodReferenceQueryBuilderDsl
027                            .of())),
028            ShippingDraftQueryBuilderDsl::of);
029    }
030
031    public CombinationQueryPredicate<ShippingDraftQueryBuilderDsl> shippingAddress(
032            Function<com.commercetools.api.predicates.query.common.BaseAddressQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.common.BaseAddressQueryBuilderDsl>> fn) {
033        return new CombinationQueryPredicate<>(
034            ContainerQueryPredicate.of()
035                    .parent(ConstantQueryPredicate.of().constant("shippingAddress"))
036                    .inner(fn.apply(com.commercetools.api.predicates.query.common.BaseAddressQueryBuilderDsl.of())),
037            ShippingDraftQueryBuilderDsl::of);
038    }
039
040    public CombinationQueryPredicate<ShippingDraftQueryBuilderDsl> shippingRateInput(
041            Function<com.commercetools.api.predicates.query.cart.ShippingRateInputDraftQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.cart.ShippingRateInputDraftQueryBuilderDsl>> fn) {
042        return new CombinationQueryPredicate<>(
043            ContainerQueryPredicate.of()
044                    .parent(ConstantQueryPredicate.of().constant("shippingRateInput"))
045                    .inner(fn.apply(
046                        com.commercetools.api.predicates.query.cart.ShippingRateInputDraftQueryBuilderDsl.of())),
047            ShippingDraftQueryBuilderDsl::of);
048    }
049
050    public CombinationQueryPredicate<ShippingDraftQueryBuilderDsl> externalTaxRate(
051            Function<com.commercetools.api.predicates.query.cart.ExternalTaxRateDraftQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.cart.ExternalTaxRateDraftQueryBuilderDsl>> fn) {
052        return new CombinationQueryPredicate<>(ContainerQueryPredicate.of()
053                .parent(ConstantQueryPredicate.of().constant("externalTaxRate"))
054                .inner(fn.apply(com.commercetools.api.predicates.query.cart.ExternalTaxRateDraftQueryBuilderDsl.of())),
055            ShippingDraftQueryBuilderDsl::of);
056    }
057
058    public CombinationQueryPredicate<ShippingDraftQueryBuilderDsl> deliveries(
059            Function<com.commercetools.api.predicates.query.order.DeliveryDraftQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.order.DeliveryDraftQueryBuilderDsl>> fn) {
060        return new CombinationQueryPredicate<>(
061            ContainerQueryPredicate.of()
062                    .parent(ConstantQueryPredicate.of().constant("deliveries"))
063                    .inner(fn.apply(com.commercetools.api.predicates.query.order.DeliveryDraftQueryBuilderDsl.of())),
064            ShippingDraftQueryBuilderDsl::of);
065    }
066
067    public CollectionPredicateBuilder<ShippingDraftQueryBuilderDsl> deliveries() {
068        return new CollectionPredicateBuilder<>(
069            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("deliveries")),
070            p -> new CombinationQueryPredicate<>(p, ShippingDraftQueryBuilderDsl::of));
071    }
072
073    public CombinationQueryPredicate<ShippingDraftQueryBuilderDsl> custom(
074            Function<com.commercetools.api.predicates.query.type.CustomFieldsDraftQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.type.CustomFieldsDraftQueryBuilderDsl>> fn) {
075        return new CombinationQueryPredicate<>(
076            ContainerQueryPredicate.of()
077                    .parent(ConstantQueryPredicate.of().constant("custom"))
078                    .inner(fn.apply(com.commercetools.api.predicates.query.type.CustomFieldsDraftQueryBuilderDsl.of())),
079            ShippingDraftQueryBuilderDsl::of);
080    }
081
082}