001
002package com.commercetools.api.predicates.query.order;
003
004import java.util.function.Function;
005
006import com.commercetools.api.predicates.query.*;
007
008public class ReturnItemQueryBuilderDsl {
009    public ReturnItemQueryBuilderDsl() {
010    }
011
012    public static ReturnItemQueryBuilderDsl of() {
013        return new ReturnItemQueryBuilderDsl();
014    }
015
016    public StringComparisonPredicateBuilder<ReturnItemQueryBuilderDsl> id() {
017        return new StringComparisonPredicateBuilder<>(BinaryQueryPredicate.of().left(new ConstantQueryPredicate("id")),
018            p -> new CombinationQueryPredicate<>(p, ReturnItemQueryBuilderDsl::of));
019    }
020
021    public LongComparisonPredicateBuilder<ReturnItemQueryBuilderDsl> quantity() {
022        return new LongComparisonPredicateBuilder<>(
023            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("quantity")),
024            p -> new CombinationQueryPredicate<>(p, ReturnItemQueryBuilderDsl::of));
025    }
026
027    public StringComparisonPredicateBuilder<ReturnItemQueryBuilderDsl> type() {
028        return new StringComparisonPredicateBuilder<>(
029            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("type")),
030            p -> new CombinationQueryPredicate<>(p, ReturnItemQueryBuilderDsl::of));
031    }
032
033    public StringComparisonPredicateBuilder<ReturnItemQueryBuilderDsl> comment() {
034        return new StringComparisonPredicateBuilder<>(
035            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("comment")),
036            p -> new CombinationQueryPredicate<>(p, ReturnItemQueryBuilderDsl::of));
037    }
038
039    public StringComparisonPredicateBuilder<ReturnItemQueryBuilderDsl> shipmentState() {
040        return new StringComparisonPredicateBuilder<>(
041            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("shipmentState")),
042            p -> new CombinationQueryPredicate<>(p, ReturnItemQueryBuilderDsl::of));
043    }
044
045    public StringComparisonPredicateBuilder<ReturnItemQueryBuilderDsl> paymentState() {
046        return new StringComparisonPredicateBuilder<>(
047            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("paymentState")),
048            p -> new CombinationQueryPredicate<>(p, ReturnItemQueryBuilderDsl::of));
049    }
050
051    public CombinationQueryPredicate<ReturnItemQueryBuilderDsl> custom(
052            Function<com.commercetools.api.predicates.query.type.CustomFieldsQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.type.CustomFieldsQueryBuilderDsl>> fn) {
053        return new CombinationQueryPredicate<>(
054            ContainerQueryPredicate.of()
055                    .parent(ConstantQueryPredicate.of().constant("custom"))
056                    .inner(fn.apply(com.commercetools.api.predicates.query.type.CustomFieldsQueryBuilderDsl.of())),
057            ReturnItemQueryBuilderDsl::of);
058    }
059
060    public DateTimeComparisonPredicateBuilder<ReturnItemQueryBuilderDsl> lastModifiedAt() {
061        return new DateTimeComparisonPredicateBuilder<>(
062            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("lastModifiedAt")),
063            p -> new CombinationQueryPredicate<>(p, ReturnItemQueryBuilderDsl::of));
064    }
065
066    public DateTimeComparisonPredicateBuilder<ReturnItemQueryBuilderDsl> createdAt() {
067        return new DateTimeComparisonPredicateBuilder<>(
068            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("createdAt")),
069            p -> new CombinationQueryPredicate<>(p, ReturnItemQueryBuilderDsl::of));
070    }
071
072    public CombinationQueryPredicate<ReturnItemQueryBuilderDsl> asCustomLineItemReturnItem(
073            Function<com.commercetools.api.predicates.query.order.CustomLineItemReturnItemQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.order.CustomLineItemReturnItemQueryBuilderDsl>> fn) {
074        return new CombinationQueryPredicate<>(
075            fn.apply(com.commercetools.api.predicates.query.order.CustomLineItemReturnItemQueryBuilderDsl.of()),
076            ReturnItemQueryBuilderDsl::of);
077    }
078
079    public CombinationQueryPredicate<ReturnItemQueryBuilderDsl> asLineItemReturnItem(
080            Function<com.commercetools.api.predicates.query.order.LineItemReturnItemQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.order.LineItemReturnItemQueryBuilderDsl>> fn) {
081        return new CombinationQueryPredicate<>(
082            fn.apply(com.commercetools.api.predicates.query.order.LineItemReturnItemQueryBuilderDsl.of()),
083            ReturnItemQueryBuilderDsl::of);
084    }
085}