001
002package com.commercetools.api.predicates.query.message;
003
004import java.util.function.Function;
005
006import com.commercetools.api.predicates.query.*;
007
008public class ProductPublishedMessageQueryBuilderDsl {
009    public ProductPublishedMessageQueryBuilderDsl() {
010    }
011
012    public static ProductPublishedMessageQueryBuilderDsl of() {
013        return new ProductPublishedMessageQueryBuilderDsl();
014    }
015
016    public StringComparisonPredicateBuilder<ProductPublishedMessageQueryBuilderDsl> id() {
017        return new StringComparisonPredicateBuilder<>(BinaryQueryPredicate.of().left(new ConstantQueryPredicate("id")),
018            p -> new CombinationQueryPredicate<>(p, ProductPublishedMessageQueryBuilderDsl::of));
019    }
020
021    public LongComparisonPredicateBuilder<ProductPublishedMessageQueryBuilderDsl> version() {
022        return new LongComparisonPredicateBuilder<>(
023            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("version")),
024            p -> new CombinationQueryPredicate<>(p, ProductPublishedMessageQueryBuilderDsl::of));
025    }
026
027    public DateTimeComparisonPredicateBuilder<ProductPublishedMessageQueryBuilderDsl> createdAt() {
028        return new DateTimeComparisonPredicateBuilder<>(
029            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("createdAt")),
030            p -> new CombinationQueryPredicate<>(p, ProductPublishedMessageQueryBuilderDsl::of));
031    }
032
033    public DateTimeComparisonPredicateBuilder<ProductPublishedMessageQueryBuilderDsl> lastModifiedAt() {
034        return new DateTimeComparisonPredicateBuilder<>(
035            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("lastModifiedAt")),
036            p -> new CombinationQueryPredicate<>(p, ProductPublishedMessageQueryBuilderDsl::of));
037    }
038
039    public CombinationQueryPredicate<ProductPublishedMessageQueryBuilderDsl> lastModifiedBy(
040            Function<com.commercetools.api.predicates.query.common.LastModifiedByQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.common.LastModifiedByQueryBuilderDsl>> fn) {
041        return new CombinationQueryPredicate<>(
042            ContainerQueryPredicate.of()
043                    .parent(ConstantQueryPredicate.of().constant("lastModifiedBy"))
044                    .inner(fn.apply(com.commercetools.api.predicates.query.common.LastModifiedByQueryBuilderDsl.of())),
045            ProductPublishedMessageQueryBuilderDsl::of);
046    }
047
048    public CombinationQueryPredicate<ProductPublishedMessageQueryBuilderDsl> createdBy(
049            Function<com.commercetools.api.predicates.query.common.CreatedByQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.common.CreatedByQueryBuilderDsl>> fn) {
050        return new CombinationQueryPredicate<>(
051            ContainerQueryPredicate.of()
052                    .parent(ConstantQueryPredicate.of().constant("createdBy"))
053                    .inner(fn.apply(com.commercetools.api.predicates.query.common.CreatedByQueryBuilderDsl.of())),
054            ProductPublishedMessageQueryBuilderDsl::of);
055    }
056
057    public LongComparisonPredicateBuilder<ProductPublishedMessageQueryBuilderDsl> sequenceNumber() {
058        return new LongComparisonPredicateBuilder<>(
059            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("sequenceNumber")),
060            p -> new CombinationQueryPredicate<>(p, ProductPublishedMessageQueryBuilderDsl::of));
061    }
062
063    public CombinationQueryPredicate<ProductPublishedMessageQueryBuilderDsl> resource(
064            Function<com.commercetools.api.predicates.query.common.ReferenceQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.common.ReferenceQueryBuilderDsl>> fn) {
065        return new CombinationQueryPredicate<>(
066            ContainerQueryPredicate.of()
067                    .parent(ConstantQueryPredicate.of().constant("resource"))
068                    .inner(fn.apply(com.commercetools.api.predicates.query.common.ReferenceQueryBuilderDsl.of())),
069            ProductPublishedMessageQueryBuilderDsl::of);
070    }
071
072    public LongComparisonPredicateBuilder<ProductPublishedMessageQueryBuilderDsl> resourceVersion() {
073        return new LongComparisonPredicateBuilder<>(
074            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("resourceVersion")),
075            p -> new CombinationQueryPredicate<>(p, ProductPublishedMessageQueryBuilderDsl::of));
076    }
077
078    public StringComparisonPredicateBuilder<ProductPublishedMessageQueryBuilderDsl> type() {
079        return new StringComparisonPredicateBuilder<>(
080            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("type")),
081            p -> new CombinationQueryPredicate<>(p, ProductPublishedMessageQueryBuilderDsl::of));
082    }
083
084    public CombinationQueryPredicate<ProductPublishedMessageQueryBuilderDsl> resourceUserProvidedIdentifiers(
085            Function<com.commercetools.api.predicates.query.message.UserProvidedIdentifiersQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.message.UserProvidedIdentifiersQueryBuilderDsl>> fn) {
086        return new CombinationQueryPredicate<>(
087            ContainerQueryPredicate.of()
088                    .parent(ConstantQueryPredicate.of().constant("resourceUserProvidedIdentifiers"))
089                    .inner(fn.apply(
090                        com.commercetools.api.predicates.query.message.UserProvidedIdentifiersQueryBuilderDsl.of())),
091            ProductPublishedMessageQueryBuilderDsl::of);
092    }
093
094    public StringCollectionPredicateBuilder<ProductPublishedMessageQueryBuilderDsl> removedImageUrls() {
095        return new StringCollectionPredicateBuilder<>(
096            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("removedImageUrls")),
097            p -> new CombinationQueryPredicate<>(p, ProductPublishedMessageQueryBuilderDsl::of));
098    }
099
100    public CombinationQueryPredicate<ProductPublishedMessageQueryBuilderDsl> productProjection(
101            Function<com.commercetools.api.predicates.query.product.ProductProjectionQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.product.ProductProjectionQueryBuilderDsl>> fn) {
102        return new CombinationQueryPredicate<>(ContainerQueryPredicate.of()
103                .parent(ConstantQueryPredicate.of().constant("productProjection"))
104                .inner(fn.apply(com.commercetools.api.predicates.query.product.ProductProjectionQueryBuilderDsl.of())),
105            ProductPublishedMessageQueryBuilderDsl::of);
106    }
107
108    public StringComparisonPredicateBuilder<ProductPublishedMessageQueryBuilderDsl> scope() {
109        return new StringComparisonPredicateBuilder<>(
110            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("scope")),
111            p -> new CombinationQueryPredicate<>(p, ProductPublishedMessageQueryBuilderDsl::of));
112    }
113
114}