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