From eb0e33ee39ec7d6d2a1646036e3a3340ac8965dd Mon Sep 17 00:00:00 2001 From: Martin Zanoni Date: Mon, 20 Oct 2025 09:21:36 +0200 Subject: [PATCH] feat: Update to API version 1.249.0 --- Generator/Generator.csproj | 2 +- .../java/com/relewise/client/Recommender.java | 8 + .../java/com/relewise/client/Tracker.java | 24 +++ .../AbandonedCartTriggerConfiguration.java | 10 ++ ...onfigurationPropertySelectionSettings.java | 42 +++++ .../com/relewise/client/model/Advertiser.java | 2 +- ...sRequestEntityFiltersEntitiesRequest.java} | 10 +- ...tiserMetadataValuesRetailMediaEntity.java} | 8 +- ...ValuesRetailMediaEntityEntityFilters.java} | 6 +- ...DAdvertiserEntityStateEntityResponse.java} | 12 +- ...=> AdvertiserUUIDSaveEntitiesRequest.java} | 6 +- ...> AdvertiserUUIDSaveEntitiesResponse.java} | 6 +- .../client/model/AdvertisersRequest.java | 2 +- .../AdvertisersRequestEntityFilters.java | 2 +- .../client/model/AdvertisersResponse.java | 2 +- .../com/relewise/client/model/Campaign.java | 2 +- .../client/model/CampaignAnalytics.java | 17 +- .../CampaignAnalyticsDisplayAdAnalytics.java | 99 +++++++++++ ...lyticsDisplayAdAnalyticsPeriodMetrics.java | 64 +++++++ ...ayAdAnalyticsPromotedDisplayAdMetrics.java | 75 ++++++++ .../CampaignAnalyticsProductAnalytics.java | 8 +- .../model/CampaignAnalyticsRequest.java | 29 +++- .../model/CampaignCampaignConditions.java | 6 +- ...sRequestEntityFiltersEntitiesRequest.java} | 10 +- ...paignMetadataValuesRetailMediaEntity.java} | 8 +- ...ValuesRetailMediaEntityEntityFilters.java} | 6 +- ...UIDCampaignEntityStateEntityResponse.java} | 12 +- ...a => CampaignUUIDSaveEntitiesRequest.java} | 6 +- ... => CampaignUUIDSaveEntitiesResponse.java} | 6 +- .../client/model/CampaignsRequest.java | 2 +- .../model/CampaignsRequestEntityFilters.java | 2 +- .../client/model/CampaignsResponse.java | 2 +- .../relewise/client/model/CartDetails.java | 6 + ...CartDetailsSelectedPropertiesSettings.java | 78 +++++++++ .../client/model/ClickedByUserInfo.java | 53 ++++++ .../relewise/client/model/CompanyScope.java | 36 ++++ .../client/model/ContentEngagement.java | 82 +++++++++ .../client/model/ContentEngagementData.java | 60 +++++++ .../ContentEngagementDataSentimentKind.java | 35 ++++ .../client/model/ContentEngagementFilter.java | 102 +++++++++++ .../ContentEngagementRelevanceModifier.java | 127 ++++++++++++++ .../relewise/client/model/ContentResult.java | 13 ++ .../client/model/ContentResultDetails.java | 13 ++ .../com/relewise/client/model/DisplayAd.java | 122 +++++++++++++ .../relewise/client/model/DisplayAdClick.java | 70 ++++++++ .../client/model/DisplayAdDataFilter.java | 157 +++++++++++++++++ .../client/model/DisplayAdEntityState.java | 35 ++++ ...dsRequestEntityFiltersEntitiesRequest.java | 68 ++++++++ ...playAdMetadataValuesRetailMediaEntity.java | 57 +++++++ ...aValuesRetailMediaEntityEntityFilters.java | 48 ++++++ .../client/model/DisplayAdIdFilter.java | 74 ++++++++ .../client/model/DisplayAdMetadataValues.java | 58 +++++++ .../client/model/DisplayAdPromotion.java | 92 ++++++++++ ...DisplayAdPromotionPromotionConditions.java | 54 ++++++ .../DisplayAdPromotionSpecification.java | 81 +++++++++ .../client/model/DisplayAdResult.java | 81 +++++++++ ...ingDisplayAdEntityStateEntityResponse.java | 73 ++++++++ .../DisplayAdStringSaveEntitiesRequest.java | 48 ++++++ .../DisplayAdStringSaveEntitiesResponse.java | 44 +++++ .../client/model/DisplayAdTemplate.java | 93 ++++++++++ .../model/DisplayAdTemplateEntityState.java | 35 ++++ ...esRequestEntityFiltersEntitiesRequest.java | 68 ++++++++ ...mplateMetadataValuesRetailMediaEntity.java | 57 +++++++ ...aValuesRetailMediaEntityEntityFilters.java | 48 ++++++ .../DisplayAdTemplateFieldDefinition.java | 82 +++++++++ .../model/DisplayAdTemplateIdFilter.java | 74 ++++++++ .../DisplayAdTemplateMetadataValues.java | 58 +++++++ ...ayAdTemplateEntityStateEntityResponse.java | 73 ++++++++ ...playAdTemplateUUIDSaveEntitiesRequest.java | 48 ++++++ ...layAdTemplateUUIDSaveEntitiesResponse.java | 44 +++++ .../model/DisplayAdTemplatesRequest.java | 65 +++++++ ...isplayAdTemplatesRequestEntityFilters.java | 118 +++++++++++++ .../DisplayAdTemplatesRequestSortBy.java | 35 ++++ ...isplayAdTemplatesRequestSortBySorting.java | 53 ++++++ .../model/DisplayAdTemplatesResponse.java | 87 ++++++++++ .../client/model/DisplayAdsRequest.java | 65 +++++++ .../model/DisplayAdsRequestEntityFilters.java | 142 +++++++++++++++ .../client/model/DisplayAdsRequestSortBy.java | 35 ++++ .../model/DisplayAdsRequestSortBySorting.java | 53 ++++++ .../client/model/DisplayAdsResponse.java | 87 ++++++++++ .../java/com/relewise/client/model/Feed.java | 161 ++++++++++++++++++ .../client/model/FeedComposition.java | 148 ++++++++++++++++ .../model/FeedCompositionEntityType.java | 31 ++++ .../client/model/FeedCompositionResult.java | 103 +++++++++++ .../com/relewise/client/model/FeedDwell.java | 123 +++++++++++++ .../com/relewise/client/model/FeedItem.java | 67 ++++++++ .../relewise/client/model/FeedItemClick.java | 92 ++++++++++ .../client/model/FeedItemPreview.java | 92 ++++++++++ ...edRecommendationInitializationRequest.java | 115 +++++++++++++ .../FeedRecommendationNextItemsRequest.java | 60 +++++++ .../model/FeedRecommendationResponse.java | 97 +++++++++++ .../com/relewise/client/model/FeedSeed.java | 75 ++++++++ .../com/relewise/client/model/Filter.java | 6 + .../client/model/HasCompanyDataCondition.java | 115 +++++++++++++ .../client/model/IDisplayAdFilter.java | 20 +++ .../model/IDisplayAdTemplateFilter.java | 20 +++ .../com/relewise/client/model/LineItem.java | 6 + .../LineItemSelectedPropertiesSettings.java | 88 ++++++++++ .../com/relewise/client/model/Location.java | 2 +- ...sRequestEntityFiltersEntitiesRequest.java} | 10 +- ...ationMetadataValuesRetailMediaEntity.java} | 8 +- ...ValuesRetailMediaEntityEntityFilters.java} | 6 +- .../client/model/LocationPlacement.java | 10 ++ ...UIDLocationEntityStateEntityResponse.java} | 12 +- ...a => LocationUUIDSaveEntitiesRequest.java} | 6 +- ... => LocationUUIDSaveEntitiesResponse.java} | 6 +- .../client/model/LocationsRequest.java | 2 +- .../model/LocationsRequestEntityFilters.java | 2 +- .../client/model/LocationsResponse.java | 2 +- ...ddenSelectedContentPropertiesSettings.java | 13 ++ ...ddenSelectedProductPropertiesSettings.java | 13 ++ ...ddenSelectedVariantPropertiesSettings.java | 13 ++ .../client/model/ProductEngagement.java | 92 ++++++++++ .../client/model/ProductEngagementData.java | 66 +++++++ .../ProductEngagementDataSentimentKind.java | 35 ++++ .../client/model/ProductEngagementFilter.java | 102 +++++++++++ .../ProductEngagementRelevanceModifier.java | 127 ++++++++++++++ .../ProductPromotionPromotionConditions.java | 16 +- .../relewise/client/model/ProductResult.java | 13 ++ .../client/model/ProductResultDetails.java | 13 ++ .../com/relewise/client/model/Promotion.java | 1 + ...nDisplayAdsVariationPromotionPriority.java | 34 ++++ ...ionProductsVariationPromotionPriority.java | 34 ++++ .../client/model/PromotionSpecification.java | 1 + .../PromotionSpecificationCollection.java | 10 ++ .../PromotionSpecificationVariation.java | 1 + ...otionSpecificationVariationCollection.java | 13 ++ .../model/PromotionVariationPromotion.java | 108 ++++++++++++ .../PromotionVariationPromotionPriority.java | 30 ++++ .../client/model/RecommendationRequest.java | 2 + .../client/model/RelevanceModifier.java | 3 + .../client/model/RequestContextFilter.java | 10 ++ .../client/model/RetailMediaQuery.java | 10 ++ .../model/RetailMediaQuerySettings.java | 38 +++++ ...etailMediaResultPlacementResultEntity.java | 10 ++ ...aResultPlacementResultEntityDisplayAd.java | 38 +++++ .../client/model/SaveAdvertisersRequest.java | 2 +- .../client/model/SaveAdvertisersResponse.java | 2 +- .../client/model/SaveCampaignsRequest.java | 2 +- .../client/model/SaveCampaignsResponse.java | 2 +- .../model/SaveDisplayAdTemplatesRequest.java | 65 +++++++ .../model/SaveDisplayAdTemplatesResponse.java | 64 +++++++ .../client/model/SaveDisplayAdsRequest.java | 65 +++++++ .../client/model/SaveDisplayAdsResponse.java | 64 +++++++ .../client/model/SaveLocationsRequest.java | 2 +- .../client/model/SaveLocationsResponse.java | 2 +- ...ava => SearchTermConditionByLanguage.java} | 44 ++--- ...rchTermConditionByLanguageCollection.java} | 18 +- .../SelectedBrandPropertiesSettings.java | 6 + .../SelectedContentPropertiesSettings.java | 13 ++ .../SelectedDisplayAdPropertiesSettings.java | 82 +++++++++ ...ectedProductDetailsPropertiesSettings.java | 13 ++ .../SelectedProductPropertiesSettings.java | 19 +++ ...ectedVariantDetailsPropertiesSettings.java | 13 ++ .../SelectedVariantPropertiesSettings.java | 13 ++ .../client/model/StringRetailMediaEntity.java | 38 +++++ .../model/TrackContentEngagementRequest.java | 48 ++++++ .../model/TrackDisplayAdClickRequest.java | 48 ++++++ .../client/model/TrackFeedDwellRequest.java | 48 ++++++ .../model/TrackFeedItemClickRequest.java | 48 ++++++ .../model/TrackFeedItemPreviewRequest.java | 48 ++++++ .../model/TrackProductEngagementRequest.java | 48 ++++++ .../com/relewise/client/model/Trackable.java | 6 + .../client/model/TrackingRequest.java | 6 + ...Entity.java => UUIDRetailMediaEntity.java} | 4 +- .../relewise/client/model/UserCondition.java | 1 + .../client/model/UserResultDetails.java | 6 + ...sultDetailsSelectedPropertiesSettings.java | 146 ++++++++++++++++ .../client/model/VariantEngagementFilter.java | 102 +++++++++++ .../VariantEngagementRelevanceModifier.java | 127 ++++++++++++++ .../relewise/client/model/VariantResult.java | 13 ++ .../client/model/VariantResultDetails.java | 13 ++ 172 files changed, 7109 insertions(+), 146 deletions(-) create mode 100644 src/src/main/java/com/relewise/client/model/AbandonedCartTriggerConfigurationPropertySelectionSettings.java rename src/src/main/java/com/relewise/client/model/{AdvertiserEntityStateAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest.java => AdvertiserEntityStateUUIDAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest.java} (62%) rename src/src/main/java/com/relewise/client/model/{AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntity.java => AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntity.java} (74%) rename src/src/main/java/com/relewise/client/model/{AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntityEntityFilters.java => AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntityEntityFilters.java} (74%) rename src/src/main/java/com/relewise/client/model/{AdvertiserAdvertiserEntityStateEntityResponse.java => AdvertiserUUIDAdvertiserEntityStateEntityResponse.java} (70%) rename src/src/main/java/com/relewise/client/model/{AdvertiserSaveEntitiesRequest.java => AdvertiserUUIDSaveEntitiesRequest.java} (80%) rename src/src/main/java/com/relewise/client/model/{AdvertiserSaveEntitiesResponse.java => AdvertiserUUIDSaveEntitiesResponse.java} (79%) create mode 100644 src/src/main/java/com/relewise/client/model/CampaignAnalyticsDisplayAdAnalytics.java create mode 100644 src/src/main/java/com/relewise/client/model/CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics.java create mode 100644 src/src/main/java/com/relewise/client/model/CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics.java rename src/src/main/java/com/relewise/client/model/{CampaignEntityStateCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest.java => CampaignEntityStateUUIDCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest.java} (63%) rename src/src/main/java/com/relewise/client/model/{CampaignEntityStateCampaignMetadataValuesRetailMediaEntity.java => CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntity.java} (75%) rename src/src/main/java/com/relewise/client/model/{CampaignEntityStateCampaignMetadataValuesRetailMediaEntityEntityFilters.java => CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntityEntityFilters.java} (75%) rename src/src/main/java/com/relewise/client/model/{CampaignCampaignEntityStateEntityResponse.java => CampaignUUIDCampaignEntityStateEntityResponse.java} (71%) rename src/src/main/java/com/relewise/client/model/{CampaignSaveEntitiesRequest.java => CampaignUUIDSaveEntitiesRequest.java} (81%) rename src/src/main/java/com/relewise/client/model/{CampaignSaveEntitiesResponse.java => CampaignUUIDSaveEntitiesResponse.java} (79%) create mode 100644 src/src/main/java/com/relewise/client/model/CartDetailsSelectedPropertiesSettings.java create mode 100644 src/src/main/java/com/relewise/client/model/ClickedByUserInfo.java create mode 100644 src/src/main/java/com/relewise/client/model/CompanyScope.java create mode 100644 src/src/main/java/com/relewise/client/model/ContentEngagement.java create mode 100644 src/src/main/java/com/relewise/client/model/ContentEngagementData.java create mode 100644 src/src/main/java/com/relewise/client/model/ContentEngagementDataSentimentKind.java create mode 100644 src/src/main/java/com/relewise/client/model/ContentEngagementFilter.java create mode 100644 src/src/main/java/com/relewise/client/model/ContentEngagementRelevanceModifier.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAd.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdClick.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdDataFilter.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdEntityState.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdEntityStateStringDisplayAdMetadataValuesDisplayAdsRequestSortByDisplayAdsRequestEntityFiltersEntitiesRequest.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntity.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntityEntityFilters.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdIdFilter.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdMetadataValues.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdPromotion.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdPromotionPromotionConditions.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdPromotionSpecification.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdResult.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdStringDisplayAdEntityStateEntityResponse.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdStringSaveEntitiesRequest.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdStringSaveEntitiesResponse.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdTemplate.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdTemplateEntityState.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesDisplayAdTemplatesRequestSortByDisplayAdTemplatesRequestEntityFiltersEntitiesRequest.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntity.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntityEntityFilters.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdTemplateFieldDefinition.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdTemplateIdFilter.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdTemplateMetadataValues.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdTemplateUUIDDisplayAdTemplateEntityStateEntityResponse.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdTemplateUUIDSaveEntitiesRequest.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdTemplateUUIDSaveEntitiesResponse.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdTemplatesRequest.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdTemplatesRequestEntityFilters.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdTemplatesRequestSortBy.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdTemplatesRequestSortBySorting.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdTemplatesResponse.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdsRequest.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdsRequestEntityFilters.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdsRequestSortBy.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdsRequestSortBySorting.java create mode 100644 src/src/main/java/com/relewise/client/model/DisplayAdsResponse.java create mode 100644 src/src/main/java/com/relewise/client/model/Feed.java create mode 100644 src/src/main/java/com/relewise/client/model/FeedComposition.java create mode 100644 src/src/main/java/com/relewise/client/model/FeedCompositionEntityType.java create mode 100644 src/src/main/java/com/relewise/client/model/FeedCompositionResult.java create mode 100644 src/src/main/java/com/relewise/client/model/FeedDwell.java create mode 100644 src/src/main/java/com/relewise/client/model/FeedItem.java create mode 100644 src/src/main/java/com/relewise/client/model/FeedItemClick.java create mode 100644 src/src/main/java/com/relewise/client/model/FeedItemPreview.java create mode 100644 src/src/main/java/com/relewise/client/model/FeedRecommendationInitializationRequest.java create mode 100644 src/src/main/java/com/relewise/client/model/FeedRecommendationNextItemsRequest.java create mode 100644 src/src/main/java/com/relewise/client/model/FeedRecommendationResponse.java create mode 100644 src/src/main/java/com/relewise/client/model/FeedSeed.java create mode 100644 src/src/main/java/com/relewise/client/model/HasCompanyDataCondition.java create mode 100644 src/src/main/java/com/relewise/client/model/IDisplayAdFilter.java create mode 100644 src/src/main/java/com/relewise/client/model/IDisplayAdTemplateFilter.java create mode 100644 src/src/main/java/com/relewise/client/model/LineItemSelectedPropertiesSettings.java rename src/src/main/java/com/relewise/client/model/{LocationEntityStateLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest.java => LocationEntityStateUUIDLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest.java} (63%) rename src/src/main/java/com/relewise/client/model/{LocationEntityStateLocationMetadataValuesRetailMediaEntity.java => LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntity.java} (75%) rename src/src/main/java/com/relewise/client/model/{LocationEntityStateLocationMetadataValuesRetailMediaEntityEntityFilters.java => LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntityEntityFilters.java} (75%) rename src/src/main/java/com/relewise/client/model/{LocationLocationEntityStateEntityResponse.java => LocationUUIDLocationEntityStateEntityResponse.java} (71%) rename src/src/main/java/com/relewise/client/model/{LocationSaveEntitiesRequest.java => LocationUUIDSaveEntitiesRequest.java} (81%) rename src/src/main/java/com/relewise/client/model/{LocationSaveEntitiesResponse.java => LocationUUIDSaveEntitiesResponse.java} (79%) create mode 100644 src/src/main/java/com/relewise/client/model/ProductEngagement.java create mode 100644 src/src/main/java/com/relewise/client/model/ProductEngagementData.java create mode 100644 src/src/main/java/com/relewise/client/model/ProductEngagementDataSentimentKind.java create mode 100644 src/src/main/java/com/relewise/client/model/ProductEngagementFilter.java create mode 100644 src/src/main/java/com/relewise/client/model/ProductEngagementRelevanceModifier.java create mode 100644 src/src/main/java/com/relewise/client/model/PromotionDisplayAdsVariationPromotionPriority.java create mode 100644 src/src/main/java/com/relewise/client/model/PromotionProductsVariationPromotionPriority.java create mode 100644 src/src/main/java/com/relewise/client/model/PromotionVariationPromotion.java create mode 100644 src/src/main/java/com/relewise/client/model/PromotionVariationPromotionPriority.java create mode 100644 src/src/main/java/com/relewise/client/model/RetailMediaQuerySettings.java create mode 100644 src/src/main/java/com/relewise/client/model/RetailMediaResultPlacementResultEntityDisplayAd.java create mode 100644 src/src/main/java/com/relewise/client/model/SaveDisplayAdTemplatesRequest.java create mode 100644 src/src/main/java/com/relewise/client/model/SaveDisplayAdTemplatesResponse.java create mode 100644 src/src/main/java/com/relewise/client/model/SaveDisplayAdsRequest.java create mode 100644 src/src/main/java/com/relewise/client/model/SaveDisplayAdsResponse.java rename src/src/main/java/com/relewise/client/model/{RetailMediaSearchTermCondition.java => SearchTermConditionByLanguage.java} (51%) rename src/src/main/java/com/relewise/client/model/{RetailMediaSearchTermConditionCollection.java => SearchTermConditionByLanguageCollection.java} (52%) create mode 100644 src/src/main/java/com/relewise/client/model/SelectedDisplayAdPropertiesSettings.java create mode 100644 src/src/main/java/com/relewise/client/model/StringRetailMediaEntity.java create mode 100644 src/src/main/java/com/relewise/client/model/TrackContentEngagementRequest.java create mode 100644 src/src/main/java/com/relewise/client/model/TrackDisplayAdClickRequest.java create mode 100644 src/src/main/java/com/relewise/client/model/TrackFeedDwellRequest.java create mode 100644 src/src/main/java/com/relewise/client/model/TrackFeedItemClickRequest.java create mode 100644 src/src/main/java/com/relewise/client/model/TrackFeedItemPreviewRequest.java create mode 100644 src/src/main/java/com/relewise/client/model/TrackProductEngagementRequest.java rename src/src/main/java/com/relewise/client/model/{RetailMediaEntity.java => UUIDRetailMediaEntity.java} (88%) create mode 100644 src/src/main/java/com/relewise/client/model/UserResultDetailsSelectedPropertiesSettings.java create mode 100644 src/src/main/java/com/relewise/client/model/VariantEngagementFilter.java create mode 100644 src/src/main/java/com/relewise/client/model/VariantEngagementRelevanceModifier.java diff --git a/Generator/Generator.csproj b/Generator/Generator.csproj index 8db6678a..fc4f48b9 100644 --- a/Generator/Generator.csproj +++ b/Generator/Generator.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/src/main/java/com/relewise/client/Recommender.java b/src/src/main/java/com/relewise/client/Recommender.java index 6afeb9ea..71c927c4 100644 --- a/src/src/main/java/com/relewise/client/Recommender.java +++ b/src/src/main/java/com/relewise/client/Recommender.java @@ -113,6 +113,14 @@ public BrandRecommendationResponse recommend(PersonalBrandRecommendationRequest return makeRequestAndValidate("PersonalBrandRecommendationRequest", request, BrandRecommendationResponse.class); } + public FeedRecommendationResponse recommend(FeedRecommendationInitializationRequest request) throws IOException, InterruptedException, ClientException { + return makeRequestAndValidate("FeedRecommendationInitializationRequest", request, FeedRecommendationResponse.class); + } + + public FeedRecommendationResponse recommend(FeedRecommendationNextItemsRequest request) throws IOException, InterruptedException, ClientException { + return makeRequestAndValidate("FeedRecommendationNextItemsRequest", request, FeedRecommendationResponse.class); + } + public BrandRecommendationResponse recommend(BrandRecommendationRequest request) throws IOException, InterruptedException, ClientException { return makeRequestAndValidate("BrandRecommendationRequest", request, BrandRecommendationResponse.class); } diff --git a/src/src/main/java/com/relewise/client/Tracker.java b/src/src/main/java/com/relewise/client/Tracker.java index 5608e75f..9fe52eae 100644 --- a/src/src/main/java/com/relewise/client/Tracker.java +++ b/src/src/main/java/com/relewise/client/Tracker.java @@ -53,6 +53,10 @@ public void track(TrackContentCategoryViewRequest trackingRequest) throws IOExce makeRequestAndValidate("TrackContentCategoryViewRequest", trackingRequest, Void.class); } + public void track(TrackContentEngagementRequest trackingRequest) throws IOException, InterruptedException, ClientException { + makeRequestAndValidate("TrackContentEngagementRequest", trackingRequest, Void.class); + } + public void track(TrackContentUpdateRequest trackingRequest) throws IOException, InterruptedException, ClientException { makeRequestAndValidate("TrackContentUpdateRequest", trackingRequest, Void.class); } @@ -61,6 +65,10 @@ public void track(TrackContentViewRequest trackingRequest) throws IOException, I makeRequestAndValidate("TrackContentViewRequest", trackingRequest, Void.class); } + public void track(TrackDisplayAdClickRequest trackingRequest) throws IOException, InterruptedException, ClientException { + makeRequestAndValidate("TrackDisplayAdClickRequest", trackingRequest, Void.class); + } + public void track(TrackingRequest trackingRequest) throws IOException, InterruptedException, ClientException { makeRequestAndValidate("TrackingRequest", trackingRequest, Void.class); } @@ -85,6 +93,10 @@ public void track(TrackProductCategoryViewRequest trackingRequest) throws IOExce makeRequestAndValidate("TrackProductCategoryViewRequest", trackingRequest, Void.class); } + public void track(TrackProductEngagementRequest trackingRequest) throws IOException, InterruptedException, ClientException { + makeRequestAndValidate("TrackProductEngagementRequest", trackingRequest, Void.class); + } + public void track(TrackProductUpdateRequest trackingRequest) throws IOException, InterruptedException, ClientException { makeRequestAndValidate("TrackProductUpdateRequest", trackingRequest, Void.class); } @@ -100,4 +112,16 @@ public void track(TrackSearchTermRequest trackingRequest) throws IOException, In public void track(TrackUserUpdateRequest trackingRequest) throws IOException, InterruptedException, ClientException { makeRequestAndValidate("TrackUserUpdateRequest", trackingRequest, Void.class); } + + public void track(TrackFeedDwellRequest trackingRequest) throws IOException, InterruptedException, ClientException { + makeRequestAndValidate("TrackFeedDwellRequest", trackingRequest, Void.class); + } + + public void track(TrackFeedItemClickRequest trackingRequest) throws IOException, InterruptedException, ClientException { + makeRequestAndValidate("TrackFeedItemClickRequest", trackingRequest, Void.class); + } + + public void track(TrackFeedItemPreviewRequest trackingRequest) throws IOException, InterruptedException, ClientException { + makeRequestAndValidate("TrackFeedItemPreviewRequest", trackingRequest, Void.class); + } } diff --git a/src/src/main/java/com/relewise/client/model/AbandonedCartTriggerConfiguration.java b/src/src/main/java/com/relewise/client/model/AbandonedCartTriggerConfiguration.java index 59e3b57f..c823bd4a 100644 --- a/src/src/main/java/com/relewise/client/model/AbandonedCartTriggerConfiguration.java +++ b/src/src/main/java/com/relewise/client/model/AbandonedCartTriggerConfiguration.java @@ -25,6 +25,7 @@ public class AbandonedCartTriggerConfiguration extends AbandonedCartTriggerResul { public String $type = "Relewise.Client.DataTypes.Triggers.Configurations.AbandonedCartTriggerConfiguration, Relewise.Client"; public String cartName; + public @Nullable AbandonedCartTriggerConfigurationPropertySelectionSettings selectedProperties; public static AbandonedCartTriggerConfiguration create(String name, String description) { return new AbandonedCartTriggerConfiguration(name, description); @@ -53,11 +54,20 @@ public String getCartName() { return this.cartName; } + public @Nullable AbandonedCartTriggerConfigurationPropertySelectionSettings getSelectedProperties() + { + return this.selectedProperties; + } public AbandonedCartTriggerConfiguration setCartName(String cartName) { this.cartName = cartName; return this; } + public AbandonedCartTriggerConfiguration setSelectedProperties(@Nullable AbandonedCartTriggerConfigurationPropertySelectionSettings selectedProperties) + { + this.selectedProperties = selectedProperties; + return this; + } @Override public AbandonedCartTriggerConfiguration setId(UUID id) { diff --git a/src/src/main/java/com/relewise/client/model/AbandonedCartTriggerConfigurationPropertySelectionSettings.java b/src/src/main/java/com/relewise/client/model/AbandonedCartTriggerConfigurationPropertySelectionSettings.java new file mode 100644 index 00000000..d09fdd17 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/AbandonedCartTriggerConfigurationPropertySelectionSettings.java @@ -0,0 +1,42 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Defines what properties are to be included into AbandonedCartTriggerResult response. */ +@JsonIgnoreProperties(ignoreUnknown = true) +public class AbandonedCartTriggerConfigurationPropertySelectionSettings +{ + /** Defines properties to be included into client payload. */ + public @Nullable UserResultDetailsSelectedPropertiesSettings user; + public static AbandonedCartTriggerConfigurationPropertySelectionSettings create() + { + return new AbandonedCartTriggerConfigurationPropertySelectionSettings(); + } + public AbandonedCartTriggerConfigurationPropertySelectionSettings() + { + } + /** Defines properties to be included into client payload. */ + public @Nullable UserResultDetailsSelectedPropertiesSettings getUser() + { + return this.user; + } + /** Defines properties to be included into client payload. */ + public AbandonedCartTriggerConfigurationPropertySelectionSettings setUser(@Nullable UserResultDetailsSelectedPropertiesSettings user) + { + this.user = user; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/Advertiser.java b/src/src/main/java/com/relewise/client/model/Advertiser.java index ccc036c2..9d5df574 100644 --- a/src/src/main/java/com/relewise/client/model/Advertiser.java +++ b/src/src/main/java/com/relewise/client/model/Advertiser.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = Advertiser.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class Advertiser extends AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntity +public class Advertiser extends AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntity { public String $type = "Relewise.Client.DataTypes.RetailMedia.Advertiser, Relewise.Client"; public String name; diff --git a/src/src/main/java/com/relewise/client/model/AdvertiserEntityStateAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest.java b/src/src/main/java/com/relewise/client/model/AdvertiserEntityStateUUIDAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest.java similarity index 62% rename from src/src/main/java/com/relewise/client/model/AdvertiserEntityStateAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest.java rename to src/src/main/java/com/relewise/client/model/AdvertiserEntityStateUUIDAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest.java index feebbb9b..2badb27d 100644 --- a/src/src/main/java/com/relewise/client/model/AdvertiserEntityStateAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest.java +++ b/src/src/main/java/com/relewise/client/model/AdvertiserEntityStateUUIDAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class AdvertiserEntityStateAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest extends LicensedRequest +public abstract class AdvertiserEntityStateUUIDAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest extends LicensedRequest { public String $type = ""; public @Nullable AdvertisersRequestEntityFilters filters; @@ -45,22 +45,22 @@ public Integer getTake() { return this.take; } - public AdvertiserEntityStateAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest setFilters(@Nullable AdvertisersRequestEntityFilters filters) + public AdvertiserEntityStateUUIDAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest setFilters(@Nullable AdvertisersRequestEntityFilters filters) { this.filters = filters; return this; } - public AdvertiserEntityStateAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest setSorting(@Nullable AdvertisersRequestSortBySorting sorting) + public AdvertiserEntityStateUUIDAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest setSorting(@Nullable AdvertisersRequestSortBySorting sorting) { this.sorting = sorting; return this; } - public AdvertiserEntityStateAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest setSkip(Integer skip) + public AdvertiserEntityStateUUIDAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest setSkip(Integer skip) { this.skip = skip; return this; } - public AdvertiserEntityStateAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest setTake(Integer take) + public AdvertiserEntityStateUUIDAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest setTake(Integer take) { this.take = take; return this; diff --git a/src/src/main/java/com/relewise/client/model/AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntity.java b/src/src/main/java/com/relewise/client/model/AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntity.java similarity index 74% rename from src/src/main/java/com/relewise/client/model/AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntity.java rename to src/src/main/java/com/relewise/client/model/AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntity.java index 8ebe9618..1aa2280a 100644 --- a/src/src/main/java/com/relewise/client/model/AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntity.java +++ b/src/src/main/java/com/relewise/client/model/AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntity.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntity extends RetailMediaEntity +public abstract class AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntity extends UUIDRetailMediaEntity { public String $type = ""; public AdvertiserEntityState state; @@ -37,19 +37,19 @@ public AdvertiserMetadataValues getMetadata() { return this.metadata; } - public AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntity setState(AdvertiserEntityState state) + public AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntity setState(AdvertiserEntityState state) { this.state = state; return this; } /** Managed server side only, manually setting this will have no effect */ - public AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntity setMetadata(AdvertiserMetadataValues metadata) + public AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntity setMetadata(AdvertiserMetadataValues metadata) { this.metadata = metadata; return this; } @Override - public AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntity setId(@Nullable UUID id) + public AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntity setId(@Nullable UUID id) { this.id = id; return this; diff --git a/src/src/main/java/com/relewise/client/model/AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntityEntityFilters.java b/src/src/main/java/com/relewise/client/model/AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntityEntityFilters.java similarity index 74% rename from src/src/main/java/com/relewise/client/model/AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntityEntityFilters.java rename to src/src/main/java/com/relewise/client/model/AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntityEntityFilters.java index 28fc0960..3ac37248 100644 --- a/src/src/main/java/com/relewise/client/model/AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntityEntityFilters.java +++ b/src/src/main/java/com/relewise/client/model/AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntityEntityFilters.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntityEntityFilters +public abstract class AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntityEntityFilters { public String $type = ""; public @Nullable String term; @@ -35,12 +35,12 @@ public abstract class AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEn { return this.states; } - public AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntityEntityFilters setTerm(@Nullable String term) + public AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntityEntityFilters setTerm(@Nullable String term) { this.term = term; return this; } - public AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntityEntityFilters setStates(AdvertiserEntityState... states) + public AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntityEntityFilters setStates(AdvertiserEntityState... states) { this.states = states; return this; diff --git a/src/src/main/java/com/relewise/client/model/AdvertiserAdvertiserEntityStateEntityResponse.java b/src/src/main/java/com/relewise/client/model/AdvertiserUUIDAdvertiserEntityStateEntityResponse.java similarity index 70% rename from src/src/main/java/com/relewise/client/model/AdvertiserAdvertiserEntityStateEntityResponse.java rename to src/src/main/java/com/relewise/client/model/AdvertiserUUIDAdvertiserEntityStateEntityResponse.java index 59663f45..eab0bcab 100644 --- a/src/src/main/java/com/relewise/client/model/AdvertiserAdvertiserEntityStateEntityResponse.java +++ b/src/src/main/java/com/relewise/client/model/AdvertiserUUIDAdvertiserEntityStateEntityResponse.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class AdvertiserAdvertiserEntityStateEntityResponse extends TimedResponse +public abstract class AdvertiserUUIDAdvertiserEntityStateEntityResponse extends TimedResponse { public String $type = ""; public Advertiser[] entities; @@ -40,17 +40,17 @@ public HashMap getHitsPerState() { return this.hitsPerState; } - public AdvertiserAdvertiserEntityStateEntityResponse setEntities(Advertiser... entities) + public AdvertiserUUIDAdvertiserEntityStateEntityResponse setEntities(Advertiser... entities) { this.entities = entities; return this; } - public AdvertiserAdvertiserEntityStateEntityResponse setHits(Integer hits) + public AdvertiserUUIDAdvertiserEntityStateEntityResponse setHits(Integer hits) { this.hits = hits; return this; } - public AdvertiserAdvertiserEntityStateEntityResponse addToHitsPerState(AdvertiserEntityState key, Integer value) + public AdvertiserUUIDAdvertiserEntityStateEntityResponse addToHitsPerState(AdvertiserEntityState key, Integer value) { if (this.hitsPerState == null) { @@ -59,13 +59,13 @@ public AdvertiserAdvertiserEntityStateEntityResponse addToHitsPerState(Advertise this.hitsPerState.put(key, value); return this; } - public AdvertiserAdvertiserEntityStateEntityResponse setHitsPerState(HashMap hitsPerState) + public AdvertiserUUIDAdvertiserEntityStateEntityResponse setHitsPerState(HashMap hitsPerState) { this.hitsPerState = hitsPerState; return this; } @Override - public AdvertiserAdvertiserEntityStateEntityResponse setStatistics(Statistics statistics) + public AdvertiserUUIDAdvertiserEntityStateEntityResponse setStatistics(Statistics statistics) { this.statistics = statistics; return this; diff --git a/src/src/main/java/com/relewise/client/model/AdvertiserSaveEntitiesRequest.java b/src/src/main/java/com/relewise/client/model/AdvertiserUUIDSaveEntitiesRequest.java similarity index 80% rename from src/src/main/java/com/relewise/client/model/AdvertiserSaveEntitiesRequest.java rename to src/src/main/java/com/relewise/client/model/AdvertiserUUIDSaveEntitiesRequest.java index 2858a4a5..fb117853 100644 --- a/src/src/main/java/com/relewise/client/model/AdvertiserSaveEntitiesRequest.java +++ b/src/src/main/java/com/relewise/client/model/AdvertiserUUIDSaveEntitiesRequest.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class AdvertiserSaveEntitiesRequest extends LicensedRequest +public abstract class AdvertiserUUIDSaveEntitiesRequest extends LicensedRequest { public String $type = ""; public Advertiser[] entities; @@ -35,12 +35,12 @@ public String getModifiedBy() { return this.modifiedBy; } - public AdvertiserSaveEntitiesRequest setEntities(Advertiser... entities) + public AdvertiserUUIDSaveEntitiesRequest setEntities(Advertiser... entities) { this.entities = entities; return this; } - public AdvertiserSaveEntitiesRequest setModifiedBy(String modifiedBy) + public AdvertiserUUIDSaveEntitiesRequest setModifiedBy(String modifiedBy) { this.modifiedBy = modifiedBy; return this; diff --git a/src/src/main/java/com/relewise/client/model/AdvertiserSaveEntitiesResponse.java b/src/src/main/java/com/relewise/client/model/AdvertiserUUIDSaveEntitiesResponse.java similarity index 79% rename from src/src/main/java/com/relewise/client/model/AdvertiserSaveEntitiesResponse.java rename to src/src/main/java/com/relewise/client/model/AdvertiserUUIDSaveEntitiesResponse.java index cd990589..cb8bf1ed 100644 --- a/src/src/main/java/com/relewise/client/model/AdvertiserSaveEntitiesResponse.java +++ b/src/src/main/java/com/relewise/client/model/AdvertiserUUIDSaveEntitiesResponse.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class AdvertiserSaveEntitiesResponse extends TimedResponse +public abstract class AdvertiserUUIDSaveEntitiesResponse extends TimedResponse { public String $type = ""; public Advertiser[] entities; @@ -30,13 +30,13 @@ public Advertiser[] getEntities() { return this.entities; } - public AdvertiserSaveEntitiesResponse setEntities(Advertiser... entities) + public AdvertiserUUIDSaveEntitiesResponse setEntities(Advertiser... entities) { this.entities = entities; return this; } @Override - public AdvertiserSaveEntitiesResponse setStatistics(Statistics statistics) + public AdvertiserUUIDSaveEntitiesResponse setStatistics(Statistics statistics) { this.statistics = statistics; return this; diff --git a/src/src/main/java/com/relewise/client/model/AdvertisersRequest.java b/src/src/main/java/com/relewise/client/model/AdvertisersRequest.java index 5aa6dccd..20b4afbb 100644 --- a/src/src/main/java/com/relewise/client/model/AdvertisersRequest.java +++ b/src/src/main/java/com/relewise/client/model/AdvertisersRequest.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = AdvertisersRequest.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class AdvertisersRequest extends AdvertiserEntityStateAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest +public class AdvertisersRequest extends AdvertiserEntityStateUUIDAdvertiserMetadataValuesAdvertisersRequestSortByAdvertisersRequestEntityFiltersEntitiesRequest { public String $type = "Relewise.Client.Requests.RetailMedia.AdvertisersRequest, Relewise.Client"; public static AdvertisersRequest create(@Nullable AdvertisersRequestEntityFilters filters, @Nullable AdvertisersRequestSortBySorting sorting, Integer skip, Integer take) diff --git a/src/src/main/java/com/relewise/client/model/AdvertisersRequestEntityFilters.java b/src/src/main/java/com/relewise/client/model/AdvertisersRequestEntityFilters.java index 7d202cd2..8efa39dd 100644 --- a/src/src/main/java/com/relewise/client/model/AdvertisersRequestEntityFilters.java +++ b/src/src/main/java/com/relewise/client/model/AdvertisersRequestEntityFilters.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = AdvertisersRequestEntityFilters.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class AdvertisersRequestEntityFilters extends AdvertiserEntityStateAdvertiserMetadataValuesRetailMediaEntityEntityFilters +public class AdvertisersRequestEntityFilters extends AdvertiserEntityStateUUIDAdvertiserMetadataValuesRetailMediaEntityEntityFilters { public String $type = "Relewise.Client.Requests.RetailMedia.AdvertisersRequest+EntityFilters, Relewise.Client"; public @Nullable UUID[] ids; diff --git a/src/src/main/java/com/relewise/client/model/AdvertisersResponse.java b/src/src/main/java/com/relewise/client/model/AdvertisersResponse.java index 2b44d32b..79d0530c 100644 --- a/src/src/main/java/com/relewise/client/model/AdvertisersResponse.java +++ b/src/src/main/java/com/relewise/client/model/AdvertisersResponse.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = AdvertisersResponse.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class AdvertisersResponse extends AdvertiserAdvertiserEntityStateEntityResponse +public class AdvertisersResponse extends AdvertiserUUIDAdvertiserEntityStateEntityResponse { public String $type = "Relewise.Client.Responses.RetailMedia.AdvertisersResponse, Relewise.Client"; public static AdvertisersResponse create(Advertiser[] advertisers, Integer hits, HashMap hitsPerState) diff --git a/src/src/main/java/com/relewise/client/model/Campaign.java b/src/src/main/java/com/relewise/client/model/Campaign.java index d1964e40..53ffcb72 100644 --- a/src/src/main/java/com/relewise/client/model/Campaign.java +++ b/src/src/main/java/com/relewise/client/model/Campaign.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = Campaign.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class Campaign extends CampaignEntityStateCampaignMetadataValuesRetailMediaEntity +public class Campaign extends CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntity { public String $type = "Relewise.Client.DataTypes.RetailMedia.Campaign, Relewise.Client"; public String name; diff --git a/src/src/main/java/com/relewise/client/model/CampaignAnalytics.java b/src/src/main/java/com/relewise/client/model/CampaignAnalytics.java index 15a4159c..010d436f 100644 --- a/src/src/main/java/com/relewise/client/model/CampaignAnalytics.java +++ b/src/src/main/java/com/relewise/client/model/CampaignAnalytics.java @@ -19,13 +19,15 @@ public class CampaignAnalytics { public CampaignAnalyticsProductAnalytics products; - public static CampaignAnalytics create(CampaignAnalyticsProductAnalytics products) + public CampaignAnalyticsDisplayAdAnalytics displayAds; + public static CampaignAnalytics create(CampaignAnalyticsProductAnalytics products, CampaignAnalyticsDisplayAdAnalytics displayAds) { - return new CampaignAnalytics(products); + return new CampaignAnalytics(products, displayAds); } - public CampaignAnalytics(CampaignAnalyticsProductAnalytics products) + public CampaignAnalytics(CampaignAnalyticsProductAnalytics products, CampaignAnalyticsDisplayAdAnalytics displayAds) { this.products = products; + this.displayAds = displayAds; } public CampaignAnalytics() { @@ -34,9 +36,18 @@ public CampaignAnalyticsProductAnalytics getProducts() { return this.products; } + public CampaignAnalyticsDisplayAdAnalytics getDisplayAds() + { + return this.displayAds; + } public CampaignAnalytics setProducts(CampaignAnalyticsProductAnalytics products) { this.products = products; return this; } + public CampaignAnalytics setDisplayAds(CampaignAnalyticsDisplayAdAnalytics displayAds) + { + this.displayAds = displayAds; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/CampaignAnalyticsDisplayAdAnalytics.java b/src/src/main/java/com/relewise/client/model/CampaignAnalyticsDisplayAdAnalytics.java new file mode 100644 index 00000000..40b7761a --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/CampaignAnalyticsDisplayAdAnalytics.java @@ -0,0 +1,99 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class CampaignAnalyticsDisplayAdAnalytics +{ + public CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics[] timeSeries; + /** Number of times display ads has been promoted by the Campaign. */ + public Integer promotions; + /** How many times each display ad was promoted. */ + public CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics[] promotedDisplayAds; + public static CampaignAnalyticsDisplayAdAnalytics create(CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics[] timeSeries, Integer promotions, CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics... promotedDisplayAds) + { + return new CampaignAnalyticsDisplayAdAnalytics(timeSeries, promotions, promotedDisplayAds); + } + public CampaignAnalyticsDisplayAdAnalytics(CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics[] timeSeries, Integer promotions, CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics... promotedDisplayAds) + { + this.timeSeries = timeSeries; + this.promotions = promotions; + this.promotedDisplayAds = promotedDisplayAds; + } + public CampaignAnalyticsDisplayAdAnalytics() + { + } + public CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics[] getTimeSeries() + { + return this.timeSeries; + } + /** Number of times display ads has been promoted by the Campaign. */ + public Integer getPromotions() + { + return this.promotions; + } + /** How many times each display ad was promoted. */ + public CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics[] getPromotedDisplayAds() + { + return this.promotedDisplayAds; + } + public CampaignAnalyticsDisplayAdAnalytics setTimeSeries(CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics... timeSeries) + { + this.timeSeries = timeSeries; + return this; + } + public CampaignAnalyticsDisplayAdAnalytics addToTimeSeries(CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics timeSery) + { + if (this.timeSeries == null) + { + this.timeSeries = new CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics[] { timeSery }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.timeSeries)); + existingList.add(timeSery); + this.timeSeries = existingList.toArray(new CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics[0]); + } + return this; + } + /** Number of times display ads has been promoted by the Campaign. */ + public CampaignAnalyticsDisplayAdAnalytics setPromotions(Integer promotions) + { + this.promotions = promotions; + return this; + } + /** How many times each display ad was promoted. */ + public CampaignAnalyticsDisplayAdAnalytics setPromotedDisplayAds(CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics... promotedDisplayAds) + { + this.promotedDisplayAds = promotedDisplayAds; + return this; + } + /** How many times each display ad was promoted. */ + public CampaignAnalyticsDisplayAdAnalytics addToPromotedDisplayAds(CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics promotedDisplayAd) + { + if (this.promotedDisplayAds == null) + { + this.promotedDisplayAds = new CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics[] { promotedDisplayAd }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.promotedDisplayAds)); + existingList.add(promotedDisplayAd); + this.promotedDisplayAds = existingList.toArray(new CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics[0]); + } + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics.java b/src/src/main/java/com/relewise/client/model/CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics.java new file mode 100644 index 00000000..be64eb71 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics.java @@ -0,0 +1,64 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics +{ + public OffsetDateTime periodFromUtc; + public Integer views; + public Integer clicks; + public static CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics create(OffsetDateTime periodFromUtc, Integer views, Integer clicks) + { + return new CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics(periodFromUtc, views, clicks); + } + public CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics(OffsetDateTime periodFromUtc, Integer views, Integer clicks) + { + this.periodFromUtc = periodFromUtc; + this.views = views; + this.clicks = clicks; + } + public CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics() + { + } + public OffsetDateTime getPeriodFromUtc() + { + return this.periodFromUtc; + } + public Integer getViews() + { + return this.views; + } + public Integer getClicks() + { + return this.clicks; + } + public CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics setPeriodFromUtc(OffsetDateTime periodFromUtc) + { + this.periodFromUtc = periodFromUtc; + return this; + } + public CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics setViews(Integer views) + { + this.views = views; + return this; + } + public CampaignAnalyticsDisplayAdAnalyticsPeriodMetrics setClicks(Integer clicks) + { + this.clicks = clicks; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics.java b/src/src/main/java/com/relewise/client/model/CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics.java new file mode 100644 index 00000000..f824dd25 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics.java @@ -0,0 +1,75 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics +{ + public String displayAdId; + public Integer promotions; + public Integer lastClickedUnixMinutes; + public Integer numberOfTimesClicked; + public static CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics create(String displayAdId, Integer promotions, Integer lastClickedUnixMinutes, Integer numberOfTimesClicked) + { + return new CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics(displayAdId, promotions, lastClickedUnixMinutes, numberOfTimesClicked); + } + public CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics(String displayAdId, Integer promotions, Integer lastClickedUnixMinutes, Integer numberOfTimesClicked) + { + this.displayAdId = displayAdId; + this.promotions = promotions; + this.lastClickedUnixMinutes = lastClickedUnixMinutes; + this.numberOfTimesClicked = numberOfTimesClicked; + } + public CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics() + { + } + public String getDisplayAdId() + { + return this.displayAdId; + } + public Integer getPromotions() + { + return this.promotions; + } + public Integer getLastClickedUnixMinutes() + { + return this.lastClickedUnixMinutes; + } + public Integer getNumberOfTimesClicked() + { + return this.numberOfTimesClicked; + } + public CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics setDisplayAdId(String displayAdId) + { + this.displayAdId = displayAdId; + return this; + } + public CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics setPromotions(Integer promotions) + { + this.promotions = promotions; + return this; + } + public CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics setLastClickedUnixMinutes(Integer lastClickedUnixMinutes) + { + this.lastClickedUnixMinutes = lastClickedUnixMinutes; + return this; + } + public CampaignAnalyticsDisplayAdAnalyticsPromotedDisplayAdMetrics setNumberOfTimesClicked(Integer numberOfTimesClicked) + { + this.numberOfTimesClicked = numberOfTimesClicked; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/CampaignAnalyticsProductAnalytics.java b/src/src/main/java/com/relewise/client/model/CampaignAnalyticsProductAnalytics.java index c45363a9..691e293c 100644 --- a/src/src/main/java/com/relewise/client/model/CampaignAnalyticsProductAnalytics.java +++ b/src/src/main/java/com/relewise/client/model/CampaignAnalyticsProductAnalytics.java @@ -22,7 +22,7 @@ public class CampaignAnalyticsProductAnalytics public CampaignAnalyticsProductAnalyticsPeriodMetrics[] timeSeries; /** Number of times products are being promoted by the Campaign. */ public Integer promotions; - /** How many times each individual product was promoted. */ + /** How many times each product was promoted. */ public CampaignAnalyticsProductAnalyticsPromotedProductMetrics[] promotedProducts; public static CampaignAnalyticsProductAnalytics create(CampaignAnalyticsProductAnalyticsPeriodMetrics[] timeSeries, Integer promotions, CampaignAnalyticsProductAnalyticsPromotedProductMetrics... promotedProducts) { @@ -46,7 +46,7 @@ public Integer getPromotions() { return this.promotions; } - /** How many times each individual product was promoted. */ + /** How many times each product was promoted. */ public CampaignAnalyticsProductAnalyticsPromotedProductMetrics[] getPromotedProducts() { return this.promotedProducts; @@ -76,13 +76,13 @@ public CampaignAnalyticsProductAnalytics setPromotions(Integer promotions) this.promotions = promotions; return this; } - /** How many times each individual product was promoted. */ + /** How many times each product was promoted. */ public CampaignAnalyticsProductAnalytics setPromotedProducts(CampaignAnalyticsProductAnalyticsPromotedProductMetrics... promotedProducts) { this.promotedProducts = promotedProducts; return this; } - /** How many times each individual product was promoted. */ + /** How many times each product was promoted. */ public CampaignAnalyticsProductAnalytics addToPromotedProducts(CampaignAnalyticsProductAnalyticsPromotedProductMetrics promotedProduct) { if (this.promotedProducts == null) diff --git a/src/src/main/java/com/relewise/client/model/CampaignAnalyticsRequest.java b/src/src/main/java/com/relewise/client/model/CampaignAnalyticsRequest.java index d833f158..711308f4 100644 --- a/src/src/main/java/com/relewise/client/model/CampaignAnalyticsRequest.java +++ b/src/src/main/java/com/relewise/client/model/CampaignAnalyticsRequest.java @@ -28,16 +28,18 @@ public class CampaignAnalyticsRequest extends LicensedRequest /** The campaign to provide analytics for. */ public UUID id; public LocalDateTimeRange periodUtc; - public @Nullable FilterCollection filters; - public static CampaignAnalyticsRequest create(UUID id, LocalDateTimeRange periodUtc, @Nullable FilterCollection filters) + public @Nullable FilterCollection productFilters; + public @Nullable FilterCollection displayAdFilters; + public static CampaignAnalyticsRequest create(UUID id, LocalDateTimeRange periodUtc, @Nullable FilterCollection productFilters, @Nullable FilterCollection displayAdFilters) { - return new CampaignAnalyticsRequest(id, periodUtc, filters); + return new CampaignAnalyticsRequest(id, periodUtc, productFilters, displayAdFilters); } - public CampaignAnalyticsRequest(UUID id, LocalDateTimeRange periodUtc, @Nullable FilterCollection filters) + public CampaignAnalyticsRequest(UUID id, LocalDateTimeRange periodUtc, @Nullable FilterCollection productFilters, @Nullable FilterCollection displayAdFilters) { this.id = id; this.periodUtc = periodUtc; - this.filters = filters; + this.productFilters = productFilters; + this.displayAdFilters = displayAdFilters; } public CampaignAnalyticsRequest() { @@ -51,9 +53,13 @@ public LocalDateTimeRange getPeriodUtc() { return this.periodUtc; } - public @Nullable FilterCollection getFilters() + public @Nullable FilterCollection getProductFilters() { - return this.filters; + return this.productFilters; + } + public @Nullable FilterCollection getDisplayAdFilters() + { + return this.displayAdFilters; } /** The campaign to provide analytics for. */ public CampaignAnalyticsRequest setId(UUID id) @@ -66,9 +72,14 @@ public CampaignAnalyticsRequest setPeriodUtc(LocalDateTimeRange periodUtc) this.periodUtc = periodUtc; return this; } - public CampaignAnalyticsRequest setFilters(@Nullable FilterCollection filters) + public CampaignAnalyticsRequest setProductFilters(@Nullable FilterCollection productFilters) + { + this.productFilters = productFilters; + return this; + } + public CampaignAnalyticsRequest setDisplayAdFilters(@Nullable FilterCollection displayAdFilters) { - this.filters = filters; + this.displayAdFilters = displayAdFilters; return this; } } diff --git a/src/src/main/java/com/relewise/client/model/CampaignCampaignConditions.java b/src/src/main/java/com/relewise/client/model/CampaignCampaignConditions.java index 3c2d5739..aee94b55 100644 --- a/src/src/main/java/com/relewise/client/model/CampaignCampaignConditions.java +++ b/src/src/main/java/com/relewise/client/model/CampaignCampaignConditions.java @@ -24,7 +24,7 @@ public class CampaignCampaignConditions extends RetailMediaConditions { public String $type = "Relewise.Client.DataTypes.RetailMedia.Campaign+CampaignConditions, Relewise.Client"; - public @Nullable RetailMediaSearchTermConditionCollection searchTerm; + public @Nullable SearchTermConditionByLanguageCollection searchTerm; public static CampaignCampaignConditions create() { return new CampaignCampaignConditions(); @@ -32,11 +32,11 @@ public static CampaignCampaignConditions create() public CampaignCampaignConditions() { } - public @Nullable RetailMediaSearchTermConditionCollection getSearchTerm() + public @Nullable SearchTermConditionByLanguageCollection getSearchTerm() { return this.searchTerm; } - public CampaignCampaignConditions setSearchTerm(@Nullable RetailMediaSearchTermConditionCollection searchTerm) + public CampaignCampaignConditions setSearchTerm(@Nullable SearchTermConditionByLanguageCollection searchTerm) { this.searchTerm = searchTerm; return this; diff --git a/src/src/main/java/com/relewise/client/model/CampaignEntityStateCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest.java b/src/src/main/java/com/relewise/client/model/CampaignEntityStateUUIDCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest.java similarity index 63% rename from src/src/main/java/com/relewise/client/model/CampaignEntityStateCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest.java rename to src/src/main/java/com/relewise/client/model/CampaignEntityStateUUIDCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest.java index b4777ffb..9be95f4d 100644 --- a/src/src/main/java/com/relewise/client/model/CampaignEntityStateCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest.java +++ b/src/src/main/java/com/relewise/client/model/CampaignEntityStateUUIDCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class CampaignEntityStateCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest extends LicensedRequest +public abstract class CampaignEntityStateUUIDCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest extends LicensedRequest { public String $type = ""; public @Nullable CampaignsRequestEntityFilters filters; @@ -45,22 +45,22 @@ public Integer getTake() { return this.take; } - public CampaignEntityStateCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest setFilters(@Nullable CampaignsRequestEntityFilters filters) + public CampaignEntityStateUUIDCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest setFilters(@Nullable CampaignsRequestEntityFilters filters) { this.filters = filters; return this; } - public CampaignEntityStateCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest setSorting(@Nullable CampaignsRequestSortBySorting sorting) + public CampaignEntityStateUUIDCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest setSorting(@Nullable CampaignsRequestSortBySorting sorting) { this.sorting = sorting; return this; } - public CampaignEntityStateCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest setSkip(Integer skip) + public CampaignEntityStateUUIDCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest setSkip(Integer skip) { this.skip = skip; return this; } - public CampaignEntityStateCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest setTake(Integer take) + public CampaignEntityStateUUIDCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest setTake(Integer take) { this.take = take; return this; diff --git a/src/src/main/java/com/relewise/client/model/CampaignEntityStateCampaignMetadataValuesRetailMediaEntity.java b/src/src/main/java/com/relewise/client/model/CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntity.java similarity index 75% rename from src/src/main/java/com/relewise/client/model/CampaignEntityStateCampaignMetadataValuesRetailMediaEntity.java rename to src/src/main/java/com/relewise/client/model/CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntity.java index d926a79e..0a28e35b 100644 --- a/src/src/main/java/com/relewise/client/model/CampaignEntityStateCampaignMetadataValuesRetailMediaEntity.java +++ b/src/src/main/java/com/relewise/client/model/CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntity.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class CampaignEntityStateCampaignMetadataValuesRetailMediaEntity extends RetailMediaEntity +public abstract class CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntity extends UUIDRetailMediaEntity { public String $type = ""; public CampaignEntityState state; @@ -37,19 +37,19 @@ public CampaignMetadataValues getMetadata() { return this.metadata; } - public CampaignEntityStateCampaignMetadataValuesRetailMediaEntity setState(CampaignEntityState state) + public CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntity setState(CampaignEntityState state) { this.state = state; return this; } /** Managed server side only, manually setting this will have no effect */ - public CampaignEntityStateCampaignMetadataValuesRetailMediaEntity setMetadata(CampaignMetadataValues metadata) + public CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntity setMetadata(CampaignMetadataValues metadata) { this.metadata = metadata; return this; } @Override - public CampaignEntityStateCampaignMetadataValuesRetailMediaEntity setId(@Nullable UUID id) + public CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntity setId(@Nullable UUID id) { this.id = id; return this; diff --git a/src/src/main/java/com/relewise/client/model/CampaignEntityStateCampaignMetadataValuesRetailMediaEntityEntityFilters.java b/src/src/main/java/com/relewise/client/model/CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntityEntityFilters.java similarity index 75% rename from src/src/main/java/com/relewise/client/model/CampaignEntityStateCampaignMetadataValuesRetailMediaEntityEntityFilters.java rename to src/src/main/java/com/relewise/client/model/CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntityEntityFilters.java index 293dab56..65791571 100644 --- a/src/src/main/java/com/relewise/client/model/CampaignEntityStateCampaignMetadataValuesRetailMediaEntityEntityFilters.java +++ b/src/src/main/java/com/relewise/client/model/CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntityEntityFilters.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class CampaignEntityStateCampaignMetadataValuesRetailMediaEntityEntityFilters +public abstract class CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntityEntityFilters { public String $type = ""; public @Nullable String term; @@ -35,12 +35,12 @@ public abstract class CampaignEntityStateCampaignMetadataValuesRetailMediaEntity { return this.states; } - public CampaignEntityStateCampaignMetadataValuesRetailMediaEntityEntityFilters setTerm(@Nullable String term) + public CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntityEntityFilters setTerm(@Nullable String term) { this.term = term; return this; } - public CampaignEntityStateCampaignMetadataValuesRetailMediaEntityEntityFilters setStates(CampaignEntityState... states) + public CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntityEntityFilters setStates(CampaignEntityState... states) { this.states = states; return this; diff --git a/src/src/main/java/com/relewise/client/model/CampaignCampaignEntityStateEntityResponse.java b/src/src/main/java/com/relewise/client/model/CampaignUUIDCampaignEntityStateEntityResponse.java similarity index 71% rename from src/src/main/java/com/relewise/client/model/CampaignCampaignEntityStateEntityResponse.java rename to src/src/main/java/com/relewise/client/model/CampaignUUIDCampaignEntityStateEntityResponse.java index ab2d74ae..b7f23137 100644 --- a/src/src/main/java/com/relewise/client/model/CampaignCampaignEntityStateEntityResponse.java +++ b/src/src/main/java/com/relewise/client/model/CampaignUUIDCampaignEntityStateEntityResponse.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class CampaignCampaignEntityStateEntityResponse extends TimedResponse +public abstract class CampaignUUIDCampaignEntityStateEntityResponse extends TimedResponse { public String $type = ""; public Campaign[] entities; @@ -40,17 +40,17 @@ public HashMap getHitsPerState() { return this.hitsPerState; } - public CampaignCampaignEntityStateEntityResponse setEntities(Campaign... entities) + public CampaignUUIDCampaignEntityStateEntityResponse setEntities(Campaign... entities) { this.entities = entities; return this; } - public CampaignCampaignEntityStateEntityResponse setHits(Integer hits) + public CampaignUUIDCampaignEntityStateEntityResponse setHits(Integer hits) { this.hits = hits; return this; } - public CampaignCampaignEntityStateEntityResponse addToHitsPerState(CampaignEntityState key, Integer value) + public CampaignUUIDCampaignEntityStateEntityResponse addToHitsPerState(CampaignEntityState key, Integer value) { if (this.hitsPerState == null) { @@ -59,13 +59,13 @@ public CampaignCampaignEntityStateEntityResponse addToHitsPerState(CampaignEntit this.hitsPerState.put(key, value); return this; } - public CampaignCampaignEntityStateEntityResponse setHitsPerState(HashMap hitsPerState) + public CampaignUUIDCampaignEntityStateEntityResponse setHitsPerState(HashMap hitsPerState) { this.hitsPerState = hitsPerState; return this; } @Override - public CampaignCampaignEntityStateEntityResponse setStatistics(Statistics statistics) + public CampaignUUIDCampaignEntityStateEntityResponse setStatistics(Statistics statistics) { this.statistics = statistics; return this; diff --git a/src/src/main/java/com/relewise/client/model/CampaignSaveEntitiesRequest.java b/src/src/main/java/com/relewise/client/model/CampaignUUIDSaveEntitiesRequest.java similarity index 81% rename from src/src/main/java/com/relewise/client/model/CampaignSaveEntitiesRequest.java rename to src/src/main/java/com/relewise/client/model/CampaignUUIDSaveEntitiesRequest.java index 55780031..bd57c904 100644 --- a/src/src/main/java/com/relewise/client/model/CampaignSaveEntitiesRequest.java +++ b/src/src/main/java/com/relewise/client/model/CampaignUUIDSaveEntitiesRequest.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class CampaignSaveEntitiesRequest extends LicensedRequest +public abstract class CampaignUUIDSaveEntitiesRequest extends LicensedRequest { public String $type = ""; public Campaign[] entities; @@ -35,12 +35,12 @@ public String getModifiedBy() { return this.modifiedBy; } - public CampaignSaveEntitiesRequest setEntities(Campaign... entities) + public CampaignUUIDSaveEntitiesRequest setEntities(Campaign... entities) { this.entities = entities; return this; } - public CampaignSaveEntitiesRequest setModifiedBy(String modifiedBy) + public CampaignUUIDSaveEntitiesRequest setModifiedBy(String modifiedBy) { this.modifiedBy = modifiedBy; return this; diff --git a/src/src/main/java/com/relewise/client/model/CampaignSaveEntitiesResponse.java b/src/src/main/java/com/relewise/client/model/CampaignUUIDSaveEntitiesResponse.java similarity index 79% rename from src/src/main/java/com/relewise/client/model/CampaignSaveEntitiesResponse.java rename to src/src/main/java/com/relewise/client/model/CampaignUUIDSaveEntitiesResponse.java index 7eb3bcc9..989def58 100644 --- a/src/src/main/java/com/relewise/client/model/CampaignSaveEntitiesResponse.java +++ b/src/src/main/java/com/relewise/client/model/CampaignUUIDSaveEntitiesResponse.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class CampaignSaveEntitiesResponse extends TimedResponse +public abstract class CampaignUUIDSaveEntitiesResponse extends TimedResponse { public String $type = ""; public Campaign[] entities; @@ -30,13 +30,13 @@ public Campaign[] getEntities() { return this.entities; } - public CampaignSaveEntitiesResponse setEntities(Campaign... entities) + public CampaignUUIDSaveEntitiesResponse setEntities(Campaign... entities) { this.entities = entities; return this; } @Override - public CampaignSaveEntitiesResponse setStatistics(Statistics statistics) + public CampaignUUIDSaveEntitiesResponse setStatistics(Statistics statistics) { this.statistics = statistics; return this; diff --git a/src/src/main/java/com/relewise/client/model/CampaignsRequest.java b/src/src/main/java/com/relewise/client/model/CampaignsRequest.java index 7cd18cc4..cc933b39 100644 --- a/src/src/main/java/com/relewise/client/model/CampaignsRequest.java +++ b/src/src/main/java/com/relewise/client/model/CampaignsRequest.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = CampaignsRequest.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class CampaignsRequest extends CampaignEntityStateCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest +public class CampaignsRequest extends CampaignEntityStateUUIDCampaignMetadataValuesCampaignsRequestSortByCampaignsRequestEntityFiltersEntitiesRequest { public String $type = "Relewise.Client.Requests.RetailMedia.CampaignsRequest, Relewise.Client"; public static CampaignsRequest create(@Nullable CampaignsRequestEntityFilters filters, @Nullable CampaignsRequestSortBySorting sorting, Integer skip, Integer take) diff --git a/src/src/main/java/com/relewise/client/model/CampaignsRequestEntityFilters.java b/src/src/main/java/com/relewise/client/model/CampaignsRequestEntityFilters.java index 03200bb7..84f7347e 100644 --- a/src/src/main/java/com/relewise/client/model/CampaignsRequestEntityFilters.java +++ b/src/src/main/java/com/relewise/client/model/CampaignsRequestEntityFilters.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = CampaignsRequestEntityFilters.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class CampaignsRequestEntityFilters extends CampaignEntityStateCampaignMetadataValuesRetailMediaEntityEntityFilters +public class CampaignsRequestEntityFilters extends CampaignEntityStateUUIDCampaignMetadataValuesRetailMediaEntityEntityFilters { public String $type = "Relewise.Client.Requests.RetailMedia.CampaignsRequest+EntityFilters, Relewise.Client"; public @Nullable UUID[] ids; diff --git a/src/src/main/java/com/relewise/client/model/CampaignsResponse.java b/src/src/main/java/com/relewise/client/model/CampaignsResponse.java index 2b3e689f..aa26e947 100644 --- a/src/src/main/java/com/relewise/client/model/CampaignsResponse.java +++ b/src/src/main/java/com/relewise/client/model/CampaignsResponse.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = CampaignsResponse.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class CampaignsResponse extends CampaignCampaignEntityStateEntityResponse +public class CampaignsResponse extends CampaignUUIDCampaignEntityStateEntityResponse { public String $type = "Relewise.Client.Responses.RetailMedia.CampaignsResponse, Relewise.Client"; public static CampaignsResponse create(Campaign[] campaigns, Integer hits, HashMap hitsPerState) diff --git a/src/src/main/java/com/relewise/client/model/CartDetails.java b/src/src/main/java/com/relewise/client/model/CartDetails.java index dd999231..996c9e38 100644 --- a/src/src/main/java/com/relewise/client/model/CartDetails.java +++ b/src/src/main/java/com/relewise/client/model/CartDetails.java @@ -15,9 +15,15 @@ import java.util.Set; import java.util.HashSet; +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = CartDetails.class) @JsonIgnoreProperties(ignoreUnknown = true) public class CartDetails { + public String $type = "Relewise.Client.DataTypes.CartDetails, Relewise.Client"; public String name; public OffsetDateTime modifiedUtc; public LineItem[] lineItems; diff --git a/src/src/main/java/com/relewise/client/model/CartDetailsSelectedPropertiesSettings.java b/src/src/main/java/com/relewise/client/model/CartDetailsSelectedPropertiesSettings.java new file mode 100644 index 00000000..5597f6fc --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/CartDetailsSelectedPropertiesSettings.java @@ -0,0 +1,78 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = CartDetailsSelectedPropertiesSettings.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class CartDetailsSelectedPropertiesSettings +{ + public String $type = "Relewise.Client.DataTypes.CartDetails+SelectedPropertiesSettings, Relewise.Client"; + public Boolean allData; + public @Nullable String[] dataKeys; + public @Nullable LineItemSelectedPropertiesSettings lineItems; + public static CartDetailsSelectedPropertiesSettings create() + { + return new CartDetailsSelectedPropertiesSettings(); + } + public CartDetailsSelectedPropertiesSettings() + { + } + public Boolean getAllData() + { + return this.allData; + } + public @Nullable String[] getDataKeys() + { + return this.dataKeys; + } + public @Nullable LineItemSelectedPropertiesSettings getLineItems() + { + return this.lineItems; + } + public CartDetailsSelectedPropertiesSettings setAllData(Boolean allData) + { + this.allData = allData; + return this; + } + public CartDetailsSelectedPropertiesSettings setDataKeys(String... dataKeys) + { + this.dataKeys = dataKeys; + return this; + } + public CartDetailsSelectedPropertiesSettings addToDataKeys(String dataKey) + { + if (this.dataKeys == null) + { + this.dataKeys = new String[] { dataKey }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.dataKeys)); + existingList.add(dataKey); + this.dataKeys = existingList.toArray(new String[0]); + } + return this; + } + public CartDetailsSelectedPropertiesSettings setLineItems(@Nullable LineItemSelectedPropertiesSettings lineItems) + { + this.lineItems = lineItems; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/ClickedByUserInfo.java b/src/src/main/java/com/relewise/client/model/ClickedByUserInfo.java new file mode 100644 index 00000000..13c525ed --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/ClickedByUserInfo.java @@ -0,0 +1,53 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class ClickedByUserInfo +{ + public OffsetDateTime mostRecentlyClickedUtc; + public Integer totalNumberOfTimesClicked; + public static ClickedByUserInfo create(OffsetDateTime mostRecentlyClickedUtc, Integer totalNumberOfTimesClicked) + { + return new ClickedByUserInfo(mostRecentlyClickedUtc, totalNumberOfTimesClicked); + } + public ClickedByUserInfo(OffsetDateTime mostRecentlyClickedUtc, Integer totalNumberOfTimesClicked) + { + this.mostRecentlyClickedUtc = mostRecentlyClickedUtc; + this.totalNumberOfTimesClicked = totalNumberOfTimesClicked; + } + public ClickedByUserInfo() + { + } + public OffsetDateTime getMostRecentlyClickedUtc() + { + return this.mostRecentlyClickedUtc; + } + public Integer getTotalNumberOfTimesClicked() + { + return this.totalNumberOfTimesClicked; + } + public ClickedByUserInfo setMostRecentlyClickedUtc(OffsetDateTime mostRecentlyClickedUtc) + { + this.mostRecentlyClickedUtc = mostRecentlyClickedUtc; + return this; + } + public ClickedByUserInfo setTotalNumberOfTimesClicked(Integer totalNumberOfTimesClicked) + { + this.totalNumberOfTimesClicked = totalNumberOfTimesClicked; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/CompanyScope.java b/src/src/main/java/com/relewise/client/model/CompanyScope.java new file mode 100644 index 00000000..2493a039 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/CompanyScope.java @@ -0,0 +1,36 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Specifies what company/companies should be targeted. */ +public enum CompanyScope +{ + ImmediateCompany { + public String toString() { + return "ImmediateCompany"; + } + }, + ParentCompany { + public String toString() { + return "ParentCompany"; + } + }, + ImmediateOrParentCompany { + public String toString() { + return "ImmediateOrParentCompany"; + } + }, +} diff --git a/src/src/main/java/com/relewise/client/model/ContentEngagement.java b/src/src/main/java/com/relewise/client/model/ContentEngagement.java new file mode 100644 index 00000000..2696364c --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/ContentEngagement.java @@ -0,0 +1,82 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Represents an engagement (sentiment feedback, etc.) performed by a User on a specific content item. Instances are validated on construction and can be sent through the tracking API. */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = ContentEngagement.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class ContentEngagement extends Trackable implements IUserIdentifier +{ + public String $type = "Relewise.Client.DataTypes.ContentEngagement, Relewise.Client"; + /** The user associated with the engagement. */ + public @Nullable User user; + /** The identifier of the content the engagement concerns. Must be non-null and non-empty. */ + public String id; + /** The engagement payload describing the sentiment/favorite signal for the content. */ + public ContentEngagementData engagement; + /** Initializes a new ContentEngagement. */ + public static ContentEngagement create(@Nullable User user, String id, ContentEngagementData engagement) + { + return new ContentEngagement(user, id, engagement); + } + /** Initializes a new ContentEngagement. */ + public ContentEngagement(@Nullable User user, String id, ContentEngagementData engagement) + { + this.user = user; + this.id = id; + this.engagement = engagement; + } + public ContentEngagement() + { + } + /** The user associated with the engagement. */ + public @Nullable User getUser() + { + return this.user; + } + /** The identifier of the content the engagement concerns. Must be non-null and non-empty. */ + public String getId() + { + return this.id; + } + /** The engagement payload describing the sentiment/favorite signal for the content. */ + public ContentEngagementData getEngagement() + { + return this.engagement; + } + /** The user associated with the engagement. */ + public ContentEngagement setUser(@Nullable User user) + { + this.user = user; + return this; + } + /** The identifier of the content the engagement concerns. Must be non-null and non-empty. */ + public ContentEngagement setId(String id) + { + this.id = id; + return this; + } + /** The engagement payload describing the sentiment/favorite signal for the content. */ + public ContentEngagement setEngagement(ContentEngagementData engagement) + { + this.engagement = engagement; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/ContentEngagementData.java b/src/src/main/java/com/relewise/client/model/ContentEngagementData.java new file mode 100644 index 00000000..2626a2e4 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/ContentEngagementData.java @@ -0,0 +1,60 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Engagement payload describing the sentiment/favorite signals towards the content. */ +@JsonIgnoreProperties(ignoreUnknown = true) +public class ContentEngagementData +{ + public @Nullable ContentEngagementDataSentimentKind sentiment; + public @Nullable Boolean isFavorite; + public static ContentEngagementData create() + { + return new ContentEngagementData(); + } + public ContentEngagementData() + { + this.sentiment = null; + this.isFavorite = null; + } + public static ContentEngagementData create(@Nullable ContentEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite) + { + return new ContentEngagementData(sentiment, isFavorite); + } + public ContentEngagementData(@Nullable ContentEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite) + { + this.sentiment = sentiment; + this.isFavorite = isFavorite; + } + public @Nullable ContentEngagementDataSentimentKind getSentiment() + { + return this.sentiment; + } + public @Nullable Boolean getIsFavorite() + { + return this.isFavorite; + } + public ContentEngagementData setSentiment(@Nullable ContentEngagementDataSentimentKind sentiment) + { + this.sentiment = sentiment; + return this; + } + public ContentEngagementData setIsFavorite(@Nullable Boolean isFavorite) + { + this.isFavorite = isFavorite; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/ContentEngagementDataSentimentKind.java b/src/src/main/java/com/relewise/client/model/ContentEngagementDataSentimentKind.java new file mode 100644 index 00000000..0dd0c535 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/ContentEngagementDataSentimentKind.java @@ -0,0 +1,35 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +public enum ContentEngagementDataSentimentKind +{ + Neutral { + public String toString() { + return "Neutral"; + } + }, + Like { + public String toString() { + return "Like"; + } + }, + Dislike { + public String toString() { + return "Dislike"; + } + }, +} diff --git a/src/src/main/java/com/relewise/client/model/ContentEngagementFilter.java b/src/src/main/java/com/relewise/client/model/ContentEngagementFilter.java new file mode 100644 index 00000000..6cef2f22 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/ContentEngagementFilter.java @@ -0,0 +1,102 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Filters content results by previously tracked engagement signals such as sentiment or favorites. */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = ContentEngagementFilter.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class ContentEngagementFilter extends Filter implements IContentFilter +{ + public String $type = "Relewise.Client.Requests.Filters.ContentEngagementFilter, Relewise.Client"; + /** Specifies the sentiment that must have been recorded for the content. */ + public @Nullable ContentEngagementDataSentimentKind sentiment; + /** Specifies whether the content must be marked as a favorite by the user. */ + public @Nullable Boolean isFavorite; + public static ContentEngagementFilter create(@Nullable ContentEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite) + { + return new ContentEngagementFilter(sentiment, isFavorite); + } + public ContentEngagementFilter(@Nullable ContentEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite) + { + this.sentiment = sentiment; + this.isFavorite = isFavorite; + this.negated = false; + } + /** + * Initializes a new instance of the ContentEngagementFilter class. + * @param sentiment Optional sentiment requirement. Pass + * @param isFavorite Optional favorite requirement. Pass + * @param negated Set to + */ + public static ContentEngagementFilter create(@Nullable ContentEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite, Boolean negated) + { + return new ContentEngagementFilter(sentiment, isFavorite, negated); + } + /** + * Initializes a new instance of the ContentEngagementFilter class. + * @param sentiment Optional sentiment requirement. Pass + * @param isFavorite Optional favorite requirement. Pass + * @param negated Set to + */ + public ContentEngagementFilter(@Nullable ContentEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite, Boolean negated) + { + this.sentiment = sentiment; + this.isFavorite = isFavorite; + this.negated = negated; + } + public ContentEngagementFilter() + { + this.negated = false; + } + /** Specifies the sentiment that must have been recorded for the content. */ + public @Nullable ContentEngagementDataSentimentKind getSentiment() + { + return this.sentiment; + } + /** Specifies whether the content must be marked as a favorite by the user. */ + public @Nullable Boolean getIsFavorite() + { + return this.isFavorite; + } + /** Specifies the sentiment that must have been recorded for the content. */ + public ContentEngagementFilter setSentiment(@Nullable ContentEngagementDataSentimentKind sentiment) + { + this.sentiment = sentiment; + return this; + } + /** Specifies whether the content must be marked as a favorite by the user. */ + public ContentEngagementFilter setIsFavorite(@Nullable Boolean isFavorite) + { + this.isFavorite = isFavorite; + return this; + } + @Override + public ContentEngagementFilter setNegated(Boolean negated) + { + this.negated = negated; + return this; + } + @Override + public ContentEngagementFilter setSettings(@Nullable FilterSettings settings) + { + this.settings = settings; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/ContentEngagementRelevanceModifier.java b/src/src/main/java/com/relewise/client/model/ContentEngagementRelevanceModifier.java new file mode 100644 index 00000000..2949a076 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/ContentEngagementRelevanceModifier.java @@ -0,0 +1,127 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** A RelevanceModifier that multiplies the relevance of content based on the current user's engagement data. */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = ContentEngagementRelevanceModifier.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class ContentEngagementRelevanceModifier extends RelevanceModifier implements IContentRelevanceModifier +{ + public String $type = "Relewise.Client.Requests.RelevanceModifiers.ContentEngagementRelevanceModifier, Relewise.Client"; + /** The sentiment that must match for MultiplyWeightBy to apply. */ + public @Nullable ContentEngagementDataSentimentKind sentiment; + /** The favorite flag that must match for MultiplyWeightBy to apply. */ + public @Nullable Boolean isFavorite; + /** The multiplier applied when the modifier condition is satisfied (or when it is not satisfied if Negated is true). */ + public Double multiplyWeightBy; + /** When set to true, the multiplier applies when the condition is not satisfied instead of when it matches. */ + public Boolean negated; + public static ContentEngagementRelevanceModifier create(@Nullable ContentEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite) + { + return new ContentEngagementRelevanceModifier(sentiment, isFavorite); + } + public ContentEngagementRelevanceModifier(@Nullable ContentEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite) + { + this.sentiment = sentiment; + this.isFavorite = isFavorite; + this.multiplyWeightBy = 1d; + this.negated = false; + } + /** + * Creates a new ContentEngagementRelevanceModifier. + * @param sentiment The sentiment that must match for MultiplyWeightBy to apply. + * @param isFavorite The favorite flag that must match for MultiplyWeightBy to apply. + * @param multiplyWeightBy The multiplier applied when the modifier condition is satisfied (or when it is not satisfied if Negated is true). + * @param negated When set to true, the multiplier applies when the condition is not satisfied instead of when it matches. + */ + public static ContentEngagementRelevanceModifier create(@Nullable ContentEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite, Double multiplyWeightBy, Boolean negated) + { + return new ContentEngagementRelevanceModifier(sentiment, isFavorite, multiplyWeightBy, negated); + } + /** + * Creates a new ContentEngagementRelevanceModifier. + * @param sentiment The sentiment that must match for MultiplyWeightBy to apply. + * @param isFavorite The favorite flag that must match for MultiplyWeightBy to apply. + * @param multiplyWeightBy The multiplier applied when the modifier condition is satisfied (or when it is not satisfied if Negated is true). + * @param negated When set to true, the multiplier applies when the condition is not satisfied instead of when it matches. + */ + public ContentEngagementRelevanceModifier(@Nullable ContentEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite, Double multiplyWeightBy, Boolean negated) + { + this.sentiment = sentiment; + this.isFavorite = isFavorite; + this.multiplyWeightBy = multiplyWeightBy; + this.negated = negated; + } + public ContentEngagementRelevanceModifier() + { + this.multiplyWeightBy = 1d; + this.negated = false; + } + /** The sentiment that must match for MultiplyWeightBy to apply. */ + public @Nullable ContentEngagementDataSentimentKind getSentiment() + { + return this.sentiment; + } + /** The favorite flag that must match for MultiplyWeightBy to apply. */ + public @Nullable Boolean getIsFavorite() + { + return this.isFavorite; + } + /** The multiplier applied when the modifier condition is satisfied (or when it is not satisfied if Negated is true). */ + public Double getMultiplyWeightBy() + { + return this.multiplyWeightBy; + } + /** When set to true, the multiplier applies when the condition is not satisfied instead of when it matches. */ + public Boolean getNegated() + { + return this.negated; + } + /** The sentiment that must match for MultiplyWeightBy to apply. */ + public ContentEngagementRelevanceModifier setSentiment(@Nullable ContentEngagementDataSentimentKind sentiment) + { + this.sentiment = sentiment; + return this; + } + /** The favorite flag that must match for MultiplyWeightBy to apply. */ + public ContentEngagementRelevanceModifier setIsFavorite(@Nullable Boolean isFavorite) + { + this.isFavorite = isFavorite; + return this; + } + /** The multiplier applied when the modifier condition is satisfied (or when it is not satisfied if Negated is true). */ + public ContentEngagementRelevanceModifier setMultiplyWeightBy(Double multiplyWeightBy) + { + this.multiplyWeightBy = multiplyWeightBy; + return this; + } + /** When set to true, the multiplier applies when the condition is not satisfied instead of when it matches. */ + public ContentEngagementRelevanceModifier setNegated(Boolean negated) + { + this.negated = negated; + return this; + } + @Override + public ContentEngagementRelevanceModifier setFilters(FilterCollection filters) + { + this.filters = filters; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/ContentResult.java b/src/src/main/java/com/relewise/client/model/ContentResult.java index 03ad20f3..3bc7f2bf 100644 --- a/src/src/main/java/com/relewise/client/model/ContentResult.java +++ b/src/src/main/java/com/relewise/client/model/ContentResult.java @@ -26,6 +26,8 @@ public class ContentResult public CategoryPathResult[] categoryPaths; public ViewedByUserInfo viewedByUser; public @Nullable HighlightResult highlight; + /** Contains engagement signals recorded for the current user on this content item. Populated only when explicitly requested via UserEngagement. */ + public @Nullable ContentEngagementData userEngagement; public static ContentResult create(String contentId, Integer rank) { return new ContentResult(contentId, rank); @@ -70,6 +72,11 @@ public ViewedByUserInfo getViewedByUser() { return this.highlight; } + /** Contains engagement signals recorded for the current user on this content item. Populated only when explicitly requested via UserEngagement. */ + public @Nullable ContentEngagementData getUserEngagement() + { + return this.userEngagement; + } public ContentResult setContentId(String contentId) { this.contentId = contentId; @@ -147,4 +154,10 @@ public ContentResult setHighlight(@Nullable HighlightResult highlight) this.highlight = highlight; return this; } + /** Contains engagement signals recorded for the current user on this content item. Populated only when explicitly requested via UserEngagement. */ + public ContentResult setUserEngagement(@Nullable ContentEngagementData userEngagement) + { + this.userEngagement = userEngagement; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/ContentResultDetails.java b/src/src/main/java/com/relewise/client/model/ContentResultDetails.java index 9690f577..4531f658 100644 --- a/src/src/main/java/com/relewise/client/model/ContentResultDetails.java +++ b/src/src/main/java/com/relewise/client/model/ContentResultDetails.java @@ -30,6 +30,8 @@ public class ContentResultDetails public Integer viewedByDifferentNumberOfUsers; public Boolean disabled; public Boolean deleted; + /** Contains engagement signals (sentiment and favorite state) recorded for the current user on this content item. Populated only when the request sets UserEngagement to true. */ + public @Nullable ContentEngagementData userEngagement; public static ContentResultDetails create(String contentId) { return new ContentResultDetails(contentId); @@ -89,6 +91,11 @@ public Boolean getDeleted() { return this.deleted; } + /** Contains engagement signals (sentiment and favorite state) recorded for the current user on this content item. Populated only when the request sets UserEngagement to true. */ + public @Nullable ContentEngagementData getUserEngagement() + { + return this.userEngagement; + } public ContentResultDetails setContentId(String contentId) { this.contentId = contentId; @@ -186,4 +193,10 @@ public ContentResultDetails setDeleted(Boolean deleted) this.deleted = deleted; return this; } + /** Contains engagement signals (sentiment and favorite state) recorded for the current user on this content item. Populated only when the request sets UserEngagement to true. */ + public ContentResultDetails setUserEngagement(@Nullable ContentEngagementData userEngagement) + { + this.userEngagement = userEngagement; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/DisplayAd.java b/src/src/main/java/com/relewise/client/model/DisplayAd.java new file mode 100644 index 00000000..b98bae93 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAd.java @@ -0,0 +1,122 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAd.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAd extends DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntity +{ + public String $type = "Relewise.Client.DataTypes.RetailMedia.Entities.DisplayAd, Relewise.Client"; + public String name; + public UUID advertiserId; + public UUID templateId; + public @Nullable HashMap data; + public static DisplayAd create(String id, DisplayAdEntityState state, String name, UUID advertiserId, UUID templateId, HashMap data) + { + return new DisplayAd(id, state, name, advertiserId, templateId, data); + } + public DisplayAd(String id, DisplayAdEntityState state, String name, UUID advertiserId, UUID templateId, HashMap data) + { + this.id = id; + this.state = state; + this.name = name; + this.advertiserId = advertiserId; + this.templateId = templateId; + this.data = data; + } + public static DisplayAd create(String id, DisplayAdEntityState state, String name, UUID advertiserId, UUID templateId) + { + return new DisplayAd(id, state, name, advertiserId, templateId); + } + public DisplayAd(String id, DisplayAdEntityState state, String name, UUID advertiserId, UUID templateId) + { + this.id = id; + this.state = state; + this.name = name; + this.advertiserId = advertiserId; + this.templateId = templateId; + } + public DisplayAd() + { + } + public String getName() + { + return this.name; + } + public UUID getAdvertiserId() + { + return this.advertiserId; + } + public UUID getTemplateId() + { + return this.templateId; + } + public @Nullable HashMap getData() + { + return this.data; + } + public DisplayAd setName(String name) + { + this.name = name; + return this; + } + public DisplayAd setAdvertiserId(UUID advertiserId) + { + this.advertiserId = advertiserId; + return this; + } + public DisplayAd setTemplateId(UUID templateId) + { + this.templateId = templateId; + return this; + } + public DisplayAd addToData(String key, DataValue value) + { + if (this.data == null) + { + this.data = new HashMap<>(); + } + this.data.put(key, value); + return this; + } + public DisplayAd setData(@Nullable HashMap data) + { + this.data = data; + return this; + } + @Override + public DisplayAd setState(DisplayAdEntityState state) + { + this.state = state; + return this; + } + @Override + public DisplayAd setMetadata(DisplayAdMetadataValues metadata) + { + this.metadata = metadata; + return this; + } + @Override + public DisplayAd setId(String id) + { + this.id = id; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdClick.java b/src/src/main/java/com/relewise/client/model/DisplayAdClick.java new file mode 100644 index 00000000..1472bbf6 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdClick.java @@ -0,0 +1,70 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAdClick.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdClick extends Trackable +{ + public String $type = "Relewise.Client.DataTypes.DisplayAdClick, Relewise.Client"; + public @Nullable User user; + public String displayAdId; + public UUID campaignId; + public static DisplayAdClick create(@Nullable User user, String displayAdId, UUID campaignId) + { + return new DisplayAdClick(user, displayAdId, campaignId); + } + public DisplayAdClick(@Nullable User user, String displayAdId, UUID campaignId) + { + this.user = user; + this.displayAdId = displayAdId; + this.campaignId = campaignId; + } + public DisplayAdClick() + { + } + public @Nullable User getUser() + { + return this.user; + } + public String getDisplayAdId() + { + return this.displayAdId; + } + public UUID getCampaignId() + { + return this.campaignId; + } + public DisplayAdClick setUser(@Nullable User user) + { + this.user = user; + return this; + } + public DisplayAdClick setDisplayAdId(String displayAdId) + { + this.displayAdId = displayAdId; + return this; + } + public DisplayAdClick setCampaignId(UUID campaignId) + { + this.campaignId = campaignId; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdDataFilter.java b/src/src/main/java/com/relewise/client/model/DisplayAdDataFilter.java new file mode 100644 index 00000000..fb0d9322 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdDataFilter.java @@ -0,0 +1,157 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAdDataFilter.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdDataFilter extends DataFilter implements IDisplayAdFilter +{ + public String $type = "Relewise.Client.Requests.Filters.DisplayAdDataFilter, Relewise.Client"; + public static DisplayAdDataFilter create(String key, String... objectPath) + { + return new DisplayAdDataFilter(key, objectPath); + } + public DisplayAdDataFilter(String key, String... objectPath) + { + this.key = key; + this.objectPath = objectPath; + this.conditions = null; + this.mustMatchAllConditions = true; + this.filterOutIfKeyIsNotFound = true; + this.language = null; + this.currency = null; + } + public static DisplayAdDataFilter create(String key, @Nullable String[] objectPath, @Nullable ValueConditionCollection conditions, Boolean mustMatchAllConditions, Boolean filterOutIfKeyIsNotFound, @Nullable Language language, @Nullable Currency currency) + { + return new DisplayAdDataFilter(key, objectPath, conditions, mustMatchAllConditions, filterOutIfKeyIsNotFound, language, currency); + } + public DisplayAdDataFilter(String key, @Nullable String[] objectPath, @Nullable ValueConditionCollection conditions, Boolean mustMatchAllConditions, Boolean filterOutIfKeyIsNotFound, @Nullable Language language, @Nullable Currency currency) + { + this.key = key; + this.objectPath = objectPath; + this.conditions = conditions; + this.mustMatchAllConditions = mustMatchAllConditions; + this.filterOutIfKeyIsNotFound = filterOutIfKeyIsNotFound; + this.language = language; + this.currency = currency; + } + public static DisplayAdDataFilter create(String key) + { + return new DisplayAdDataFilter(key); + } + public DisplayAdDataFilter(String key) + { + this.key = key; + this.conditions = null; + this.mustMatchAllConditions = true; + this.filterOutIfKeyIsNotFound = true; + this.language = null; + this.currency = null; + } + public static DisplayAdDataFilter create(String key, @Nullable ValueConditionCollection conditions, Boolean mustMatchAllConditions, Boolean filterOutIfKeyIsNotFound, @Nullable Language language, @Nullable Currency currency) + { + return new DisplayAdDataFilter(key, conditions, mustMatchAllConditions, filterOutIfKeyIsNotFound, language, currency); + } + public DisplayAdDataFilter(String key, @Nullable ValueConditionCollection conditions, Boolean mustMatchAllConditions, Boolean filterOutIfKeyIsNotFound, @Nullable Language language, @Nullable Currency currency) + { + this.key = key; + this.conditions = conditions; + this.mustMatchAllConditions = mustMatchAllConditions; + this.filterOutIfKeyIsNotFound = filterOutIfKeyIsNotFound; + this.language = language; + this.currency = currency; + } + public DisplayAdDataFilter() + { + this.filterOutIfKeyIsNotFound = true; + this.mustMatchAllConditions = true; + this.conditions = null; + this.language = null; + this.currency = null; + } + @Override + public DisplayAdDataFilter setKey(String key) + { + this.key = key; + return this; + } + @Override + public DisplayAdDataFilter setFilterOutIfKeyIsNotFound(Boolean filterOutIfKeyIsNotFound) + { + this.filterOutIfKeyIsNotFound = filterOutIfKeyIsNotFound; + return this; + } + @Override + public DisplayAdDataFilter setMustMatchAllConditions(Boolean mustMatchAllConditions) + { + this.mustMatchAllConditions = mustMatchAllConditions; + return this; + } + @Override + public DisplayAdDataFilter setConditions(@Nullable ValueConditionCollection conditions) + { + this.conditions = conditions; + return this; + } + @Override + public DisplayAdDataFilter setLanguage(@Nullable Language language) + { + this.language = language; + return this; + } + @Override + public DisplayAdDataFilter setCurrency(@Nullable Currency currency) + { + this.currency = currency; + return this; + } + @Override + public DisplayAdDataFilter setObjectPath(String... objectPath) + { + this.objectPath = objectPath; + return this; + } + public DisplayAdDataFilter addToObjectPath(String objectPath) + { + if (this.objectPath == null) + { + this.objectPath = new String[] { objectPath }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.objectPath)); + existingList.add(objectPath); + this.objectPath = existingList.toArray(new String[0]); + } + return this; + } + @Override + public DisplayAdDataFilter setNegated(Boolean negated) + { + this.negated = negated; + return this; + } + @Override + public DisplayAdDataFilter setSettings(@Nullable FilterSettings settings) + { + this.settings = settings; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdEntityState.java b/src/src/main/java/com/relewise/client/model/DisplayAdEntityState.java new file mode 100644 index 00000000..b7d4288d --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdEntityState.java @@ -0,0 +1,35 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +public enum DisplayAdEntityState +{ + Active { + public String toString() { + return "Active"; + } + }, + Inactive { + public String toString() { + return "Inactive"; + } + }, + Archived { + public String toString() { + return "Archived"; + } + }, +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdEntityStateStringDisplayAdMetadataValuesDisplayAdsRequestSortByDisplayAdsRequestEntityFiltersEntitiesRequest.java b/src/src/main/java/com/relewise/client/model/DisplayAdEntityStateStringDisplayAdMetadataValuesDisplayAdsRequestSortByDisplayAdsRequestEntityFiltersEntitiesRequest.java new file mode 100644 index 00000000..93776919 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdEntityStateStringDisplayAdMetadataValuesDisplayAdsRequestSortByDisplayAdsRequestEntityFiltersEntitiesRequest.java @@ -0,0 +1,68 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type") +@JsonSubTypes({ +}) +@JsonIgnoreProperties(ignoreUnknown = true) +public abstract class DisplayAdEntityStateStringDisplayAdMetadataValuesDisplayAdsRequestSortByDisplayAdsRequestEntityFiltersEntitiesRequest extends LicensedRequest +{ + public String $type = ""; + public @Nullable DisplayAdsRequestEntityFilters filters; + public @Nullable DisplayAdsRequestSortBySorting sorting; + public Integer skip; + public Integer take; + public @Nullable DisplayAdsRequestEntityFilters getFilters() + { + return this.filters; + } + public @Nullable DisplayAdsRequestSortBySorting getSorting() + { + return this.sorting; + } + public Integer getSkip() + { + return this.skip; + } + public Integer getTake() + { + return this.take; + } + public DisplayAdEntityStateStringDisplayAdMetadataValuesDisplayAdsRequestSortByDisplayAdsRequestEntityFiltersEntitiesRequest setFilters(@Nullable DisplayAdsRequestEntityFilters filters) + { + this.filters = filters; + return this; + } + public DisplayAdEntityStateStringDisplayAdMetadataValuesDisplayAdsRequestSortByDisplayAdsRequestEntityFiltersEntitiesRequest setSorting(@Nullable DisplayAdsRequestSortBySorting sorting) + { + this.sorting = sorting; + return this; + } + public DisplayAdEntityStateStringDisplayAdMetadataValuesDisplayAdsRequestSortByDisplayAdsRequestEntityFiltersEntitiesRequest setSkip(Integer skip) + { + this.skip = skip; + return this; + } + public DisplayAdEntityStateStringDisplayAdMetadataValuesDisplayAdsRequestSortByDisplayAdsRequestEntityFiltersEntitiesRequest setTake(Integer take) + { + this.take = take; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntity.java b/src/src/main/java/com/relewise/client/model/DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntity.java new file mode 100644 index 00000000..f2ef002b --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntity.java @@ -0,0 +1,57 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type") +@JsonSubTypes({ +}) +@JsonIgnoreProperties(ignoreUnknown = true) +public abstract class DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntity extends StringRetailMediaEntity +{ + public String $type = ""; + public DisplayAdEntityState state; + /** Managed server side only, manually setting this will have no effect */ + public DisplayAdMetadataValues metadata; + public DisplayAdEntityState getState() + { + return this.state; + } + /** Managed server side only, manually setting this will have no effect */ + public DisplayAdMetadataValues getMetadata() + { + return this.metadata; + } + public DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntity setState(DisplayAdEntityState state) + { + this.state = state; + return this; + } + /** Managed server side only, manually setting this will have no effect */ + public DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntity setMetadata(DisplayAdMetadataValues metadata) + { + this.metadata = metadata; + return this; + } + @Override + public DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntity setId(@Nullable String id) + { + this.id = id; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntityEntityFilters.java b/src/src/main/java/com/relewise/client/model/DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntityEntityFilters.java new file mode 100644 index 00000000..b6d4de3c --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntityEntityFilters.java @@ -0,0 +1,48 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type") +@JsonSubTypes({ +}) +@JsonIgnoreProperties(ignoreUnknown = true) +public abstract class DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntityEntityFilters +{ + public String $type = ""; + public @Nullable String term; + public @Nullable DisplayAdEntityState[] states; + public @Nullable String getTerm() + { + return this.term; + } + public @Nullable DisplayAdEntityState[] getStates() + { + return this.states; + } + public DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntityEntityFilters setTerm(@Nullable String term) + { + this.term = term; + return this; + } + public DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntityEntityFilters setStates(DisplayAdEntityState... states) + { + this.states = states; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdIdFilter.java b/src/src/main/java/com/relewise/client/model/DisplayAdIdFilter.java new file mode 100644 index 00000000..6ffee581 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdIdFilter.java @@ -0,0 +1,74 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAdIdFilter.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdIdFilter extends Filter implements IDisplayAdFilter +{ + public String $type = "Relewise.Client.Requests.Filters.DisplayAdIdFilter, Relewise.Client"; + public @Nullable ArrayList ids; + public static DisplayAdIdFilter create() + { + return new DisplayAdIdFilter(); + } + public DisplayAdIdFilter() + { + this.negated = false; + } + public static DisplayAdIdFilter create(Boolean negated) + { + return new DisplayAdIdFilter(negated); + } + public DisplayAdIdFilter(Boolean negated) + { + this.negated = negated; + } + public @Nullable ArrayList getIds() + { + return this.ids; + } + public DisplayAdIdFilter setIds(String... ids) + { + this.ids = new ArrayList<>(Arrays.asList(ids));; + return this; + } + public DisplayAdIdFilter addToIds(String ids) + { + if (this.ids == null) + { + this.ids = new ArrayList<>(); + } + this.ids.add(ids); + return this; + } + @Override + public DisplayAdIdFilter setNegated(Boolean negated) + { + this.negated = negated; + return this; + } + @Override + public DisplayAdIdFilter setSettings(@Nullable FilterSettings settings) + { + this.settings = settings; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdMetadataValues.java b/src/src/main/java/com/relewise/client/model/DisplayAdMetadataValues.java new file mode 100644 index 00000000..5f1ebf4a --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdMetadataValues.java @@ -0,0 +1,58 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAdMetadataValues.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdMetadataValues extends MetadataValues +{ + public String $type = "Relewise.Client.DataTypes.RetailMedia.Entities.DisplayAd+MetadataValues, Relewise.Client"; + public static DisplayAdMetadataValues create() + { + return new DisplayAdMetadataValues(); + } + public DisplayAdMetadataValues() + { + } + @Override + public DisplayAdMetadataValues setCreated(OffsetDateTime created) + { + this.created = created; + return this; + } + @Override + public DisplayAdMetadataValues setCreatedBy(String createdBy) + { + this.createdBy = createdBy; + return this; + } + @Override + public DisplayAdMetadataValues setModified(OffsetDateTime modified) + { + this.modified = modified; + return this; + } + @Override + public DisplayAdMetadataValues setModifiedBy(String modifiedBy) + { + this.modifiedBy = modifiedBy; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdPromotion.java b/src/src/main/java/com/relewise/client/model/DisplayAdPromotion.java new file mode 100644 index 00000000..4d88eb68 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdPromotion.java @@ -0,0 +1,92 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAdPromotion.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdPromotion extends Promotion +{ + public String $type = "Relewise.Client.DataTypes.RetailMedia.DisplayAdPromotion, Relewise.Client"; + /** Filters matching the products in the search result to allow this promotion to be in play */ + public @Nullable FilterCollection productFilters; + /** The condition search must match to have DisplayAdPromotion activated. */ + public @Nullable DisplayAdPromotionPromotionConditions conditions; + /** Filters matching the display ads to be promoted */ + public @Nullable FilterCollection displayAdFilters; + public static DisplayAdPromotion create(String name, @Nullable FilterCollection productFilters, @Nullable FilterCollection displayAdFilters, @Nullable PromotionLocationCollection locations) + { + return new DisplayAdPromotion(name, productFilters, displayAdFilters, locations); + } + public DisplayAdPromotion(String name, @Nullable FilterCollection productFilters, @Nullable FilterCollection displayAdFilters, @Nullable PromotionLocationCollection locations) + { + this.name = name; + this.productFilters = productFilters; + this.displayAdFilters = displayAdFilters; + this.locations = locations; + } + public DisplayAdPromotion() + { + } + /** Filters matching the products in the search result to allow this promotion to be in play */ + public @Nullable FilterCollection getProductFilters() + { + return this.productFilters; + } + /** The condition search must match to have DisplayAdPromotion activated. */ + public @Nullable DisplayAdPromotionPromotionConditions getConditions() + { + return this.conditions; + } + /** Filters matching the display ads to be promoted */ + public @Nullable FilterCollection getDisplayAdFilters() + { + return this.displayAdFilters; + } + /** Filters matching the products in the search result to allow this promotion to be in play */ + public DisplayAdPromotion setProductFilters(@Nullable FilterCollection productFilters) + { + this.productFilters = productFilters; + return this; + } + /** The condition search must match to have DisplayAdPromotion activated. */ + public DisplayAdPromotion setConditions(@Nullable DisplayAdPromotionPromotionConditions conditions) + { + this.conditions = conditions; + return this; + } + /** Filters matching the display ads to be promoted */ + public DisplayAdPromotion setDisplayAdFilters(@Nullable FilterCollection displayAdFilters) + { + this.displayAdFilters = displayAdFilters; + return this; + } + @Override + public DisplayAdPromotion setName(String name) + { + this.name = name; + return this; + } + @Override + public DisplayAdPromotion setLocations(@Nullable PromotionLocationCollection locations) + { + this.locations = locations; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdPromotionPromotionConditions.java b/src/src/main/java/com/relewise/client/model/DisplayAdPromotionPromotionConditions.java new file mode 100644 index 00000000..8f9e9fbd --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdPromotionPromotionConditions.java @@ -0,0 +1,54 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAdPromotionPromotionConditions.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdPromotionPromotionConditions extends RetailMediaConditions +{ + public String $type = "Relewise.Client.DataTypes.RetailMedia.DisplayAdPromotion+PromotionConditions, Relewise.Client"; + public @Nullable SearchTermConditionByLanguageCollection searchTerm; + public @Nullable RequestFilterCriteria requestFilters; + public static DisplayAdPromotionPromotionConditions create() + { + return new DisplayAdPromotionPromotionConditions(); + } + public DisplayAdPromotionPromotionConditions() + { + } + public @Nullable SearchTermConditionByLanguageCollection getSearchTerm() + { + return this.searchTerm; + } + public @Nullable RequestFilterCriteria getRequestFilters() + { + return this.requestFilters; + } + public DisplayAdPromotionPromotionConditions setSearchTerm(@Nullable SearchTermConditionByLanguageCollection searchTerm) + { + this.searchTerm = searchTerm; + return this; + } + public DisplayAdPromotionPromotionConditions setRequestFilters(@Nullable RequestFilterCriteria requestFilters) + { + this.requestFilters = requestFilters; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdPromotionSpecification.java b/src/src/main/java/com/relewise/client/model/DisplayAdPromotionSpecification.java new file mode 100644 index 00000000..5872eab3 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdPromotionSpecification.java @@ -0,0 +1,81 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Used for specifying that this kind of promotion is allowed at a specific Location as well as for specific advertisers */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAdPromotionSpecification.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdPromotionSpecification extends PromotionSpecification +{ + public String $type = "Relewise.Client.DataTypes.RetailMedia.DisplayAdPromotion+Specification, Relewise.Client"; + /** The DisplayAdTemplate Ids that are valid to promote */ + public @Nullable UUID[] promotableDisplayAdTemplateIds; + /** The DisplayAdTemplates found via filters that are valid to promote */ + public @Nullable FilterCollection promotableDisplayAdTemplateFilters; + public static DisplayAdPromotionSpecification create(@Nullable UUID[] promotableDisplayAdTemplateIds, @Nullable FilterCollection promotableDisplayAdTemplateFilters) + { + return new DisplayAdPromotionSpecification(promotableDisplayAdTemplateIds, promotableDisplayAdTemplateFilters); + } + public DisplayAdPromotionSpecification(@Nullable UUID[] promotableDisplayAdTemplateIds, @Nullable FilterCollection promotableDisplayAdTemplateFilters) + { + this.promotableDisplayAdTemplateIds = promotableDisplayAdTemplateIds; + this.promotableDisplayAdTemplateFilters = promotableDisplayAdTemplateFilters; + } + public DisplayAdPromotionSpecification() + { + } + /** The DisplayAdTemplate Ids that are valid to promote */ + public @Nullable UUID[] getPromotableDisplayAdTemplateIds() + { + return this.promotableDisplayAdTemplateIds; + } + /** The DisplayAdTemplates found via filters that are valid to promote */ + public @Nullable FilterCollection getPromotableDisplayAdTemplateFilters() + { + return this.promotableDisplayAdTemplateFilters; + } + /** The DisplayAdTemplate Ids that are valid to promote */ + public DisplayAdPromotionSpecification setPromotableDisplayAdTemplateIds(UUID... promotableDisplayAdTemplateIds) + { + this.promotableDisplayAdTemplateIds = promotableDisplayAdTemplateIds; + return this; + } + /** The DisplayAdTemplate Ids that are valid to promote */ + public DisplayAdPromotionSpecification addToPromotableDisplayAdTemplateIds(UUID promotableDisplayAdTemplateId) + { + if (this.promotableDisplayAdTemplateIds == null) + { + this.promotableDisplayAdTemplateIds = new UUID[] { promotableDisplayAdTemplateId }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.promotableDisplayAdTemplateIds)); + existingList.add(promotableDisplayAdTemplateId); + this.promotableDisplayAdTemplateIds = existingList.toArray(new UUID[0]); + } + return this; + } + /** The DisplayAdTemplates found via filters that are valid to promote */ + public DisplayAdPromotionSpecification setPromotableDisplayAdTemplateFilters(@Nullable FilterCollection promotableDisplayAdTemplateFilters) + { + this.promotableDisplayAdTemplateFilters = promotableDisplayAdTemplateFilters; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdResult.java b/src/src/main/java/com/relewise/client/model/DisplayAdResult.java new file mode 100644 index 00000000..2358828d --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdResult.java @@ -0,0 +1,81 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdResult +{ + public String displayAdId; + public @Nullable String name; + public @Nullable HashMap data; + public @Nullable ClickedByUserInfo clickedByUserInfo; + public static DisplayAdResult create(String displayAdId) + { + return new DisplayAdResult(displayAdId); + } + public DisplayAdResult(String displayAdId) + { + this.displayAdId = displayAdId; + } + public DisplayAdResult() + { + } + public String getDisplayAdId() + { + return this.displayAdId; + } + public @Nullable String getName() + { + return this.name; + } + public @Nullable HashMap getData() + { + return this.data; + } + public @Nullable ClickedByUserInfo getClickedByUserInfo() + { + return this.clickedByUserInfo; + } + public DisplayAdResult setDisplayAdId(String displayAdId) + { + this.displayAdId = displayAdId; + return this; + } + public DisplayAdResult setName(@Nullable String name) + { + this.name = name; + return this; + } + public DisplayAdResult addToData(String key, DataValue value) + { + if (this.data == null) + { + this.data = new HashMap<>(); + } + this.data.put(key, value); + return this; + } + public DisplayAdResult setData(@Nullable HashMap data) + { + this.data = data; + return this; + } + public DisplayAdResult setClickedByUserInfo(@Nullable ClickedByUserInfo clickedByUserInfo) + { + this.clickedByUserInfo = clickedByUserInfo; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdStringDisplayAdEntityStateEntityResponse.java b/src/src/main/java/com/relewise/client/model/DisplayAdStringDisplayAdEntityStateEntityResponse.java new file mode 100644 index 00000000..6669f1a1 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdStringDisplayAdEntityStateEntityResponse.java @@ -0,0 +1,73 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type") +@JsonSubTypes({ +}) +@JsonIgnoreProperties(ignoreUnknown = true) +public abstract class DisplayAdStringDisplayAdEntityStateEntityResponse extends TimedResponse +{ + public String $type = ""; + public DisplayAd[] entities; + public Integer hits; + public HashMap hitsPerState; + public DisplayAd[] getEntities() + { + return this.entities; + } + public Integer getHits() + { + return this.hits; + } + public HashMap getHitsPerState() + { + return this.hitsPerState; + } + public DisplayAdStringDisplayAdEntityStateEntityResponse setEntities(DisplayAd... entities) + { + this.entities = entities; + return this; + } + public DisplayAdStringDisplayAdEntityStateEntityResponse setHits(Integer hits) + { + this.hits = hits; + return this; + } + public DisplayAdStringDisplayAdEntityStateEntityResponse addToHitsPerState(DisplayAdEntityState key, Integer value) + { + if (this.hitsPerState == null) + { + this.hitsPerState = new HashMap<>(); + } + this.hitsPerState.put(key, value); + return this; + } + public DisplayAdStringDisplayAdEntityStateEntityResponse setHitsPerState(HashMap hitsPerState) + { + this.hitsPerState = hitsPerState; + return this; + } + @Override + public DisplayAdStringDisplayAdEntityStateEntityResponse setStatistics(Statistics statistics) + { + this.statistics = statistics; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdStringSaveEntitiesRequest.java b/src/src/main/java/com/relewise/client/model/DisplayAdStringSaveEntitiesRequest.java new file mode 100644 index 00000000..fe8e198c --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdStringSaveEntitiesRequest.java @@ -0,0 +1,48 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type") +@JsonSubTypes({ +}) +@JsonIgnoreProperties(ignoreUnknown = true) +public abstract class DisplayAdStringSaveEntitiesRequest extends LicensedRequest +{ + public String $type = ""; + public DisplayAd[] entities; + public String modifiedBy; + public DisplayAd[] getEntities() + { + return this.entities; + } + public String getModifiedBy() + { + return this.modifiedBy; + } + public DisplayAdStringSaveEntitiesRequest setEntities(DisplayAd... entities) + { + this.entities = entities; + return this; + } + public DisplayAdStringSaveEntitiesRequest setModifiedBy(String modifiedBy) + { + this.modifiedBy = modifiedBy; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdStringSaveEntitiesResponse.java b/src/src/main/java/com/relewise/client/model/DisplayAdStringSaveEntitiesResponse.java new file mode 100644 index 00000000..8106ce4e --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdStringSaveEntitiesResponse.java @@ -0,0 +1,44 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type") +@JsonSubTypes({ +}) +@JsonIgnoreProperties(ignoreUnknown = true) +public abstract class DisplayAdStringSaveEntitiesResponse extends TimedResponse +{ + public String $type = ""; + public DisplayAd[] entities; + public DisplayAd[] getEntities() + { + return this.entities; + } + public DisplayAdStringSaveEntitiesResponse setEntities(DisplayAd... entities) + { + this.entities = entities; + return this; + } + @Override + public DisplayAdStringSaveEntitiesResponse setStatistics(Statistics statistics) + { + this.statistics = statistics; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdTemplate.java b/src/src/main/java/com/relewise/client/model/DisplayAdTemplate.java new file mode 100644 index 00000000..40ada7cc --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdTemplate.java @@ -0,0 +1,93 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAdTemplate.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdTemplate extends DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntity +{ + public String $type = "Relewise.Client.DataTypes.RetailMedia.Entities.DisplayAdTemplate, Relewise.Client"; + public String name; + public DisplayAdTemplateFieldDefinition[] fields; + public static DisplayAdTemplate create(@Nullable UUID id, DisplayAdTemplateEntityState state, String name, DisplayAdTemplateFieldDefinition... fields) + { + return new DisplayAdTemplate(id, state, name, fields); + } + public DisplayAdTemplate(@Nullable UUID id, DisplayAdTemplateEntityState state, String name, DisplayAdTemplateFieldDefinition... fields) + { + this.id = id; + this.state = state; + this.name = name; + this.fields = fields; + } + public DisplayAdTemplate() + { + } + public String getName() + { + return this.name; + } + public DisplayAdTemplateFieldDefinition[] getFields() + { + return this.fields; + } + public DisplayAdTemplate setName(String name) + { + this.name = name; + return this; + } + public DisplayAdTemplate setFields(DisplayAdTemplateFieldDefinition... fields) + { + this.fields = fields; + return this; + } + public DisplayAdTemplate addToFields(DisplayAdTemplateFieldDefinition field) + { + if (this.fields == null) + { + this.fields = new DisplayAdTemplateFieldDefinition[] { field }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.fields)); + existingList.add(field); + this.fields = existingList.toArray(new DisplayAdTemplateFieldDefinition[0]); + } + return this; + } + @Override + public DisplayAdTemplate setState(DisplayAdTemplateEntityState state) + { + this.state = state; + return this; + } + @Override + public DisplayAdTemplate setMetadata(DisplayAdTemplateMetadataValues metadata) + { + this.metadata = metadata; + return this; + } + @Override + public DisplayAdTemplate setId(@Nullable UUID id) + { + this.id = id; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdTemplateEntityState.java b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateEntityState.java new file mode 100644 index 00000000..b0ca4885 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateEntityState.java @@ -0,0 +1,35 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +public enum DisplayAdTemplateEntityState +{ + Active { + public String toString() { + return "Active"; + } + }, + Inactive { + public String toString() { + return "Inactive"; + } + }, + Archived { + public String toString() { + return "Archived"; + } + }, +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesDisplayAdTemplatesRequestSortByDisplayAdTemplatesRequestEntityFiltersEntitiesRequest.java b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesDisplayAdTemplatesRequestSortByDisplayAdTemplatesRequestEntityFiltersEntitiesRequest.java new file mode 100644 index 00000000..b98bdc3d --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesDisplayAdTemplatesRequestSortByDisplayAdTemplatesRequestEntityFiltersEntitiesRequest.java @@ -0,0 +1,68 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type") +@JsonSubTypes({ +}) +@JsonIgnoreProperties(ignoreUnknown = true) +public abstract class DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesDisplayAdTemplatesRequestSortByDisplayAdTemplatesRequestEntityFiltersEntitiesRequest extends LicensedRequest +{ + public String $type = ""; + public @Nullable DisplayAdTemplatesRequestEntityFilters filters; + public @Nullable DisplayAdTemplatesRequestSortBySorting sorting; + public Integer skip; + public Integer take; + public @Nullable DisplayAdTemplatesRequestEntityFilters getFilters() + { + return this.filters; + } + public @Nullable DisplayAdTemplatesRequestSortBySorting getSorting() + { + return this.sorting; + } + public Integer getSkip() + { + return this.skip; + } + public Integer getTake() + { + return this.take; + } + public DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesDisplayAdTemplatesRequestSortByDisplayAdTemplatesRequestEntityFiltersEntitiesRequest setFilters(@Nullable DisplayAdTemplatesRequestEntityFilters filters) + { + this.filters = filters; + return this; + } + public DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesDisplayAdTemplatesRequestSortByDisplayAdTemplatesRequestEntityFiltersEntitiesRequest setSorting(@Nullable DisplayAdTemplatesRequestSortBySorting sorting) + { + this.sorting = sorting; + return this; + } + public DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesDisplayAdTemplatesRequestSortByDisplayAdTemplatesRequestEntityFiltersEntitiesRequest setSkip(Integer skip) + { + this.skip = skip; + return this; + } + public DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesDisplayAdTemplatesRequestSortByDisplayAdTemplatesRequestEntityFiltersEntitiesRequest setTake(Integer take) + { + this.take = take; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntity.java b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntity.java new file mode 100644 index 00000000..4c4f0c39 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntity.java @@ -0,0 +1,57 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type") +@JsonSubTypes({ +}) +@JsonIgnoreProperties(ignoreUnknown = true) +public abstract class DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntity extends UUIDRetailMediaEntity +{ + public String $type = ""; + public DisplayAdTemplateEntityState state; + /** Managed server side only, manually setting this will have no effect */ + public DisplayAdTemplateMetadataValues metadata; + public DisplayAdTemplateEntityState getState() + { + return this.state; + } + /** Managed server side only, manually setting this will have no effect */ + public DisplayAdTemplateMetadataValues getMetadata() + { + return this.metadata; + } + public DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntity setState(DisplayAdTemplateEntityState state) + { + this.state = state; + return this; + } + /** Managed server side only, manually setting this will have no effect */ + public DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntity setMetadata(DisplayAdTemplateMetadataValues metadata) + { + this.metadata = metadata; + return this; + } + @Override + public DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntity setId(@Nullable UUID id) + { + this.id = id; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntityEntityFilters.java b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntityEntityFilters.java new file mode 100644 index 00000000..baca451d --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntityEntityFilters.java @@ -0,0 +1,48 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type") +@JsonSubTypes({ +}) +@JsonIgnoreProperties(ignoreUnknown = true) +public abstract class DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntityEntityFilters +{ + public String $type = ""; + public @Nullable String term; + public @Nullable DisplayAdTemplateEntityState[] states; + public @Nullable String getTerm() + { + return this.term; + } + public @Nullable DisplayAdTemplateEntityState[] getStates() + { + return this.states; + } + public DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntityEntityFilters setTerm(@Nullable String term) + { + this.term = term; + return this; + } + public DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntityEntityFilters setStates(DisplayAdTemplateEntityState... states) + { + this.states = states; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdTemplateFieldDefinition.java b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateFieldDefinition.java new file mode 100644 index 00000000..ec91175e --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateFieldDefinition.java @@ -0,0 +1,82 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdTemplateFieldDefinition +{ + public String name; + public DataValueDataValueTypes type; + public @Nullable HashMap metadata; + public static DisplayAdTemplateFieldDefinition create(String name, DataValueDataValueTypes type, HashMap metadata) + { + return new DisplayAdTemplateFieldDefinition(name, type, metadata); + } + public DisplayAdTemplateFieldDefinition(String name, DataValueDataValueTypes type, HashMap metadata) + { + this.name = name; + this.type = type; + this.metadata = metadata; + } + public static DisplayAdTemplateFieldDefinition create(String name, DataValueDataValueTypes type) + { + return new DisplayAdTemplateFieldDefinition(name, type); + } + public DisplayAdTemplateFieldDefinition(String name, DataValueDataValueTypes type) + { + this.name = name; + this.type = type; + } + public DisplayAdTemplateFieldDefinition() + { + } + public String getName() + { + return this.name; + } + public DataValueDataValueTypes getType() + { + return this.type; + } + public @Nullable HashMap getMetadata() + { + return this.metadata; + } + public DisplayAdTemplateFieldDefinition setName(String name) + { + this.name = name; + return this; + } + public DisplayAdTemplateFieldDefinition setType(DataValueDataValueTypes type) + { + this.type = type; + return this; + } + public DisplayAdTemplateFieldDefinition addToMetadata(String key, String value) + { + if (this.metadata == null) + { + this.metadata = new HashMap<>(); + } + this.metadata.put(key, value); + return this; + } + public DisplayAdTemplateFieldDefinition setMetadata(@Nullable HashMap metadata) + { + this.metadata = metadata; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdTemplateIdFilter.java b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateIdFilter.java new file mode 100644 index 00000000..2cc0f68f --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateIdFilter.java @@ -0,0 +1,74 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAdTemplateIdFilter.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdTemplateIdFilter extends Filter implements IDisplayAdTemplateFilter, IDisplayAdFilter +{ + public String $type = "Relewise.Client.Requests.Filters.DisplayAdTemplateIdFilter, Relewise.Client"; + public @Nullable ArrayList ids; + public static DisplayAdTemplateIdFilter create() + { + return new DisplayAdTemplateIdFilter(); + } + public DisplayAdTemplateIdFilter() + { + this.negated = false; + } + public static DisplayAdTemplateIdFilter create(Boolean negated) + { + return new DisplayAdTemplateIdFilter(negated); + } + public DisplayAdTemplateIdFilter(Boolean negated) + { + this.negated = negated; + } + public @Nullable ArrayList getIds() + { + return this.ids; + } + public DisplayAdTemplateIdFilter setIds(UUID... ids) + { + this.ids = new ArrayList<>(Arrays.asList(ids));; + return this; + } + public DisplayAdTemplateIdFilter addToIds(UUID ids) + { + if (this.ids == null) + { + this.ids = new ArrayList<>(); + } + this.ids.add(ids); + return this; + } + @Override + public DisplayAdTemplateIdFilter setNegated(Boolean negated) + { + this.negated = negated; + return this; + } + @Override + public DisplayAdTemplateIdFilter setSettings(@Nullable FilterSettings settings) + { + this.settings = settings; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdTemplateMetadataValues.java b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateMetadataValues.java new file mode 100644 index 00000000..805a523f --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateMetadataValues.java @@ -0,0 +1,58 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAdTemplateMetadataValues.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdTemplateMetadataValues extends MetadataValues +{ + public String $type = "Relewise.Client.DataTypes.RetailMedia.Entities.DisplayAdTemplate+MetadataValues, Relewise.Client"; + public static DisplayAdTemplateMetadataValues create() + { + return new DisplayAdTemplateMetadataValues(); + } + public DisplayAdTemplateMetadataValues() + { + } + @Override + public DisplayAdTemplateMetadataValues setCreated(OffsetDateTime created) + { + this.created = created; + return this; + } + @Override + public DisplayAdTemplateMetadataValues setCreatedBy(String createdBy) + { + this.createdBy = createdBy; + return this; + } + @Override + public DisplayAdTemplateMetadataValues setModified(OffsetDateTime modified) + { + this.modified = modified; + return this; + } + @Override + public DisplayAdTemplateMetadataValues setModifiedBy(String modifiedBy) + { + this.modifiedBy = modifiedBy; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdTemplateUUIDDisplayAdTemplateEntityStateEntityResponse.java b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateUUIDDisplayAdTemplateEntityStateEntityResponse.java new file mode 100644 index 00000000..4b49ed69 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateUUIDDisplayAdTemplateEntityStateEntityResponse.java @@ -0,0 +1,73 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type") +@JsonSubTypes({ +}) +@JsonIgnoreProperties(ignoreUnknown = true) +public abstract class DisplayAdTemplateUUIDDisplayAdTemplateEntityStateEntityResponse extends TimedResponse +{ + public String $type = ""; + public DisplayAdTemplate[] entities; + public Integer hits; + public HashMap hitsPerState; + public DisplayAdTemplate[] getEntities() + { + return this.entities; + } + public Integer getHits() + { + return this.hits; + } + public HashMap getHitsPerState() + { + return this.hitsPerState; + } + public DisplayAdTemplateUUIDDisplayAdTemplateEntityStateEntityResponse setEntities(DisplayAdTemplate... entities) + { + this.entities = entities; + return this; + } + public DisplayAdTemplateUUIDDisplayAdTemplateEntityStateEntityResponse setHits(Integer hits) + { + this.hits = hits; + return this; + } + public DisplayAdTemplateUUIDDisplayAdTemplateEntityStateEntityResponse addToHitsPerState(DisplayAdTemplateEntityState key, Integer value) + { + if (this.hitsPerState == null) + { + this.hitsPerState = new HashMap<>(); + } + this.hitsPerState.put(key, value); + return this; + } + public DisplayAdTemplateUUIDDisplayAdTemplateEntityStateEntityResponse setHitsPerState(HashMap hitsPerState) + { + this.hitsPerState = hitsPerState; + return this; + } + @Override + public DisplayAdTemplateUUIDDisplayAdTemplateEntityStateEntityResponse setStatistics(Statistics statistics) + { + this.statistics = statistics; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdTemplateUUIDSaveEntitiesRequest.java b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateUUIDSaveEntitiesRequest.java new file mode 100644 index 00000000..0cca34c4 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateUUIDSaveEntitiesRequest.java @@ -0,0 +1,48 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type") +@JsonSubTypes({ +}) +@JsonIgnoreProperties(ignoreUnknown = true) +public abstract class DisplayAdTemplateUUIDSaveEntitiesRequest extends LicensedRequest +{ + public String $type = ""; + public DisplayAdTemplate[] entities; + public String modifiedBy; + public DisplayAdTemplate[] getEntities() + { + return this.entities; + } + public String getModifiedBy() + { + return this.modifiedBy; + } + public DisplayAdTemplateUUIDSaveEntitiesRequest setEntities(DisplayAdTemplate... entities) + { + this.entities = entities; + return this; + } + public DisplayAdTemplateUUIDSaveEntitiesRequest setModifiedBy(String modifiedBy) + { + this.modifiedBy = modifiedBy; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdTemplateUUIDSaveEntitiesResponse.java b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateUUIDSaveEntitiesResponse.java new file mode 100644 index 00000000..d5302832 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdTemplateUUIDSaveEntitiesResponse.java @@ -0,0 +1,44 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type") +@JsonSubTypes({ +}) +@JsonIgnoreProperties(ignoreUnknown = true) +public abstract class DisplayAdTemplateUUIDSaveEntitiesResponse extends TimedResponse +{ + public String $type = ""; + public DisplayAdTemplate[] entities; + public DisplayAdTemplate[] getEntities() + { + return this.entities; + } + public DisplayAdTemplateUUIDSaveEntitiesResponse setEntities(DisplayAdTemplate... entities) + { + this.entities = entities; + return this; + } + @Override + public DisplayAdTemplateUUIDSaveEntitiesResponse setStatistics(Statistics statistics) + { + this.statistics = statistics; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdTemplatesRequest.java b/src/src/main/java/com/relewise/client/model/DisplayAdTemplatesRequest.java new file mode 100644 index 00000000..c529401b --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdTemplatesRequest.java @@ -0,0 +1,65 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAdTemplatesRequest.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdTemplatesRequest extends DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesDisplayAdTemplatesRequestSortByDisplayAdTemplatesRequestEntityFiltersEntitiesRequest +{ + public String $type = "Relewise.Client.Requests.RetailMedia.DisplayAdTemplatesRequest, Relewise.Client"; + public static DisplayAdTemplatesRequest create(@Nullable DisplayAdTemplatesRequestEntityFilters filters, @Nullable DisplayAdTemplatesRequestSortBySorting sorting, Integer skip, Integer take) + { + return new DisplayAdTemplatesRequest(filters, sorting, skip, take); + } + public DisplayAdTemplatesRequest(@Nullable DisplayAdTemplatesRequestEntityFilters filters, @Nullable DisplayAdTemplatesRequestSortBySorting sorting, Integer skip, Integer take) + { + this.filters = filters; + this.sorting = sorting; + this.skip = skip; + this.take = take; + } + public DisplayAdTemplatesRequest() + { + } + @Override + public DisplayAdTemplatesRequest setFilters(@Nullable DisplayAdTemplatesRequestEntityFilters filters) + { + this.filters = filters; + return this; + } + @Override + public DisplayAdTemplatesRequest setSorting(@Nullable DisplayAdTemplatesRequestSortBySorting sorting) + { + this.sorting = sorting; + return this; + } + @Override + public DisplayAdTemplatesRequest setSkip(Integer skip) + { + this.skip = skip; + return this; + } + @Override + public DisplayAdTemplatesRequest setTake(Integer take) + { + this.take = take; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdTemplatesRequestEntityFilters.java b/src/src/main/java/com/relewise/client/model/DisplayAdTemplatesRequestEntityFilters.java new file mode 100644 index 00000000..8b4bf00a --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdTemplatesRequestEntityFilters.java @@ -0,0 +1,118 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAdTemplatesRequestEntityFilters.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdTemplatesRequestEntityFilters extends DisplayAdTemplateEntityStateUUIDDisplayAdTemplateMetadataValuesRetailMediaEntityEntityFilters +{ + public String $type = "Relewise.Client.Requests.RetailMedia.DisplayAdTemplatesRequest+EntityFilters, Relewise.Client"; + public @Nullable UUID[] ids; + public @Nullable String[] keys; + public @Nullable FilterCollection filters; + public static DisplayAdTemplatesRequestEntityFilters create() + { + return new DisplayAdTemplatesRequestEntityFilters(); + } + public DisplayAdTemplatesRequestEntityFilters() + { + } + public @Nullable UUID[] getIds() + { + return this.ids; + } + public @Nullable String[] getKeys() + { + return this.keys; + } + public @Nullable FilterCollection getFilters() + { + return this.filters; + } + public DisplayAdTemplatesRequestEntityFilters setIds(UUID... ids) + { + this.ids = ids; + return this; + } + public DisplayAdTemplatesRequestEntityFilters addToIds(UUID id) + { + if (this.ids == null) + { + this.ids = new UUID[] { id }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.ids)); + existingList.add(id); + this.ids = existingList.toArray(new UUID[0]); + } + return this; + } + public DisplayAdTemplatesRequestEntityFilters setKeys(String... keys) + { + this.keys = keys; + return this; + } + public DisplayAdTemplatesRequestEntityFilters addToKeys(String key) + { + if (this.keys == null) + { + this.keys = new String[] { key }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.keys)); + existingList.add(key); + this.keys = existingList.toArray(new String[0]); + } + return this; + } + public DisplayAdTemplatesRequestEntityFilters setFilters(@Nullable FilterCollection filters) + { + this.filters = filters; + return this; + } + @Override + public DisplayAdTemplatesRequestEntityFilters setTerm(@Nullable String term) + { + this.term = term; + return this; + } + @Override + public DisplayAdTemplatesRequestEntityFilters setStates(DisplayAdTemplateEntityState... states) + { + this.states = states; + return this; + } + public DisplayAdTemplatesRequestEntityFilters addToStates(DisplayAdTemplateEntityState state) + { + if (this.states == null) + { + this.states = new DisplayAdTemplateEntityState[] { state }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.states)); + existingList.add(state); + this.states = existingList.toArray(new DisplayAdTemplateEntityState[0]); + } + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdTemplatesRequestSortBy.java b/src/src/main/java/com/relewise/client/model/DisplayAdTemplatesRequestSortBy.java new file mode 100644 index 00000000..727d4f0d --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdTemplatesRequestSortBy.java @@ -0,0 +1,35 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +public enum DisplayAdTemplatesRequestSortBy +{ + Created { + public String toString() { + return "Created"; + } + }, + Modified { + public String toString() { + return "Modified"; + } + }, + Name { + public String toString() { + return "Name"; + } + }, +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdTemplatesRequestSortBySorting.java b/src/src/main/java/com/relewise/client/model/DisplayAdTemplatesRequestSortBySorting.java new file mode 100644 index 00000000..4582668a --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdTemplatesRequestSortBySorting.java @@ -0,0 +1,53 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdTemplatesRequestSortBySorting +{ + public DisplayAdTemplatesRequestSortBy sortBy; + public SortOrder sortOrder; + public static DisplayAdTemplatesRequestSortBySorting create(DisplayAdTemplatesRequestSortBy sortBy, SortOrder sortOrder) + { + return new DisplayAdTemplatesRequestSortBySorting(sortBy, sortOrder); + } + public DisplayAdTemplatesRequestSortBySorting(DisplayAdTemplatesRequestSortBy sortBy, SortOrder sortOrder) + { + this.sortBy = sortBy; + this.sortOrder = sortOrder; + } + public DisplayAdTemplatesRequestSortBySorting() + { + } + public DisplayAdTemplatesRequestSortBy getSortBy() + { + return this.sortBy; + } + public SortOrder getSortOrder() + { + return this.sortOrder; + } + public DisplayAdTemplatesRequestSortBySorting setSortBy(DisplayAdTemplatesRequestSortBy sortBy) + { + this.sortBy = sortBy; + return this; + } + public DisplayAdTemplatesRequestSortBySorting setSortOrder(SortOrder sortOrder) + { + this.sortOrder = sortOrder; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdTemplatesResponse.java b/src/src/main/java/com/relewise/client/model/DisplayAdTemplatesResponse.java new file mode 100644 index 00000000..cad5d359 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdTemplatesResponse.java @@ -0,0 +1,87 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAdTemplatesResponse.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdTemplatesResponse extends DisplayAdTemplateUUIDDisplayAdTemplateEntityStateEntityResponse +{ + public String $type = "Relewise.Client.Responses.RetailMedia.DisplayAdTemplatesResponse, Relewise.Client"; + public static DisplayAdTemplatesResponse create(DisplayAdTemplate[] displayAdTemplates, Integer hits, HashMap hitsPerState) + { + return new DisplayAdTemplatesResponse(displayAdTemplates, hits, hitsPerState); + } + public DisplayAdTemplatesResponse(DisplayAdTemplate[] displayAdTemplates, Integer hits, HashMap hitsPerState) + { + this.entities = displayAdTemplates; + this.hits = hits; + this.hitsPerState = hitsPerState; + } + public DisplayAdTemplatesResponse() + { + } + @Override + public DisplayAdTemplatesResponse setEntities(DisplayAdTemplate... entities) + { + this.entities = entities; + return this; + } + public DisplayAdTemplatesResponse addToEntities(DisplayAdTemplate entity) + { + if (this.entities == null) + { + this.entities = new DisplayAdTemplate[] { entity }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.entities)); + existingList.add(entity); + this.entities = existingList.toArray(new DisplayAdTemplate[0]); + } + return this; + } + @Override + public DisplayAdTemplatesResponse setHits(Integer hits) + { + this.hits = hits; + return this; + } + public DisplayAdTemplatesResponse addToHitsPerState(DisplayAdTemplateEntityState key, Integer value) + { + if (this.hitsPerState == null) + { + this.hitsPerState = new HashMap<>(); + } + this.hitsPerState.put(key, value); + return this; + } + @Override + public DisplayAdTemplatesResponse setHitsPerState(HashMap hitsPerState) + { + this.hitsPerState = hitsPerState; + return this; + } + @Override + public DisplayAdTemplatesResponse setStatistics(Statistics statistics) + { + this.statistics = statistics; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdsRequest.java b/src/src/main/java/com/relewise/client/model/DisplayAdsRequest.java new file mode 100644 index 00000000..bae318c6 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdsRequest.java @@ -0,0 +1,65 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAdsRequest.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdsRequest extends DisplayAdEntityStateStringDisplayAdMetadataValuesDisplayAdsRequestSortByDisplayAdsRequestEntityFiltersEntitiesRequest +{ + public String $type = "Relewise.Client.Requests.RetailMedia.DisplayAdsRequest, Relewise.Client"; + public static DisplayAdsRequest create(@Nullable DisplayAdsRequestEntityFilters filters, @Nullable DisplayAdsRequestSortBySorting sorting, Integer skip, Integer take) + { + return new DisplayAdsRequest(filters, sorting, skip, take); + } + public DisplayAdsRequest(@Nullable DisplayAdsRequestEntityFilters filters, @Nullable DisplayAdsRequestSortBySorting sorting, Integer skip, Integer take) + { + this.filters = filters; + this.sorting = sorting; + this.skip = skip; + this.take = take; + } + public DisplayAdsRequest() + { + } + @Override + public DisplayAdsRequest setFilters(@Nullable DisplayAdsRequestEntityFilters filters) + { + this.filters = filters; + return this; + } + @Override + public DisplayAdsRequest setSorting(@Nullable DisplayAdsRequestSortBySorting sorting) + { + this.sorting = sorting; + return this; + } + @Override + public DisplayAdsRequest setSkip(Integer skip) + { + this.skip = skip; + return this; + } + @Override + public DisplayAdsRequest setTake(Integer take) + { + this.take = take; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdsRequestEntityFilters.java b/src/src/main/java/com/relewise/client/model/DisplayAdsRequestEntityFilters.java new file mode 100644 index 00000000..95542c43 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdsRequestEntityFilters.java @@ -0,0 +1,142 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAdsRequestEntityFilters.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdsRequestEntityFilters extends DisplayAdEntityStateStringDisplayAdMetadataValuesRetailMediaEntityEntityFilters +{ + public String $type = "Relewise.Client.Requests.RetailMedia.DisplayAdsRequest+EntityFilters, Relewise.Client"; + public @Nullable String[] ids; + public @Nullable UUID[] advertiserIds; + public @Nullable UUID[] templateIds; + public @Nullable FilterCollection filters; + public static DisplayAdsRequestEntityFilters create() + { + return new DisplayAdsRequestEntityFilters(); + } + public DisplayAdsRequestEntityFilters() + { + } + public @Nullable String[] getIds() + { + return this.ids; + } + public @Nullable UUID[] getAdvertiserIds() + { + return this.advertiserIds; + } + public @Nullable UUID[] getTemplateIds() + { + return this.templateIds; + } + public @Nullable FilterCollection getFilters() + { + return this.filters; + } + public DisplayAdsRequestEntityFilters setIds(String... ids) + { + this.ids = ids; + return this; + } + public DisplayAdsRequestEntityFilters addToIds(String id) + { + if (this.ids == null) + { + this.ids = new String[] { id }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.ids)); + existingList.add(id); + this.ids = existingList.toArray(new String[0]); + } + return this; + } + public DisplayAdsRequestEntityFilters setAdvertiserIds(UUID... advertiserIds) + { + this.advertiserIds = advertiserIds; + return this; + } + public DisplayAdsRequestEntityFilters addToAdvertiserIds(UUID advertiserId) + { + if (this.advertiserIds == null) + { + this.advertiserIds = new UUID[] { advertiserId }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.advertiserIds)); + existingList.add(advertiserId); + this.advertiserIds = existingList.toArray(new UUID[0]); + } + return this; + } + public DisplayAdsRequestEntityFilters setTemplateIds(UUID... templateIds) + { + this.templateIds = templateIds; + return this; + } + public DisplayAdsRequestEntityFilters addToTemplateIds(UUID templateId) + { + if (this.templateIds == null) + { + this.templateIds = new UUID[] { templateId }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.templateIds)); + existingList.add(templateId); + this.templateIds = existingList.toArray(new UUID[0]); + } + return this; + } + public DisplayAdsRequestEntityFilters setFilters(@Nullable FilterCollection filters) + { + this.filters = filters; + return this; + } + @Override + public DisplayAdsRequestEntityFilters setTerm(@Nullable String term) + { + this.term = term; + return this; + } + @Override + public DisplayAdsRequestEntityFilters setStates(DisplayAdEntityState... states) + { + this.states = states; + return this; + } + public DisplayAdsRequestEntityFilters addToStates(DisplayAdEntityState state) + { + if (this.states == null) + { + this.states = new DisplayAdEntityState[] { state }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.states)); + existingList.add(state); + this.states = existingList.toArray(new DisplayAdEntityState[0]); + } + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdsRequestSortBy.java b/src/src/main/java/com/relewise/client/model/DisplayAdsRequestSortBy.java new file mode 100644 index 00000000..1c49fd16 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdsRequestSortBy.java @@ -0,0 +1,35 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +public enum DisplayAdsRequestSortBy +{ + Created { + public String toString() { + return "Created"; + } + }, + Modified { + public String toString() { + return "Modified"; + } + }, + Name { + public String toString() { + return "Name"; + } + }, +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdsRequestSortBySorting.java b/src/src/main/java/com/relewise/client/model/DisplayAdsRequestSortBySorting.java new file mode 100644 index 00000000..ac859084 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdsRequestSortBySorting.java @@ -0,0 +1,53 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdsRequestSortBySorting +{ + public DisplayAdsRequestSortBy sortBy; + public SortOrder sortOrder; + public static DisplayAdsRequestSortBySorting create(DisplayAdsRequestSortBy sortBy, SortOrder sortOrder) + { + return new DisplayAdsRequestSortBySorting(sortBy, sortOrder); + } + public DisplayAdsRequestSortBySorting(DisplayAdsRequestSortBy sortBy, SortOrder sortOrder) + { + this.sortBy = sortBy; + this.sortOrder = sortOrder; + } + public DisplayAdsRequestSortBySorting() + { + } + public DisplayAdsRequestSortBy getSortBy() + { + return this.sortBy; + } + public SortOrder getSortOrder() + { + return this.sortOrder; + } + public DisplayAdsRequestSortBySorting setSortBy(DisplayAdsRequestSortBy sortBy) + { + this.sortBy = sortBy; + return this; + } + public DisplayAdsRequestSortBySorting setSortOrder(SortOrder sortOrder) + { + this.sortOrder = sortOrder; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/DisplayAdsResponse.java b/src/src/main/java/com/relewise/client/model/DisplayAdsResponse.java new file mode 100644 index 00000000..9aec1ef1 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/DisplayAdsResponse.java @@ -0,0 +1,87 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = DisplayAdsResponse.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DisplayAdsResponse extends DisplayAdStringDisplayAdEntityStateEntityResponse +{ + public String $type = "Relewise.Client.Responses.RetailMedia.DisplayAdsResponse, Relewise.Client"; + public static DisplayAdsResponse create(DisplayAd[] displayAds, Integer hits, HashMap hitsPerState) + { + return new DisplayAdsResponse(displayAds, hits, hitsPerState); + } + public DisplayAdsResponse(DisplayAd[] displayAds, Integer hits, HashMap hitsPerState) + { + this.entities = displayAds; + this.hits = hits; + this.hitsPerState = hitsPerState; + } + public DisplayAdsResponse() + { + } + @Override + public DisplayAdsResponse setEntities(DisplayAd... entities) + { + this.entities = entities; + return this; + } + public DisplayAdsResponse addToEntities(DisplayAd entity) + { + if (this.entities == null) + { + this.entities = new DisplayAd[] { entity }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.entities)); + existingList.add(entity); + this.entities = existingList.toArray(new DisplayAd[0]); + } + return this; + } + @Override + public DisplayAdsResponse setHits(Integer hits) + { + this.hits = hits; + return this; + } + public DisplayAdsResponse addToHitsPerState(DisplayAdEntityState key, Integer value) + { + if (this.hitsPerState == null) + { + this.hitsPerState = new HashMap<>(); + } + this.hitsPerState.put(key, value); + return this; + } + @Override + public DisplayAdsResponse setHitsPerState(HashMap hitsPerState) + { + this.hitsPerState = hitsPerState; + return this; + } + @Override + public DisplayAdsResponse setStatistics(Statistics statistics) + { + this.statistics = statistics; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/Feed.java b/src/src/main/java/com/relewise/client/model/Feed.java new file mode 100644 index 00000000..9d23dd3b --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/Feed.java @@ -0,0 +1,161 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Defines the settings for the feed recommendation, including page size, seed settings, composition of entities, and selected properties for products, variants, and content. */ +@JsonIgnoreProperties(ignoreUnknown = true) +public class Feed +{ + /** The minimum number of items to return initially and per every FeedRecommendationNextItemsRequest. A higher number of results may be returned if composition configurations dictate so. For example, if a given FeedComposition has a lower bound of 5, and the MinimumPageSize is set to 4, then the feed will return at least 5 items whenever the result contains any derived from that composition element. */ + public Integer minimumPageSize; + /** Optionally used to seed the feed with specific products or content. Useful, for example, when you want to show a feed based on specific product(s) or content, such as a PDP/CDP, a shopping cart, or an order. */ + public @Nullable FeedSeed seed; + /** Defines how the feed will be composed, which types of entities to include, how many of each type, and any filters or relevance modifiers that should apply to each type, etc. Multiple FeedComposition instances can be added to compose different types of entities in the feed in the rotation. */ + public ArrayList compositions; + /** Defines which properties to include for recommended products. When not set, only IDs will be returned. */ + public @Nullable SelectedProductPropertiesSettings selectedProductProperties; + /** Defines which properties to include for recommended variants. When not set, only IDs will be returned. */ + public @Nullable SelectedVariantPropertiesSettings selectedVariantProperties; + /** Defines which properties to include for recommended content. When not set, only IDs will be returned. */ + public @Nullable SelectedContentPropertiesSettings selectedContentProperties; + /** Defines if variants should be included for returned products */ + public @Nullable Boolean recommendVariant; + /** Defines if products should be excluded if they are currently present in the users Cart */ + public @Nullable Boolean allowProductsCurrentlyInCart; + /** + * Initializes a new instance of the Feed class. + * @param minimumPageSize The minimum number of items to return initially and per every + * @param seed Optionally used to seed the feed with specific products or content. Useful, for example, when you want to show a feed based on specific product(s) or content, such as a PDP/CDP, a shopping cart, or an order. + * @param composition Defines how the feed will be composed, which types of entities to include, how many of each type, and any filters or relevance modifiers that should apply to each type. + */ + public static Feed create(Integer minimumPageSize, @Nullable FeedSeed seed, FeedComposition... composition) + { + return new Feed(minimumPageSize, seed, composition); + } + /** + * Initializes a new instance of the Feed class. + * @param minimumPageSize The minimum number of items to return initially and per every + * @param seed Optionally used to seed the feed with specific products or content. Useful, for example, when you want to show a feed based on specific product(s) or content, such as a PDP/CDP, a shopping cart, or an order. + * @param composition Defines how the feed will be composed, which types of entities to include, how many of each type, and any filters or relevance modifiers that should apply to each type. + */ + public Feed(Integer minimumPageSize, @Nullable FeedSeed seed, FeedComposition... composition) + { + this.minimumPageSize = minimumPageSize; + this.seed = seed; + this.compositions = new ArrayList<>(Arrays.asList(composition)); + } + public Feed() + { + } + /** The minimum number of items to return initially and per every FeedRecommendationNextItemsRequest. A higher number of results may be returned if composition configurations dictate so. For example, if a given FeedComposition has a lower bound of 5, and the MinimumPageSize is set to 4, then the feed will return at least 5 items whenever the result contains any derived from that composition element. */ + public Integer getMinimumPageSize() + { + return this.minimumPageSize; + } + /** Optionally used to seed the feed with specific products or content. Useful, for example, when you want to show a feed based on specific product(s) or content, such as a PDP/CDP, a shopping cart, or an order. */ + public @Nullable FeedSeed getSeed() + { + return this.seed; + } + /** Defines how the feed will be composed, which types of entities to include, how many of each type, and any filters or relevance modifiers that should apply to each type, etc. Multiple FeedComposition instances can be added to compose different types of entities in the feed in the rotation. */ + public ArrayList getCompositions() + { + return this.compositions; + } + /** Defines which properties to include for recommended products. When not set, only IDs will be returned. */ + public @Nullable SelectedProductPropertiesSettings getSelectedProductProperties() + { + return this.selectedProductProperties; + } + /** Defines which properties to include for recommended variants. When not set, only IDs will be returned. */ + public @Nullable SelectedVariantPropertiesSettings getSelectedVariantProperties() + { + return this.selectedVariantProperties; + } + /** Defines which properties to include for recommended content. When not set, only IDs will be returned. */ + public @Nullable SelectedContentPropertiesSettings getSelectedContentProperties() + { + return this.selectedContentProperties; + } + /** Defines if variants should be included for returned products */ + public @Nullable Boolean getRecommendVariant() + { + return this.recommendVariant; + } + /** Defines if products should be excluded if they are currently present in the users Cart */ + public @Nullable Boolean getAllowProductsCurrentlyInCart() + { + return this.allowProductsCurrentlyInCart; + } + /** The minimum number of items to return initially and per every FeedRecommendationNextItemsRequest. A higher number of results may be returned if composition configurations dictate so. For example, if a given FeedComposition has a lower bound of 5, and the MinimumPageSize is set to 4, then the feed will return at least 5 items whenever the result contains any derived from that composition element. */ + public Feed setMinimumPageSize(Integer minimumPageSize) + { + this.minimumPageSize = minimumPageSize; + return this; + } + /** Optionally used to seed the feed with specific products or content. Useful, for example, when you want to show a feed based on specific product(s) or content, such as a PDP/CDP, a shopping cart, or an order. */ + public Feed setSeed(@Nullable FeedSeed seed) + { + this.seed = seed; + return this; + } + /** Defines how the feed will be composed, which types of entities to include, how many of each type, and any filters or relevance modifiers that should apply to each type, etc. Multiple FeedComposition instances can be added to compose different types of entities in the feed in the rotation. */ + public Feed setCompositions(FeedComposition... compositions) + { + this.compositions = new ArrayList<>(Arrays.asList(compositions));; + return this; + } + /** Defines how the feed will be composed, which types of entities to include, how many of each type, and any filters or relevance modifiers that should apply to each type, etc. Multiple FeedComposition instances can be added to compose different types of entities in the feed in the rotation. */ + public Feed addToCompositions(FeedComposition compositions) + { + if (this.compositions == null) + { + this.compositions = new ArrayList<>(); + } + this.compositions.add(compositions); + return this; + } + /** Defines which properties to include for recommended products. When not set, only IDs will be returned. */ + public Feed setSelectedProductProperties(@Nullable SelectedProductPropertiesSettings selectedProductProperties) + { + this.selectedProductProperties = selectedProductProperties; + return this; + } + /** Defines which properties to include for recommended variants. When not set, only IDs will be returned. */ + public Feed setSelectedVariantProperties(@Nullable SelectedVariantPropertiesSettings selectedVariantProperties) + { + this.selectedVariantProperties = selectedVariantProperties; + return this; + } + /** Defines which properties to include for recommended content. When not set, only IDs will be returned. */ + public Feed setSelectedContentProperties(@Nullable SelectedContentPropertiesSettings selectedContentProperties) + { + this.selectedContentProperties = selectedContentProperties; + return this; + } + /** Defines if variants should be included for returned products */ + public Feed setRecommendVariant(@Nullable Boolean recommendVariant) + { + this.recommendVariant = recommendVariant; + return this; + } + /** Defines if products should be excluded if they are currently present in the users Cart */ + public Feed setAllowProductsCurrentlyInCart(@Nullable Boolean allowProductsCurrentlyInCart) + { + this.allowProductsCurrentlyInCart = allowProductsCurrentlyInCart; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/FeedComposition.java b/src/src/main/java/com/relewise/client/model/FeedComposition.java new file mode 100644 index 00000000..0847f90f --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/FeedComposition.java @@ -0,0 +1,148 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Defines an element in the feed composition, specifying the type of entity, the count of entities to include, as well as any filters or relevance modifiers that should be applied in addition to any global ones. */ +@JsonIgnoreProperties(ignoreUnknown = true) +public class FeedComposition +{ + /** Gets or sets the type of the entity. */ + public FeedCompositionEntityType type; + /** Gets or sets the desired number of elements to return. 1-1 means exactly 1 element, 0-1 means up to 1 element, 1-5 means between 1 and 5 elements, etc. If the lower bound and upper bound are not equal, the evaluated relevancy will determine how many elements within the allowed range to return. If the lower bound is greater than 0, the feed will always return at least that many elements (unless overridden via Fill), potentially of lower quality. If fewer relevant items are available than requested, the default fill strategy will be used, unless overridden via Fill. Note: The specified lower bound is not guaranteed to be met if filters on either FeedRecommendationInitializationRequest, FeedComposition, or via Merchandising prevent the requested number of items from being found. */ + public IntegerRange count; + /** Additional filters that should be applied. */ + public @Nullable FilterCollection filters; + /** Additional relevance modifiers that should be applied. */ + public @Nullable RelevanceModifierCollection relevanceModifiers; + /** Optionally provide an alternative fill strategy for this composition element, which will be used if fewer relevant items are available than requested via the lower bound of Count. Tip: You may recursively configure a nested chain of fallbacks via Fill on the Fill element for advanced composition needs. */ + public @Nullable FeedComposition fill; + /** An optional name for the composition element, useful if you need to know from which composition element a result entity was returned for rendering or debugging purposes. If set, this name will be returned for results based on this composition element in Name. */ + public @Nullable String name; + /** Determines whether to include empty results for this composition element. Useful in combination with Name if you need to show a placeholder or alternative content when no results are found for this composition element. The default is false, meaning empty results will not be included in recommendation responses. */ + public Boolean includeEmptyResults; + /** If specified, this composition will only be included in the rotation the specified number of times. Any subsequent rotations will exclude this composition element. */ + public @Nullable Integer rotationLimit; + /** + * Initializes a new instance of the FeedComposition class. + * @param type The type of the entity represented by this composition element. + * @param count The desired range of counts for the entity. The lower bound must be greater than or equal to 0, and the upper bound must be greater than or equal to the lower bound. + */ + public static FeedComposition create(FeedCompositionEntityType type, IntegerRange count) + { + return new FeedComposition(type, count); + } + /** + * Initializes a new instance of the FeedComposition class. + * @param type The type of the entity represented by this composition element. + * @param count The desired range of counts for the entity. The lower bound must be greater than or equal to 0, and the upper bound must be greater than or equal to the lower bound. + */ + public FeedComposition(FeedCompositionEntityType type, IntegerRange count) + { + this.type = type; + this.count = count; + } + public FeedComposition() + { + } + /** Gets or sets the type of the entity. */ + public FeedCompositionEntityType getType() + { + return this.type; + } + /** Gets or sets the desired number of elements to return. 1-1 means exactly 1 element, 0-1 means up to 1 element, 1-5 means between 1 and 5 elements, etc. If the lower bound and upper bound are not equal, the evaluated relevancy will determine how many elements within the allowed range to return. If the lower bound is greater than 0, the feed will always return at least that many elements (unless overridden via Fill), potentially of lower quality. If fewer relevant items are available than requested, the default fill strategy will be used, unless overridden via Fill. Note: The specified lower bound is not guaranteed to be met if filters on either FeedRecommendationInitializationRequest, FeedComposition, or via Merchandising prevent the requested number of items from being found. */ + public IntegerRange getCount() + { + return this.count; + } + /** Additional filters that should be applied. */ + public @Nullable FilterCollection getFilters() + { + return this.filters; + } + /** Additional relevance modifiers that should be applied. */ + public @Nullable RelevanceModifierCollection getRelevanceModifiers() + { + return this.relevanceModifiers; + } + /** Optionally provide an alternative fill strategy for this composition element, which will be used if fewer relevant items are available than requested via the lower bound of Count. Tip: You may recursively configure a nested chain of fallbacks via Fill on the Fill element for advanced composition needs. */ + public @Nullable FeedComposition getFill() + { + return this.fill; + } + /** An optional name for the composition element, useful if you need to know from which composition element a result entity was returned for rendering or debugging purposes. If set, this name will be returned for results based on this composition element in Name. */ + public @Nullable String getName() + { + return this.name; + } + /** Determines whether to include empty results for this composition element. Useful in combination with Name if you need to show a placeholder or alternative content when no results are found for this composition element. The default is false, meaning empty results will not be included in recommendation responses. */ + public Boolean getIncludeEmptyResults() + { + return this.includeEmptyResults; + } + /** If specified, this composition will only be included in the rotation the specified number of times. Any subsequent rotations will exclude this composition element. */ + public @Nullable Integer getRotationLimit() + { + return this.rotationLimit; + } + /** Gets or sets the type of the entity. */ + public FeedComposition setType(FeedCompositionEntityType type) + { + this.type = type; + return this; + } + /** Gets or sets the desired number of elements to return. 1-1 means exactly 1 element, 0-1 means up to 1 element, 1-5 means between 1 and 5 elements, etc. If the lower bound and upper bound are not equal, the evaluated relevancy will determine how many elements within the allowed range to return. If the lower bound is greater than 0, the feed will always return at least that many elements (unless overridden via Fill), potentially of lower quality. If fewer relevant items are available than requested, the default fill strategy will be used, unless overridden via Fill. Note: The specified lower bound is not guaranteed to be met if filters on either FeedRecommendationInitializationRequest, FeedComposition, or via Merchandising prevent the requested number of items from being found. */ + public FeedComposition setCount(IntegerRange count) + { + this.count = count; + return this; + } + /** Additional filters that should be applied. */ + public FeedComposition setFilters(@Nullable FilterCollection filters) + { + this.filters = filters; + return this; + } + /** Additional relevance modifiers that should be applied. */ + public FeedComposition setRelevanceModifiers(@Nullable RelevanceModifierCollection relevanceModifiers) + { + this.relevanceModifiers = relevanceModifiers; + return this; + } + /** Optionally provide an alternative fill strategy for this composition element, which will be used if fewer relevant items are available than requested via the lower bound of Count. Tip: You may recursively configure a nested chain of fallbacks via Fill on the Fill element for advanced composition needs. */ + public FeedComposition setFill(@Nullable FeedComposition fill) + { + this.fill = fill; + return this; + } + /** An optional name for the composition element, useful if you need to know from which composition element a result entity was returned for rendering or debugging purposes. If set, this name will be returned for results based on this composition element in Name. */ + public FeedComposition setName(@Nullable String name) + { + this.name = name; + return this; + } + /** Determines whether to include empty results for this composition element. Useful in combination with Name if you need to show a placeholder or alternative content when no results are found for this composition element. The default is false, meaning empty results will not be included in recommendation responses. */ + public FeedComposition setIncludeEmptyResults(Boolean includeEmptyResults) + { + this.includeEmptyResults = includeEmptyResults; + return this; + } + /** If specified, this composition will only be included in the rotation the specified number of times. Any subsequent rotations will exclude this composition element. */ + public FeedComposition setRotationLimit(@Nullable Integer rotationLimit) + { + this.rotationLimit = rotationLimit; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/FeedCompositionEntityType.java b/src/src/main/java/com/relewise/client/model/FeedCompositionEntityType.java new file mode 100644 index 00000000..d9dc8653 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/FeedCompositionEntityType.java @@ -0,0 +1,31 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Supported entity types for feed composition. */ +public enum FeedCompositionEntityType +{ + Product { + public String toString() { + return "Product"; + } + }, + Content { + public String toString() { + return "Content"; + } + }, +} diff --git a/src/src/main/java/com/relewise/client/model/FeedCompositionResult.java b/src/src/main/java/com/relewise/client/model/FeedCompositionResult.java new file mode 100644 index 00000000..55a63293 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/FeedCompositionResult.java @@ -0,0 +1,103 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class FeedCompositionResult +{ + /** The name of the configured Name if specified, otherwise null. */ + public @Nullable String name; + /** If this composition is of type Product, contains any product results, otherwise null. */ + public @Nullable ProductResult[] products; + /** If this composition is of type Content, contains any content results, otherwise null. */ + public @Nullable ContentResult[] content; + public static FeedCompositionResult create(@Nullable String name, @Nullable ProductResult[] products, ContentResult... content) + { + return new FeedCompositionResult(name, products, content); + } + public FeedCompositionResult(@Nullable String name, @Nullable ProductResult[] products, ContentResult... content) + { + this.name = name; + this.products = products; + this.content = content; + } + public FeedCompositionResult() + { + } + /** The name of the configured Name if specified, otherwise null. */ + public @Nullable String getName() + { + return this.name; + } + /** If this composition is of type Product, contains any product results, otherwise null. */ + public @Nullable ProductResult[] getProducts() + { + return this.products; + } + /** If this composition is of type Content, contains any content results, otherwise null. */ + public @Nullable ContentResult[] getContent() + { + return this.content; + } + /** The name of the configured Name if specified, otherwise null. */ + public FeedCompositionResult setName(@Nullable String name) + { + this.name = name; + return this; + } + /** If this composition is of type Product, contains any product results, otherwise null. */ + public FeedCompositionResult setProducts(ProductResult... products) + { + this.products = products; + return this; + } + /** If this composition is of type Product, contains any product results, otherwise null. */ + public FeedCompositionResult addToProducts(ProductResult product) + { + if (this.products == null) + { + this.products = new ProductResult[] { product }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.products)); + existingList.add(product); + this.products = existingList.toArray(new ProductResult[0]); + } + return this; + } + /** If this composition is of type Content, contains any content results, otherwise null. */ + public FeedCompositionResult setContent(ContentResult... content) + { + this.content = content; + return this; + } + /** If this composition is of type Content, contains any content results, otherwise null. */ + public FeedCompositionResult addToContent(ContentResult content) + { + if (this.content == null) + { + this.content = new ContentResult[] { content }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.content)); + existingList.add(content); + this.content = existingList.toArray(new ContentResult[0]); + } + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/FeedDwell.java b/src/src/main/java/com/relewise/client/model/FeedDwell.java new file mode 100644 index 00000000..1f8d64cc --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/FeedDwell.java @@ -0,0 +1,123 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Represents user dwell time tracking for feed items, capturing how long a user spent viewing specific items in a feed. Used to measure user engagement and improve future feed recommendations based on time spent consuming content. */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = FeedDwell.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class FeedDwell extends Trackable implements IUserIdentifier +{ + public String $type = "Relewise.Client.DataTypes.Feed.FeedDwell, Relewise.Client"; + /** The user who dwelled on the feed items. */ + public @Nullable User user; + /** The unique identifier of the feed where the dwell occurred. This corresponds to the InitializedFeedId from a feed recommendation response. */ + public UUID feedId; + /** The total time in milliseconds that the user spent viewing the visible items. Must be greater than 0. */ + public Integer dwellTimeMilliseconds; + /** The collection of feed items that were visible to the user during the dwell period. Must contain at least one item. */ + public FeedItem[] visibleItems; + /** + * Initializes a new instance of the FeedDwell class. + * @param user The user who was viewing the feed items. Must be an authenticated user. + * @param feedId The unique identifier of the feed where the dwell occurred. + * @param dwellTimeMilliseconds The total time in milliseconds that the user spent viewing the visible items. + * @param visibleItems The collection of feed items that were visible to the user during the dwell period. + */ + public static FeedDwell create(User user, UUID feedId, Integer dwellTimeMilliseconds, FeedItem... visibleItems) + { + return new FeedDwell(user, feedId, dwellTimeMilliseconds, visibleItems); + } + /** + * Initializes a new instance of the FeedDwell class. + * @param user The user who was viewing the feed items. Must be an authenticated user. + * @param feedId The unique identifier of the feed where the dwell occurred. + * @param dwellTimeMilliseconds The total time in milliseconds that the user spent viewing the visible items. + * @param visibleItems The collection of feed items that were visible to the user during the dwell period. + */ + public FeedDwell(User user, UUID feedId, Integer dwellTimeMilliseconds, FeedItem... visibleItems) + { + this.user = user; + this.feedId = feedId; + this.dwellTimeMilliseconds = dwellTimeMilliseconds; + this.visibleItems = visibleItems; + } + public FeedDwell() + { + } + /** The user who dwelled on the feed items. */ + public @Nullable User getUser() + { + return this.user; + } + /** The unique identifier of the feed where the dwell occurred. This corresponds to the InitializedFeedId from a feed recommendation response. */ + public UUID getFeedId() + { + return this.feedId; + } + /** The total time in milliseconds that the user spent viewing the visible items. Must be greater than 0. */ + public Integer getDwellTimeMilliseconds() + { + return this.dwellTimeMilliseconds; + } + /** The collection of feed items that were visible to the user during the dwell period. Must contain at least one item. */ + public FeedItem[] getVisibleItems() + { + return this.visibleItems; + } + /** The user who dwelled on the feed items. */ + public FeedDwell setUser(@Nullable User user) + { + this.user = user; + return this; + } + /** The unique identifier of the feed where the dwell occurred. This corresponds to the InitializedFeedId from a feed recommendation response. */ + public FeedDwell setFeedId(UUID feedId) + { + this.feedId = feedId; + return this; + } + /** The total time in milliseconds that the user spent viewing the visible items. Must be greater than 0. */ + public FeedDwell setDwellTimeMilliseconds(Integer dwellTimeMilliseconds) + { + this.dwellTimeMilliseconds = dwellTimeMilliseconds; + return this; + } + /** The collection of feed items that were visible to the user during the dwell period. Must contain at least one item. */ + public FeedDwell setVisibleItems(FeedItem... visibleItems) + { + this.visibleItems = visibleItems; + return this; + } + /** The collection of feed items that were visible to the user during the dwell period. Must contain at least one item. */ + public FeedDwell addToVisibleItems(FeedItem visibleItem) + { + if (this.visibleItems == null) + { + this.visibleItems = new FeedItem[] { visibleItem }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.visibleItems)); + existingList.add(visibleItem); + this.visibleItems = existingList.toArray(new FeedItem[0]); + } + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/FeedItem.java b/src/src/main/java/com/relewise/client/model/FeedItem.java new file mode 100644 index 00000000..d4d3a79e --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/FeedItem.java @@ -0,0 +1,67 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Represents a single item in a feed, which can be either a product (with optional variant) or content. Used to specify items for feed operations such as tracking user interactions via FeedItemPreview, and FeedDwell. */ +@JsonIgnoreProperties(ignoreUnknown = true) +public class FeedItem +{ + /** The product and variant identifier for this feed item. Set this property when the feed item represents a product, either with or without a specific variant. Cannot be set simultaneously with ContentId. */ + public @Nullable ProductAndVariantId productAndVariantId; + /** The content identifier for this feed item. Set this property when the feed item represents content. Cannot be set simultaneously with ProductAndVariantId. */ + public @Nullable String contentId; + /** + * Initializes a new instance of the FeedItem class with a product and optional variant. + * @param productAndVariantId The product and variant identifier for this feed item. + */ + public static FeedItem create(ProductAndVariantId productAndVariantId) + { + return new FeedItem(productAndVariantId); + } + /** + * Initializes a new instance of the FeedItem class with a product and optional variant. + * @param productAndVariantId The product and variant identifier for this feed item. + */ + public FeedItem(ProductAndVariantId productAndVariantId) + { + this.productAndVariantId = productAndVariantId; + } + public FeedItem() + { + } + /** The product and variant identifier for this feed item. Set this property when the feed item represents a product, either with or without a specific variant. Cannot be set simultaneously with ContentId. */ + public @Nullable ProductAndVariantId getProductAndVariantId() + { + return this.productAndVariantId; + } + /** The content identifier for this feed item. Set this property when the feed item represents content. Cannot be set simultaneously with ProductAndVariantId. */ + public @Nullable String getContentId() + { + return this.contentId; + } + /** The product and variant identifier for this feed item. Set this property when the feed item represents a product, either with or without a specific variant. Cannot be set simultaneously with ContentId. */ + public FeedItem setProductAndVariantId(@Nullable ProductAndVariantId productAndVariantId) + { + this.productAndVariantId = productAndVariantId; + return this; + } + /** The content identifier for this feed item. Set this property when the feed item represents content. Cannot be set simultaneously with ProductAndVariantId. */ + public FeedItem setContentId(@Nullable String contentId) + { + this.contentId = contentId; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/FeedItemClick.java b/src/src/main/java/com/relewise/client/model/FeedItemClick.java new file mode 100644 index 00000000..98a08969 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/FeedItemClick.java @@ -0,0 +1,92 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Represents a user clicking interaction with a specific feed item. Typically used to track when navigating to the details page of the item from the feed. */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = FeedItemClick.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class FeedItemClick extends Trackable implements IUserIdentifier +{ + public String $type = "Relewise.Client.DataTypes.Feed.FeedItemClick, Relewise.Client"; + /** The user who clicked the feed item. */ + public @Nullable User user; + /** The unique identifier of the feed where the click occurred. This corresponds to the InitializedFeedId from a feed recommendation response. */ + public UUID feedId; + /** The specific feed item that was clicked. Can represent either a product (with optional variant) or content. */ + public FeedItem item; + /** + * Initializes a new instance of the FeedItemClick class. + * @param user The user who clicked the feed item. Must be an authenticated user. + * @param feedId The unique identifier of the feed where the click occurred. + * @param item The specific feed item that was clicked. + */ + public static FeedItemClick create(User user, UUID feedId, FeedItem item) + { + return new FeedItemClick(user, feedId, item); + } + /** + * Initializes a new instance of the FeedItemClick class. + * @param user The user who clicked the feed item. Must be an authenticated user. + * @param feedId The unique identifier of the feed where the click occurred. + * @param item The specific feed item that was clicked. + */ + public FeedItemClick(User user, UUID feedId, FeedItem item) + { + this.user = user; + this.feedId = feedId; + this.item = item; + } + public FeedItemClick() + { + } + /** The user who clicked the feed item. */ + public @Nullable User getUser() + { + return this.user; + } + /** The unique identifier of the feed where the click occurred. This corresponds to the InitializedFeedId from a feed recommendation response. */ + public UUID getFeedId() + { + return this.feedId; + } + /** The specific feed item that was clicked. Can represent either a product (with optional variant) or content. */ + public FeedItem getItem() + { + return this.item; + } + /** The user who clicked the feed item. */ + public FeedItemClick setUser(@Nullable User user) + { + this.user = user; + return this; + } + /** The unique identifier of the feed where the click occurred. This corresponds to the InitializedFeedId from a feed recommendation response. */ + public FeedItemClick setFeedId(UUID feedId) + { + this.feedId = feedId; + return this; + } + /** The specific feed item that was clicked. Can represent either a product (with optional variant) or content. */ + public FeedItemClick setItem(FeedItem item) + { + this.item = item; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/FeedItemPreview.java b/src/src/main/java/com/relewise/client/model/FeedItemPreview.java new file mode 100644 index 00000000..544c90a8 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/FeedItemPreview.java @@ -0,0 +1,92 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Represents a user preview interaction with a specific feed item, typically when an item in the feed is opened in an overlay or zoomed to full viewport Used to track user engagement and interest in feed items to improve future recommendations and measure item visibility. */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = FeedItemPreview.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class FeedItemPreview extends Trackable implements IUserIdentifier +{ + public String $type = "Relewise.Client.DataTypes.Feed.FeedItemPreview, Relewise.Client"; + /** The user who previewed the feed item. */ + public @Nullable User user; + /** The unique identifier of the feed where the preview occurred. This corresponds to the InitializedFeedId from a feed recommendation response. */ + public UUID feedId; + /** The specific feed item that was previewed. Can represent either a product (with optional variant) or content. */ + public FeedItem item; + /** + * Initializes a new instance of the FeedItemPreview class. + * @param user The user who previewed the feed item. Must be an authenticated user. + * @param feedId The unique identifier of the feed where the preview occurred. + * @param item The specific feed item that was previewed. + */ + public static FeedItemPreview create(User user, UUID feedId, FeedItem item) + { + return new FeedItemPreview(user, feedId, item); + } + /** + * Initializes a new instance of the FeedItemPreview class. + * @param user The user who previewed the feed item. Must be an authenticated user. + * @param feedId The unique identifier of the feed where the preview occurred. + * @param item The specific feed item that was previewed. + */ + public FeedItemPreview(User user, UUID feedId, FeedItem item) + { + this.user = user; + this.feedId = feedId; + this.item = item; + } + public FeedItemPreview() + { + } + /** The user who previewed the feed item. */ + public @Nullable User getUser() + { + return this.user; + } + /** The unique identifier of the feed where the preview occurred. This corresponds to the InitializedFeedId from a feed recommendation response. */ + public UUID getFeedId() + { + return this.feedId; + } + /** The specific feed item that was previewed. Can represent either a product (with optional variant) or content. */ + public FeedItem getItem() + { + return this.item; + } + /** The user who previewed the feed item. */ + public FeedItemPreview setUser(@Nullable User user) + { + this.user = user; + return this; + } + /** The unique identifier of the feed where the preview occurred. This corresponds to the InitializedFeedId from a feed recommendation response. */ + public FeedItemPreview setFeedId(UUID feedId) + { + this.feedId = feedId; + return this; + } + /** The specific feed item that was previewed. Can represent either a product (with optional variant) or content. */ + public FeedItemPreview setItem(FeedItem item) + { + this.item = item; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/FeedRecommendationInitializationRequest.java b/src/src/main/java/com/relewise/client/model/FeedRecommendationInitializationRequest.java new file mode 100644 index 00000000..fa52964d --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/FeedRecommendationInitializationRequest.java @@ -0,0 +1,115 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Used to initialize a feed recommendation for a user (including anonymous ones). Once initialized, additional pages for the feed can be requested using the lightweight FeedRecommendationNextItemsRequest. You may specify any global filters or relevance modifiers that should apply to the entire feed, such as filtering out products that are not in stock, or relevance modifiers that should apply to all products in the feed. Individual FeedComposition instances can also specify their own additional filters and relevance modifiers, which will be applied only to the elements in that specific composition element. */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = FeedRecommendationInitializationRequest.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class FeedRecommendationInitializationRequest extends RecommendationRequest implements IUserIdentifier +{ + public String $type = "Relewise.Client.Requests.Recommendations.Feed.FeedRecommendationInitializationRequest, Relewise.Client"; + /** Defines the settings for the feed recommendation, including page size, seed settings, composition of entities, selected properties for products, variants and content. */ + public Feed feed; + /** + * Initializes a new instance of the FeedRecommendationInitializationRequest class. + * @param language The language to return results in. + * @param currency The currency to return results for. + * @param displayedAtLocationType A short name describing the type of page or location where you intend to show the results from this recommendation request, e.g., "Product details page", "Front page", "Cart page", etc. + * @param user The user performing the request, or User.Anonymous(...). + * @param feed The settings determining how the feed will be composed, filtered, page size, seed, etc. + */ + public static FeedRecommendationInitializationRequest create(@Nullable Language language, @Nullable Currency currency, String displayedAtLocationType, User user, Feed feed) + { + return new FeedRecommendationInitializationRequest(language, currency, displayedAtLocationType, user, feed); + } + /** + * Initializes a new instance of the FeedRecommendationInitializationRequest class. + * @param language The language to return results in. + * @param currency The currency to return results for. + * @param displayedAtLocationType A short name describing the type of page or location where you intend to show the results from this recommendation request, e.g., "Product details page", "Front page", "Cart page", etc. + * @param user The user performing the request, or User.Anonymous(...). + * @param feed The settings determining how the feed will be composed, filtered, page size, seed, etc. + */ + public FeedRecommendationInitializationRequest(@Nullable Language language, @Nullable Currency currency, String displayedAtLocationType, User user, Feed feed) + { + this.language = language; + this.currency = currency; + this.displayedAtLocationType = displayedAtLocationType; + this.user = user; + this.feed = feed; + } + public FeedRecommendationInitializationRequest() + { + } + /** Defines the settings for the feed recommendation, including page size, seed settings, composition of entities, selected properties for products, variants and content. */ + public Feed getFeed() + { + return this.feed; + } + /** Defines the settings for the feed recommendation, including page size, seed settings, composition of entities, selected properties for products, variants and content. */ + public FeedRecommendationInitializationRequest setFeed(Feed feed) + { + this.feed = feed; + return this; + } + @Override + public FeedRecommendationInitializationRequest setLanguage(@Nullable Language language) + { + this.language = language; + return this; + } + @Override + public FeedRecommendationInitializationRequest setUser(@Nullable User user) + { + this.user = user; + return this; + } + @Override + public FeedRecommendationInitializationRequest setRelevanceModifiers(RelevanceModifierCollection relevanceModifiers) + { + this.relevanceModifiers = relevanceModifiers; + return this; + } + @Override + public FeedRecommendationInitializationRequest setFilters(FilterCollection filters) + { + this.filters = filters; + return this; + } + @Override + public FeedRecommendationInitializationRequest setDisplayedAtLocationType(String displayedAtLocationType) + { + this.displayedAtLocationType = displayedAtLocationType; + return this; + } + @Override + public FeedRecommendationInitializationRequest setCurrency(@Nullable Currency currency) + { + this.currency = currency; + return this; + } + /** @deprecated Use User.Channel instead. */ + @Override + public FeedRecommendationInitializationRequest setChannel(@Nullable Channel channel) + { + this.channel = channel; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/FeedRecommendationNextItemsRequest.java b/src/src/main/java/com/relewise/client/model/FeedRecommendationNextItemsRequest.java new file mode 100644 index 00000000..1bc2935d --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/FeedRecommendationNextItemsRequest.java @@ -0,0 +1,60 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** A lightweight request for the next page of recommendations for an already initialized feed. A new feed must first be initialized using FeedRecommendationInitializationRequest before this request can be made. */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = FeedRecommendationNextItemsRequest.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class FeedRecommendationNextItemsRequest extends LicensedRequest +{ + public String $type = "Relewise.Client.Requests.Recommendations.Feed.FeedRecommendationNextItemsRequest, Relewise.Client"; + /** The ID of the initialized feed to get the next page of recommendations from. This ID is first returned as InitializedFeedId as a result of a successful FeedRecommendationInitializationRequest. */ + public UUID initializedFeedId; + /** + * Initializes a new instance of the FeedRecommendationNextItemsRequest class for fetching subsequent pages of a feed already initialized via FeedRecommendationInitializationRequest. + * @param initializedFeedId The ID of the initialized feed to get the next page of recommendations for. + */ + public static FeedRecommendationNextItemsRequest create(UUID initializedFeedId) + { + return new FeedRecommendationNextItemsRequest(initializedFeedId); + } + /** + * Initializes a new instance of the FeedRecommendationNextItemsRequest class for fetching subsequent pages of a feed already initialized via FeedRecommendationInitializationRequest. + * @param initializedFeedId The ID of the initialized feed to get the next page of recommendations for. + */ + public FeedRecommendationNextItemsRequest(UUID initializedFeedId) + { + this.initializedFeedId = initializedFeedId; + } + public FeedRecommendationNextItemsRequest() + { + } + /** The ID of the initialized feed to get the next page of recommendations from. This ID is first returned as InitializedFeedId as a result of a successful FeedRecommendationInitializationRequest. */ + public UUID getInitializedFeedId() + { + return this.initializedFeedId; + } + /** The ID of the initialized feed to get the next page of recommendations from. This ID is first returned as InitializedFeedId as a result of a successful FeedRecommendationInitializationRequest. */ + public FeedRecommendationNextItemsRequest setInitializedFeedId(UUID initializedFeedId) + { + this.initializedFeedId = initializedFeedId; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/FeedRecommendationResponse.java b/src/src/main/java/com/relewise/client/model/FeedRecommendationResponse.java new file mode 100644 index 00000000..8cec18eb --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/FeedRecommendationResponse.java @@ -0,0 +1,97 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** The response type for FeedRecommendationInitializationRequest for initialization and retrieval of the first page of results, and FeedRecommendationNextItemsRequest for subsequent pages of results. Contains the initialized feed ID and a collection of FeedCompositionResult which may contain either product or content results, depending on the request composition configuration. */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = FeedRecommendationResponse.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class FeedRecommendationResponse extends RecommendationResponse +{ + public String $type = "Relewise.Client.Responses.FeedRecommendationResponse, Relewise.Client"; + /** The ID of the initialized feed. This ID is needed in future requests of type FeedRecommendationNextItemsRequest to retrieve additional results for the initialized feed. Once a feed has been initialized via FeedRecommendationInitializationRequest, the returned InitializedFeedId can be stored and reused to retrieve all subsequent pages of results using FeedRecommendationNextItemsRequest. */ + public UUID initializedFeedId; + /** The feed recommendations consisting of a collection of FeedCompositionResult, each containing either product or content results, and optionally the composition name if requested. Note: May contain empty cFeedComposition if requested via IncludeEmptyResults. */ + public FeedCompositionResult[] recommendations; + /** + * Initializes a new instance of the FeedRecommendationResponse class with the specified feed ID. + * @param initializedFeedId The ID of the initialized feed. + * @param recommendations The recommended feed items + */ + public static FeedRecommendationResponse create(UUID initializedFeedId, FeedCompositionResult... recommendations) + { + return new FeedRecommendationResponse(initializedFeedId, recommendations); + } + /** + * Initializes a new instance of the FeedRecommendationResponse class with the specified feed ID. + * @param initializedFeedId The ID of the initialized feed. + * @param recommendations The recommended feed items + */ + public FeedRecommendationResponse(UUID initializedFeedId, FeedCompositionResult... recommendations) + { + this.initializedFeedId = initializedFeedId; + this.recommendations = recommendations; + } + public FeedRecommendationResponse() + { + } + /** The ID of the initialized feed. This ID is needed in future requests of type FeedRecommendationNextItemsRequest to retrieve additional results for the initialized feed. Once a feed has been initialized via FeedRecommendationInitializationRequest, the returned InitializedFeedId can be stored and reused to retrieve all subsequent pages of results using FeedRecommendationNextItemsRequest. */ + public UUID getInitializedFeedId() + { + return this.initializedFeedId; + } + /** The feed recommendations consisting of a collection of FeedCompositionResult, each containing either product or content results, and optionally the composition name if requested. Note: May contain empty cFeedComposition if requested via IncludeEmptyResults. */ + public FeedCompositionResult[] getRecommendations() + { + return this.recommendations; + } + /** The ID of the initialized feed. This ID is needed in future requests of type FeedRecommendationNextItemsRequest to retrieve additional results for the initialized feed. Once a feed has been initialized via FeedRecommendationInitializationRequest, the returned InitializedFeedId can be stored and reused to retrieve all subsequent pages of results using FeedRecommendationNextItemsRequest. */ + public FeedRecommendationResponse setInitializedFeedId(UUID initializedFeedId) + { + this.initializedFeedId = initializedFeedId; + return this; + } + /** The feed recommendations consisting of a collection of FeedCompositionResult, each containing either product or content results, and optionally the composition name if requested. Note: May contain empty cFeedComposition if requested via IncludeEmptyResults. */ + public FeedRecommendationResponse setRecommendations(FeedCompositionResult... recommendations) + { + this.recommendations = recommendations; + return this; + } + /** The feed recommendations consisting of a collection of FeedCompositionResult, each containing either product or content results, and optionally the composition name if requested. Note: May contain empty cFeedComposition if requested via IncludeEmptyResults. */ + public FeedRecommendationResponse addToRecommendations(FeedCompositionResult recommendation) + { + if (this.recommendations == null) + { + this.recommendations = new FeedCompositionResult[] { recommendation }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.recommendations)); + existingList.add(recommendation); + this.recommendations = existingList.toArray(new FeedCompositionResult[0]); + } + return this; + } + @Override + public FeedRecommendationResponse setStatistics(Statistics statistics) + { + this.statistics = statistics; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/FeedSeed.java b/src/src/main/java/com/relewise/client/model/FeedSeed.java new file mode 100644 index 00000000..b8983392 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/FeedSeed.java @@ -0,0 +1,75 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Defines the settings for seeding the feed with specific products or content. Useful, for example, when you want to show a feed based on specific product(s) or content, such as for a feed on a PDP/CDP, a shopping cart, or an order. */ +@JsonIgnoreProperties(ignoreUnknown = true) +public class FeedSeed +{ + /** Optionally used to seed the feed with specific product IDs (optionally also with variant IDs), e.g., a single product for a PDP or one to many products for a shopping cart or order. */ + public @Nullable ArrayList productAndVariantIds; + /** Optionally used to seed the feed with specific content, e.g., a single content ID for a CDP. */ + public @Nullable ArrayList contentIds; + public static FeedSeed create() + { + return new FeedSeed(); + } + public FeedSeed() + { + } + /** Optionally used to seed the feed with specific product IDs (optionally also with variant IDs), e.g., a single product for a PDP or one to many products for a shopping cart or order. */ + public @Nullable ArrayList getProductAndVariantIds() + { + return this.productAndVariantIds; + } + /** Optionally used to seed the feed with specific content, e.g., a single content ID for a CDP. */ + public @Nullable ArrayList getContentIds() + { + return this.contentIds; + } + /** Optionally used to seed the feed with specific product IDs (optionally also with variant IDs), e.g., a single product for a PDP or one to many products for a shopping cart or order. */ + public FeedSeed setProductAndVariantIds(ProductAndVariantId... productAndVariantIds) + { + this.productAndVariantIds = new ArrayList<>(Arrays.asList(productAndVariantIds));; + return this; + } + /** Optionally used to seed the feed with specific product IDs (optionally also with variant IDs), e.g., a single product for a PDP or one to many products for a shopping cart or order. */ + public FeedSeed addToProductAndVariantIds(ProductAndVariantId productAndVariantIds) + { + if (this.productAndVariantIds == null) + { + this.productAndVariantIds = new ArrayList<>(); + } + this.productAndVariantIds.add(productAndVariantIds); + return this; + } + /** Optionally used to seed the feed with specific content, e.g., a single content ID for a CDP. */ + public FeedSeed setContentIds(String... contentIds) + { + this.contentIds = new ArrayList<>(Arrays.asList(contentIds));; + return this; + } + /** Optionally used to seed the feed with specific content, e.g., a single content ID for a CDP. */ + public FeedSeed addToContentIds(String contentIds) + { + if (this.contentIds == null) + { + this.contentIds = new ArrayList<>(); + } + this.contentIds.add(contentIds); + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/Filter.java b/src/src/main/java/com/relewise/client/model/Filter.java index bc407f31..2614a828 100644 --- a/src/src/main/java/com/relewise/client/model/Filter.java +++ b/src/src/main/java/com/relewise/client/model/Filter.java @@ -90,6 +90,12 @@ @JsonSubTypes.Type(value = ProductHasCategoriesFilter.class, name = "Relewise.Client.Requests.Filters.ProductHasCategoriesFilter, Relewise.Client"), @JsonSubTypes.Type(value = ContentHasCategoriesFilter.class, name = "Relewise.Client.Requests.Filters.ContentHasCategoriesFilter, Relewise.Client"), @JsonSubTypes.Type(value = ProductInCartFilter.class, name = "Relewise.Client.Requests.Filters.ProductInCartFilter, Relewise.Client"), + @JsonSubTypes.Type(value = DisplayAdIdFilter.class, name = "Relewise.Client.Requests.Filters.DisplayAdIdFilter, Relewise.Client"), + @JsonSubTypes.Type(value = DisplayAdDataFilter.class, name = "Relewise.Client.Requests.Filters.DisplayAdDataFilter, Relewise.Client"), + @JsonSubTypes.Type(value = DisplayAdTemplateIdFilter.class, name = "Relewise.Client.Requests.Filters.DisplayAdTemplateIdFilter, Relewise.Client"), + @JsonSubTypes.Type(value = ProductEngagementFilter.class, name = "Relewise.Client.Requests.Filters.ProductEngagementFilter, Relewise.Client"), + @JsonSubTypes.Type(value = ContentEngagementFilter.class, name = "Relewise.Client.Requests.Filters.ContentEngagementFilter, Relewise.Client"), + @JsonSubTypes.Type(value = VariantEngagementFilter.class, name = "Relewise.Client.Requests.Filters.VariantEngagementFilter, Relewise.Client"), }) @JsonIgnoreProperties(ignoreUnknown = true) public abstract class Filter diff --git a/src/src/main/java/com/relewise/client/model/HasCompanyDataCondition.java b/src/src/main/java/com/relewise/client/model/HasCompanyDataCondition.java new file mode 100644 index 00000000..ad022cc8 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/HasCompanyDataCondition.java @@ -0,0 +1,115 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** a UserCondition that checks whether one of the User's Companys's data-bag has a Key whose value satisfies the provided Conditions. */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = HasCompanyDataCondition.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class HasCompanyDataCondition extends UserCondition +{ + public String $type = "Relewise.Client.DataTypes.UserConditions.HasCompanyDataCondition, Relewise.Client"; + /** The key that must be found in one of the User's Companys's data-bag for the UserCondition to be satisfied. */ + public String key; + /** The conditions that must be satisfied for the DataValue found at the Key in the Company's data-bag. */ + public @Nullable ValueConditionCollection conditions; + /** Specifies which of the companies associated to the User it should check the data of. It defaults to ImmediateCompany. */ + public CompanyScope evaluationScope; + public static HasCompanyDataCondition create(String key) + { + return new HasCompanyDataCondition(key); + } + public HasCompanyDataCondition(String key) + { + this.key = key; + this.conditions = null; + this.evaluationScope = CompanyScope.ImmediateCompany; + this.negated = false; + } + /** + * Constructs a UserCondition that checks whether one of the User's Companys's data-bag has a Key whose value satisfies the provided Conditions. + * @param key The key that must be found in one of the User's Companys's data-bag for the UserCondition to be satisfied. + * @param conditions The conditions that must be satisfied for the DataValue found at the Key in the Company's data-bag. + * @param evaluationScope Specifies which of the companies associated to the User it should check the data of. It defaults to ImmediateCompany. + * @param negated Whether the UserCondition should have opposite effect. + */ + public static HasCompanyDataCondition create(String key, @Nullable ValueConditionCollection conditions, CompanyScope evaluationScope, Boolean negated) + { + return new HasCompanyDataCondition(key, conditions, evaluationScope, negated); + } + /** + * Constructs a UserCondition that checks whether one of the User's Companys's data-bag has a Key whose value satisfies the provided Conditions. + * @param key The key that must be found in one of the User's Companys's data-bag for the UserCondition to be satisfied. + * @param conditions The conditions that must be satisfied for the DataValue found at the Key in the Company's data-bag. + * @param evaluationScope Specifies which of the companies associated to the User it should check the data of. It defaults to ImmediateCompany. + * @param negated Whether the UserCondition should have opposite effect. + */ + public HasCompanyDataCondition(String key, @Nullable ValueConditionCollection conditions, CompanyScope evaluationScope, Boolean negated) + { + this.key = key; + this.conditions = conditions; + this.evaluationScope = evaluationScope; + this.negated = negated; + } + public HasCompanyDataCondition() + { + this.conditions = null; + this.evaluationScope = CompanyScope.ImmediateCompany; + this.negated = false; + } + /** The key that must be found in one of the User's Companys's data-bag for the UserCondition to be satisfied. */ + public String getKey() + { + return this.key; + } + /** The conditions that must be satisfied for the DataValue found at the Key in the Company's data-bag. */ + public @Nullable ValueConditionCollection getConditions() + { + return this.conditions; + } + /** Specifies which of the companies associated to the User it should check the data of. It defaults to ImmediateCompany. */ + public CompanyScope getEvaluationScope() + { + return this.evaluationScope; + } + /** The key that must be found in one of the User's Companys's data-bag for the UserCondition to be satisfied. */ + public HasCompanyDataCondition setKey(String key) + { + this.key = key; + return this; + } + /** The conditions that must be satisfied for the DataValue found at the Key in the Company's data-bag. */ + public HasCompanyDataCondition setConditions(@Nullable ValueConditionCollection conditions) + { + this.conditions = conditions; + return this; + } + /** Specifies which of the companies associated to the User it should check the data of. It defaults to ImmediateCompany. */ + public HasCompanyDataCondition setEvaluationScope(CompanyScope evaluationScope) + { + this.evaluationScope = evaluationScope; + return this; + } + @Override + public HasCompanyDataCondition setNegated(Boolean negated) + { + this.negated = negated; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/IDisplayAdFilter.java b/src/src/main/java/com/relewise/client/model/IDisplayAdFilter.java new file mode 100644 index 00000000..a889f949 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/IDisplayAdFilter.java @@ -0,0 +1,20 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +public interface IDisplayAdFilter +{ +} diff --git a/src/src/main/java/com/relewise/client/model/IDisplayAdTemplateFilter.java b/src/src/main/java/com/relewise/client/model/IDisplayAdTemplateFilter.java new file mode 100644 index 00000000..6c4044d4 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/IDisplayAdTemplateFilter.java @@ -0,0 +1,20 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +public interface IDisplayAdTemplateFilter +{ +} diff --git a/src/src/main/java/com/relewise/client/model/LineItem.java b/src/src/main/java/com/relewise/client/model/LineItem.java index 3018389e..2f549f5d 100644 --- a/src/src/main/java/com/relewise/client/model/LineItem.java +++ b/src/src/main/java/com/relewise/client/model/LineItem.java @@ -15,9 +15,15 @@ import java.util.Set; import java.util.HashSet; +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = LineItem.class) @JsonIgnoreProperties(ignoreUnknown = true) public class LineItem { + public String $type = "Relewise.Client.DataTypes.LineItem, Relewise.Client"; public Product product; public @Nullable ProductVariant variant; public Float quantity; diff --git a/src/src/main/java/com/relewise/client/model/LineItemSelectedPropertiesSettings.java b/src/src/main/java/com/relewise/client/model/LineItemSelectedPropertiesSettings.java new file mode 100644 index 00000000..3ba6b88d --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/LineItemSelectedPropertiesSettings.java @@ -0,0 +1,88 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = LineItemSelectedPropertiesSettings.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class LineItemSelectedPropertiesSettings +{ + public String $type = "Relewise.Client.DataTypes.LineItem+SelectedPropertiesSettings, Relewise.Client"; + public @Nullable SelectedProductPropertiesSettings product; + public @Nullable SelectedVariantPropertiesSettings variant; + public Boolean allData; + public @Nullable String[] dataKeys; + public static LineItemSelectedPropertiesSettings create() + { + return new LineItemSelectedPropertiesSettings(); + } + public LineItemSelectedPropertiesSettings() + { + } + public @Nullable SelectedProductPropertiesSettings getProduct() + { + return this.product; + } + public @Nullable SelectedVariantPropertiesSettings getVariant() + { + return this.variant; + } + public Boolean getAllData() + { + return this.allData; + } + public @Nullable String[] getDataKeys() + { + return this.dataKeys; + } + public LineItemSelectedPropertiesSettings setProduct(@Nullable SelectedProductPropertiesSettings product) + { + this.product = product; + return this; + } + public LineItemSelectedPropertiesSettings setVariant(@Nullable SelectedVariantPropertiesSettings variant) + { + this.variant = variant; + return this; + } + public LineItemSelectedPropertiesSettings setAllData(Boolean allData) + { + this.allData = allData; + return this; + } + public LineItemSelectedPropertiesSettings setDataKeys(String... dataKeys) + { + this.dataKeys = dataKeys; + return this; + } + public LineItemSelectedPropertiesSettings addToDataKeys(String dataKey) + { + if (this.dataKeys == null) + { + this.dataKeys = new String[] { dataKey }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.dataKeys)); + existingList.add(dataKey); + this.dataKeys = existingList.toArray(new String[0]); + } + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/Location.java b/src/src/main/java/com/relewise/client/model/Location.java index f88d26dc..0b886b71 100644 --- a/src/src/main/java/com/relewise/client/model/Location.java +++ b/src/src/main/java/com/relewise/client/model/Location.java @@ -22,7 +22,7 @@ property = "$type", defaultImpl = Location.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class Location extends LocationEntityStateLocationMetadataValuesRetailMediaEntity +public class Location extends LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntity { public String $type = "Relewise.Client.DataTypes.RetailMedia.Location, Relewise.Client"; /** The name of this location, e.g. "Front page", "PDP", "Home screen" etc. */ diff --git a/src/src/main/java/com/relewise/client/model/LocationEntityStateLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest.java b/src/src/main/java/com/relewise/client/model/LocationEntityStateUUIDLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest.java similarity index 63% rename from src/src/main/java/com/relewise/client/model/LocationEntityStateLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest.java rename to src/src/main/java/com/relewise/client/model/LocationEntityStateUUIDLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest.java index 6c07ca28..1577a5ce 100644 --- a/src/src/main/java/com/relewise/client/model/LocationEntityStateLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest.java +++ b/src/src/main/java/com/relewise/client/model/LocationEntityStateUUIDLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class LocationEntityStateLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest extends LicensedRequest +public abstract class LocationEntityStateUUIDLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest extends LicensedRequest { public String $type = ""; public @Nullable LocationsRequestEntityFilters filters; @@ -45,22 +45,22 @@ public Integer getTake() { return this.take; } - public LocationEntityStateLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest setFilters(@Nullable LocationsRequestEntityFilters filters) + public LocationEntityStateUUIDLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest setFilters(@Nullable LocationsRequestEntityFilters filters) { this.filters = filters; return this; } - public LocationEntityStateLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest setSorting(@Nullable LocationsRequestSortBySorting sorting) + public LocationEntityStateUUIDLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest setSorting(@Nullable LocationsRequestSortBySorting sorting) { this.sorting = sorting; return this; } - public LocationEntityStateLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest setSkip(Integer skip) + public LocationEntityStateUUIDLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest setSkip(Integer skip) { this.skip = skip; return this; } - public LocationEntityStateLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest setTake(Integer take) + public LocationEntityStateUUIDLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest setTake(Integer take) { this.take = take; return this; diff --git a/src/src/main/java/com/relewise/client/model/LocationEntityStateLocationMetadataValuesRetailMediaEntity.java b/src/src/main/java/com/relewise/client/model/LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntity.java similarity index 75% rename from src/src/main/java/com/relewise/client/model/LocationEntityStateLocationMetadataValuesRetailMediaEntity.java rename to src/src/main/java/com/relewise/client/model/LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntity.java index 4a4fe862..8b7ad049 100644 --- a/src/src/main/java/com/relewise/client/model/LocationEntityStateLocationMetadataValuesRetailMediaEntity.java +++ b/src/src/main/java/com/relewise/client/model/LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntity.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class LocationEntityStateLocationMetadataValuesRetailMediaEntity extends RetailMediaEntity +public abstract class LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntity extends UUIDRetailMediaEntity { public String $type = ""; public LocationEntityState state; @@ -37,19 +37,19 @@ public LocationMetadataValues getMetadata() { return this.metadata; } - public LocationEntityStateLocationMetadataValuesRetailMediaEntity setState(LocationEntityState state) + public LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntity setState(LocationEntityState state) { this.state = state; return this; } /** Managed server side only, manually setting this will have no effect */ - public LocationEntityStateLocationMetadataValuesRetailMediaEntity setMetadata(LocationMetadataValues metadata) + public LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntity setMetadata(LocationMetadataValues metadata) { this.metadata = metadata; return this; } @Override - public LocationEntityStateLocationMetadataValuesRetailMediaEntity setId(@Nullable UUID id) + public LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntity setId(@Nullable UUID id) { this.id = id; return this; diff --git a/src/src/main/java/com/relewise/client/model/LocationEntityStateLocationMetadataValuesRetailMediaEntityEntityFilters.java b/src/src/main/java/com/relewise/client/model/LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntityEntityFilters.java similarity index 75% rename from src/src/main/java/com/relewise/client/model/LocationEntityStateLocationMetadataValuesRetailMediaEntityEntityFilters.java rename to src/src/main/java/com/relewise/client/model/LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntityEntityFilters.java index ae0e53e4..2345e64f 100644 --- a/src/src/main/java/com/relewise/client/model/LocationEntityStateLocationMetadataValuesRetailMediaEntityEntityFilters.java +++ b/src/src/main/java/com/relewise/client/model/LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntityEntityFilters.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class LocationEntityStateLocationMetadataValuesRetailMediaEntityEntityFilters +public abstract class LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntityEntityFilters { public String $type = ""; public @Nullable String term; @@ -35,12 +35,12 @@ public abstract class LocationEntityStateLocationMetadataValuesRetailMediaEntity { return this.states; } - public LocationEntityStateLocationMetadataValuesRetailMediaEntityEntityFilters setTerm(@Nullable String term) + public LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntityEntityFilters setTerm(@Nullable String term) { this.term = term; return this; } - public LocationEntityStateLocationMetadataValuesRetailMediaEntityEntityFilters setStates(LocationEntityState... states) + public LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntityEntityFilters setStates(LocationEntityState... states) { this.states = states; return this; diff --git a/src/src/main/java/com/relewise/client/model/LocationPlacement.java b/src/src/main/java/com/relewise/client/model/LocationPlacement.java index 7983b4c8..420b6653 100644 --- a/src/src/main/java/com/relewise/client/model/LocationPlacement.java +++ b/src/src/main/java/com/relewise/client/model/LocationPlacement.java @@ -27,6 +27,7 @@ public class LocationPlacement public @Nullable LocationPlacementVariationCollection variations; /** The minimum relevancy required by this Placement for results to be promoted. */ public @Nullable ScoreThresholds thresholds; + public @Nullable FilterCollection displayAdTemplateFilters; public static LocationPlacement create(String name, @Nullable LocationPlacementVariationCollection variations) { return new LocationPlacement(name, variations); @@ -67,6 +68,10 @@ public String getName() { return this.thresholds; } + public @Nullable FilterCollection getDisplayAdTemplateFilters() + { + return this.displayAdTemplateFilters; + } /** The name of this placement, e.g. "Top", "Bottom", "Right", "Overlay" etc. */ public LocationPlacement setName(String name) { @@ -91,4 +96,9 @@ public LocationPlacement setThresholds(@Nullable ScoreThresholds thresholds) this.thresholds = thresholds; return this; } + public LocationPlacement setDisplayAdTemplateFilters(@Nullable FilterCollection displayAdTemplateFilters) + { + this.displayAdTemplateFilters = displayAdTemplateFilters; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/LocationLocationEntityStateEntityResponse.java b/src/src/main/java/com/relewise/client/model/LocationUUIDLocationEntityStateEntityResponse.java similarity index 71% rename from src/src/main/java/com/relewise/client/model/LocationLocationEntityStateEntityResponse.java rename to src/src/main/java/com/relewise/client/model/LocationUUIDLocationEntityStateEntityResponse.java index 3cf86959..eaa63e34 100644 --- a/src/src/main/java/com/relewise/client/model/LocationLocationEntityStateEntityResponse.java +++ b/src/src/main/java/com/relewise/client/model/LocationUUIDLocationEntityStateEntityResponse.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class LocationLocationEntityStateEntityResponse extends TimedResponse +public abstract class LocationUUIDLocationEntityStateEntityResponse extends TimedResponse { public String $type = ""; public Location[] entities; @@ -40,17 +40,17 @@ public HashMap getHitsPerState() { return this.hitsPerState; } - public LocationLocationEntityStateEntityResponse setEntities(Location... entities) + public LocationUUIDLocationEntityStateEntityResponse setEntities(Location... entities) { this.entities = entities; return this; } - public LocationLocationEntityStateEntityResponse setHits(Integer hits) + public LocationUUIDLocationEntityStateEntityResponse setHits(Integer hits) { this.hits = hits; return this; } - public LocationLocationEntityStateEntityResponse addToHitsPerState(LocationEntityState key, Integer value) + public LocationUUIDLocationEntityStateEntityResponse addToHitsPerState(LocationEntityState key, Integer value) { if (this.hitsPerState == null) { @@ -59,13 +59,13 @@ public LocationLocationEntityStateEntityResponse addToHitsPerState(LocationEntit this.hitsPerState.put(key, value); return this; } - public LocationLocationEntityStateEntityResponse setHitsPerState(HashMap hitsPerState) + public LocationUUIDLocationEntityStateEntityResponse setHitsPerState(HashMap hitsPerState) { this.hitsPerState = hitsPerState; return this; } @Override - public LocationLocationEntityStateEntityResponse setStatistics(Statistics statistics) + public LocationUUIDLocationEntityStateEntityResponse setStatistics(Statistics statistics) { this.statistics = statistics; return this; diff --git a/src/src/main/java/com/relewise/client/model/LocationSaveEntitiesRequest.java b/src/src/main/java/com/relewise/client/model/LocationUUIDSaveEntitiesRequest.java similarity index 81% rename from src/src/main/java/com/relewise/client/model/LocationSaveEntitiesRequest.java rename to src/src/main/java/com/relewise/client/model/LocationUUIDSaveEntitiesRequest.java index 056bbf5f..6ad8ccd0 100644 --- a/src/src/main/java/com/relewise/client/model/LocationSaveEntitiesRequest.java +++ b/src/src/main/java/com/relewise/client/model/LocationUUIDSaveEntitiesRequest.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class LocationSaveEntitiesRequest extends LicensedRequest +public abstract class LocationUUIDSaveEntitiesRequest extends LicensedRequest { public String $type = ""; public Location[] entities; @@ -35,12 +35,12 @@ public String getModifiedBy() { return this.modifiedBy; } - public LocationSaveEntitiesRequest setEntities(Location... entities) + public LocationUUIDSaveEntitiesRequest setEntities(Location... entities) { this.entities = entities; return this; } - public LocationSaveEntitiesRequest setModifiedBy(String modifiedBy) + public LocationUUIDSaveEntitiesRequest setModifiedBy(String modifiedBy) { this.modifiedBy = modifiedBy; return this; diff --git a/src/src/main/java/com/relewise/client/model/LocationSaveEntitiesResponse.java b/src/src/main/java/com/relewise/client/model/LocationUUIDSaveEntitiesResponse.java similarity index 79% rename from src/src/main/java/com/relewise/client/model/LocationSaveEntitiesResponse.java rename to src/src/main/java/com/relewise/client/model/LocationUUIDSaveEntitiesResponse.java index 37310c2f..50136ede 100644 --- a/src/src/main/java/com/relewise/client/model/LocationSaveEntitiesResponse.java +++ b/src/src/main/java/com/relewise/client/model/LocationUUIDSaveEntitiesResponse.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class LocationSaveEntitiesResponse extends TimedResponse +public abstract class LocationUUIDSaveEntitiesResponse extends TimedResponse { public String $type = ""; public Location[] entities; @@ -30,13 +30,13 @@ public Location[] getEntities() { return this.entities; } - public LocationSaveEntitiesResponse setEntities(Location... entities) + public LocationUUIDSaveEntitiesResponse setEntities(Location... entities) { this.entities = entities; return this; } @Override - public LocationSaveEntitiesResponse setStatistics(Statistics statistics) + public LocationUUIDSaveEntitiesResponse setStatistics(Statistics statistics) { this.statistics = statistics; return this; diff --git a/src/src/main/java/com/relewise/client/model/LocationsRequest.java b/src/src/main/java/com/relewise/client/model/LocationsRequest.java index 1f6035dd..2ac19a44 100644 --- a/src/src/main/java/com/relewise/client/model/LocationsRequest.java +++ b/src/src/main/java/com/relewise/client/model/LocationsRequest.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = LocationsRequest.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class LocationsRequest extends LocationEntityStateLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest +public class LocationsRequest extends LocationEntityStateUUIDLocationMetadataValuesLocationsRequestSortByLocationsRequestEntityFiltersEntitiesRequest { public String $type = "Relewise.Client.Requests.RetailMedia.LocationsRequest, Relewise.Client"; public static LocationsRequest create(@Nullable LocationsRequestEntityFilters filters, @Nullable LocationsRequestSortBySorting sorting, Integer skip, Integer take) diff --git a/src/src/main/java/com/relewise/client/model/LocationsRequestEntityFilters.java b/src/src/main/java/com/relewise/client/model/LocationsRequestEntityFilters.java index 13e1e01a..c7fb56cc 100644 --- a/src/src/main/java/com/relewise/client/model/LocationsRequestEntityFilters.java +++ b/src/src/main/java/com/relewise/client/model/LocationsRequestEntityFilters.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = LocationsRequestEntityFilters.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class LocationsRequestEntityFilters extends LocationEntityStateLocationMetadataValuesRetailMediaEntityEntityFilters +public class LocationsRequestEntityFilters extends LocationEntityStateUUIDLocationMetadataValuesRetailMediaEntityEntityFilters { public String $type = "Relewise.Client.Requests.RetailMedia.LocationsRequest+EntityFilters, Relewise.Client"; public @Nullable UUID[] ids; diff --git a/src/src/main/java/com/relewise/client/model/LocationsResponse.java b/src/src/main/java/com/relewise/client/model/LocationsResponse.java index 9f25f779..ceccde15 100644 --- a/src/src/main/java/com/relewise/client/model/LocationsResponse.java +++ b/src/src/main/java/com/relewise/client/model/LocationsResponse.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = LocationsResponse.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class LocationsResponse extends LocationLocationEntityStateEntityResponse +public class LocationsResponse extends LocationUUIDLocationEntityStateEntityResponse { public String $type = "Relewise.Client.Responses.RetailMedia.LocationsResponse, Relewise.Client"; public static LocationsResponse create(Location[] locations, Integer hits, HashMap hitsPerState) diff --git a/src/src/main/java/com/relewise/client/model/OverriddenSelectedContentPropertiesSettings.java b/src/src/main/java/com/relewise/client/model/OverriddenSelectedContentPropertiesSettings.java index 7d34a6fc..90aeb8fb 100644 --- a/src/src/main/java/com/relewise/client/model/OverriddenSelectedContentPropertiesSettings.java +++ b/src/src/main/java/com/relewise/client/model/OverriddenSelectedContentPropertiesSettings.java @@ -24,6 +24,8 @@ public class OverriddenSelectedContentPropertiesSettings public @Nullable Boolean allData; public @Nullable Boolean viewedByUserInfo; public String[] dataKeys; + /** When set, overrides whether UserEngagement should be populated when results are mapped. */ + public @Nullable Boolean userEngagement; public static OverriddenSelectedContentPropertiesSettings create() { return new OverriddenSelectedContentPropertiesSettings(); @@ -55,6 +57,11 @@ public String[] getDataKeys() { return this.dataKeys; } + /** When set, overrides whether UserEngagement should be populated when results are mapped. */ + public @Nullable Boolean getUserEngagement() + { + return this.userEngagement; + } public OverriddenSelectedContentPropertiesSettings setDisplayName(@Nullable Boolean displayName) { this.displayName = displayName; @@ -99,4 +106,10 @@ public OverriddenSelectedContentPropertiesSettings addToDataKeys(String dataKey) } return this; } + /** When set, overrides whether UserEngagement should be populated when results are mapped. */ + public OverriddenSelectedContentPropertiesSettings setUserEngagement(@Nullable Boolean userEngagement) + { + this.userEngagement = userEngagement; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/OverriddenSelectedProductPropertiesSettings.java b/src/src/main/java/com/relewise/client/model/OverriddenSelectedProductPropertiesSettings.java index 649c3449..cad3ec25 100644 --- a/src/src/main/java/com/relewise/client/model/OverriddenSelectedProductPropertiesSettings.java +++ b/src/src/main/java/com/relewise/client/model/OverriddenSelectedProductPropertiesSettings.java @@ -29,6 +29,8 @@ public class OverriddenSelectedProductPropertiesSettings public @Nullable Boolean allVariants; public String[] dataKeys; public @Nullable SelectedScorePropertiesSettings score; + /** When set, overrides whether UserEngagement should be populated when results are mapped. */ + public @Nullable Boolean userEngagement; public static OverriddenSelectedProductPropertiesSettings create() { return new OverriddenSelectedProductPropertiesSettings(); @@ -80,6 +82,11 @@ public String[] getDataKeys() { return this.score; } + /** When set, overrides whether UserEngagement should be populated when results are mapped. */ + public @Nullable Boolean getUserEngagement() + { + return this.userEngagement; + } public OverriddenSelectedProductPropertiesSettings setDisplayName(@Nullable Boolean displayName) { this.displayName = displayName; @@ -149,4 +156,10 @@ public OverriddenSelectedProductPropertiesSettings setScore(@Nullable SelectedSc this.score = score; return this; } + /** When set, overrides whether UserEngagement should be populated when results are mapped. */ + public OverriddenSelectedProductPropertiesSettings setUserEngagement(@Nullable Boolean userEngagement) + { + this.userEngagement = userEngagement; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/OverriddenSelectedVariantPropertiesSettings.java b/src/src/main/java/com/relewise/client/model/OverriddenSelectedVariantPropertiesSettings.java index e094c2ed..2186f21c 100644 --- a/src/src/main/java/com/relewise/client/model/OverriddenSelectedVariantPropertiesSettings.java +++ b/src/src/main/java/com/relewise/client/model/OverriddenSelectedVariantPropertiesSettings.java @@ -25,6 +25,8 @@ public class OverriddenSelectedVariantPropertiesSettings public @Nullable Boolean allData; public String[] dataKeys; public String[] specificationKeys; + /** When set, overrides whether UserEngagement should be populated when results are mapped. */ + public @Nullable Boolean userEngagement; public static OverriddenSelectedVariantPropertiesSettings create() { return new OverriddenSelectedVariantPropertiesSettings(); @@ -60,6 +62,11 @@ public String[] getSpecificationKeys() { return this.specificationKeys; } + /** When set, overrides whether UserEngagement should be populated when results are mapped. */ + public @Nullable Boolean getUserEngagement() + { + return this.userEngagement; + } public OverriddenSelectedVariantPropertiesSettings setDisplayName(@Nullable Boolean displayName) { this.displayName = displayName; @@ -123,4 +130,10 @@ public OverriddenSelectedVariantPropertiesSettings addToSpecificationKeys(String } return this; } + /** When set, overrides whether UserEngagement should be populated when results are mapped. */ + public OverriddenSelectedVariantPropertiesSettings setUserEngagement(@Nullable Boolean userEngagement) + { + this.userEngagement = userEngagement; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/ProductEngagement.java b/src/src/main/java/com/relewise/client/model/ProductEngagement.java new file mode 100644 index 00000000..848c3b98 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/ProductEngagement.java @@ -0,0 +1,92 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Represents an engagement (e.g. favorite marking, sentiment feedback, etc.) performed by a User on a specific product. This is a trackable entity used when sending engagement events to Relewise. */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = ProductEngagement.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class ProductEngagement extends Trackable implements IUserIdentifier +{ + public String $type = "Relewise.Client.DataTypes.ProductEngagement, Relewise.Client"; + /** The user associated with the engagement. Can represent an authenticated, temporary, or otherwise identified user. */ + public @Nullable User user; + /** Identifies the product that the engagement concerns. The ProductId must be non-null and non-empty. */ + public ProductAndVariantId id; + /** The engagement data describing what kind of feedback or interaction has occurred (e.g. favorite flag, sentiment value). Must contain at least one piece of data. */ + public ProductEngagementData engagement; + /** + * Creates a new ProductEngagement describing a user interaction with a product. + * @param user The user performing or associated with the engagement. Cannot be null. + * @param id The product identifier. Must have a non-empty + * @param engagement The engagement data (e.g. favorite or sentiment). Cannot be null and must contain data. + */ + public static ProductEngagement create(@Nullable User user, ProductAndVariantId id, ProductEngagementData engagement) + { + return new ProductEngagement(user, id, engagement); + } + /** + * Creates a new ProductEngagement describing a user interaction with a product. + * @param user The user performing or associated with the engagement. Cannot be null. + * @param id The product identifier. Must have a non-empty + * @param engagement The engagement data (e.g. favorite or sentiment). Cannot be null and must contain data. + */ + public ProductEngagement(@Nullable User user, ProductAndVariantId id, ProductEngagementData engagement) + { + this.user = user; + this.id = id; + this.engagement = engagement; + } + public ProductEngagement() + { + } + /** The user associated with the engagement. Can represent an authenticated, temporary, or otherwise identified user. */ + public @Nullable User getUser() + { + return this.user; + } + /** Identifies the product that the engagement concerns. The ProductId must be non-null and non-empty. */ + public ProductAndVariantId getId() + { + return this.id; + } + /** The engagement data describing what kind of feedback or interaction has occurred (e.g. favorite flag, sentiment value). Must contain at least one piece of data. */ + public ProductEngagementData getEngagement() + { + return this.engagement; + } + /** The user associated with the engagement. Can represent an authenticated, temporary, or otherwise identified user. */ + public ProductEngagement setUser(@Nullable User user) + { + this.user = user; + return this; + } + /** Identifies the product that the engagement concerns. The ProductId must be non-null and non-empty. */ + public ProductEngagement setId(ProductAndVariantId id) + { + this.id = id; + return this; + } + /** The engagement data describing what kind of feedback or interaction has occurred (e.g. favorite flag, sentiment value). Must contain at least one piece of data. */ + public ProductEngagement setEngagement(ProductEngagementData engagement) + { + this.engagement = engagement; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/ProductEngagementData.java b/src/src/main/java/com/relewise/client/model/ProductEngagementData.java new file mode 100644 index 00000000..3344c67a --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/ProductEngagementData.java @@ -0,0 +1,66 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Represents engagement signals (sentiment / favorite) for a Product. At least one of Sentiment or IsFavorite must be provided. */ +@JsonIgnoreProperties(ignoreUnknown = true) +public class ProductEngagementData +{ + /** Gets or sets the sentiment expressed towards the product. Null when no explicit sentiment was recorded. */ + public @Nullable ProductEngagementDataSentimentKind sentiment; + /** Gets or sets whether the product is marked as a favorite by the user. Null when unknown or not recorded. */ + public @Nullable Boolean isFavorite; + public static ProductEngagementData create() + { + return new ProductEngagementData(); + } + public ProductEngagementData() + { + this.sentiment = null; + this.isFavorite = null; + } + public static ProductEngagementData create(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite) + { + return new ProductEngagementData(sentiment, isFavorite); + } + public ProductEngagementData(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite) + { + this.sentiment = sentiment; + this.isFavorite = isFavorite; + } + /** Gets or sets the sentiment expressed towards the product. Null when no explicit sentiment was recorded. */ + public @Nullable ProductEngagementDataSentimentKind getSentiment() + { + return this.sentiment; + } + /** Gets or sets whether the product is marked as a favorite by the user. Null when unknown or not recorded. */ + public @Nullable Boolean getIsFavorite() + { + return this.isFavorite; + } + /** Gets or sets the sentiment expressed towards the product. Null when no explicit sentiment was recorded. */ + public ProductEngagementData setSentiment(@Nullable ProductEngagementDataSentimentKind sentiment) + { + this.sentiment = sentiment; + return this; + } + /** Gets or sets whether the product is marked as a favorite by the user. Null when unknown or not recorded. */ + public ProductEngagementData setIsFavorite(@Nullable Boolean isFavorite) + { + this.isFavorite = isFavorite; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/ProductEngagementDataSentimentKind.java b/src/src/main/java/com/relewise/client/model/ProductEngagementDataSentimentKind.java new file mode 100644 index 00000000..00eae9fe --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/ProductEngagementDataSentimentKind.java @@ -0,0 +1,35 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +public enum ProductEngagementDataSentimentKind +{ + Neutral { + public String toString() { + return "Neutral"; + } + }, + Like { + public String toString() { + return "Like"; + } + }, + Dislike { + public String toString() { + return "Dislike"; + } + }, +} diff --git a/src/src/main/java/com/relewise/client/model/ProductEngagementFilter.java b/src/src/main/java/com/relewise/client/model/ProductEngagementFilter.java new file mode 100644 index 00000000..f62e562a --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/ProductEngagementFilter.java @@ -0,0 +1,102 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Filters product results by previously tracked engagement signals such as sentiment or favorites. */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = ProductEngagementFilter.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class ProductEngagementFilter extends Filter implements IProductFilter +{ + public String $type = "Relewise.Client.Requests.Filters.ProductEngagementFilter, Relewise.Client"; + /** Specifies the sentiment that must have been recorded for the product. */ + public @Nullable ProductEngagementDataSentimentKind sentiment; + /** Specifies whether the product must be marked as a favorite by the user. */ + public @Nullable Boolean isFavorite; + public static ProductEngagementFilter create(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite) + { + return new ProductEngagementFilter(sentiment, isFavorite); + } + public ProductEngagementFilter(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite) + { + this.sentiment = sentiment; + this.isFavorite = isFavorite; + this.negated = false; + } + /** + * Initializes a new instance of the ProductEngagementFilter class. + * @param sentiment Optional sentiment requirement. Pass + * @param isFavorite Optional favorite requirement. Pass + * @param negated Set to + */ + public static ProductEngagementFilter create(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite, Boolean negated) + { + return new ProductEngagementFilter(sentiment, isFavorite, negated); + } + /** + * Initializes a new instance of the ProductEngagementFilter class. + * @param sentiment Optional sentiment requirement. Pass + * @param isFavorite Optional favorite requirement. Pass + * @param negated Set to + */ + public ProductEngagementFilter(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite, Boolean negated) + { + this.sentiment = sentiment; + this.isFavorite = isFavorite; + this.negated = negated; + } + public ProductEngagementFilter() + { + this.negated = false; + } + /** Specifies the sentiment that must have been recorded for the product. */ + public @Nullable ProductEngagementDataSentimentKind getSentiment() + { + return this.sentiment; + } + /** Specifies whether the product must be marked as a favorite by the user. */ + public @Nullable Boolean getIsFavorite() + { + return this.isFavorite; + } + /** Specifies the sentiment that must have been recorded for the product. */ + public ProductEngagementFilter setSentiment(@Nullable ProductEngagementDataSentimentKind sentiment) + { + this.sentiment = sentiment; + return this; + } + /** Specifies whether the product must be marked as a favorite by the user. */ + public ProductEngagementFilter setIsFavorite(@Nullable Boolean isFavorite) + { + this.isFavorite = isFavorite; + return this; + } + @Override + public ProductEngagementFilter setNegated(Boolean negated) + { + this.negated = negated; + return this; + } + @Override + public ProductEngagementFilter setSettings(@Nullable FilterSettings settings) + { + this.settings = settings; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/ProductEngagementRelevanceModifier.java b/src/src/main/java/com/relewise/client/model/ProductEngagementRelevanceModifier.java new file mode 100644 index 00000000..c23be2e1 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/ProductEngagementRelevanceModifier.java @@ -0,0 +1,127 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** A RelevanceModifier that multiplies the relevance of a product based on the current user's engagement data (sentiment and/or favorite). */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = ProductEngagementRelevanceModifier.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class ProductEngagementRelevanceModifier extends RelevanceModifier implements IProductRelevanceModifier +{ + public String $type = "Relewise.Client.Requests.RelevanceModifiers.ProductEngagementRelevanceModifier, Relewise.Client"; + /** The sentiment that must match for MultiplyWeightBy to apply. */ + public @Nullable ProductEngagementDataSentimentKind sentiment; + /** The favorite flag that must match for MultiplyWeightBy to apply. */ + public @Nullable Boolean isFavorite; + /** The multiplier applied when the modifier condition is satisfied (or when it is not satisfied if Negated is true). */ + public Double multiplyWeightBy; + /** When set to true, the multiplier applies when the condition is not satisfied instead of when it matches. */ + public Boolean negated; + public static ProductEngagementRelevanceModifier create(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite) + { + return new ProductEngagementRelevanceModifier(sentiment, isFavorite); + } + public ProductEngagementRelevanceModifier(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite) + { + this.sentiment = sentiment; + this.isFavorite = isFavorite; + this.multiplyWeightBy = 1d; + this.negated = false; + } + /** + * Creates a new ProductEngagementRelevanceModifier. + * @param sentiment The sentiment that must match for MultiplyWeightBy to apply. + * @param isFavorite The favorite flag that must match for MultiplyWeightBy to apply. + * @param multiplyWeightBy The multiplier applied when the modifier condition is satisfied (or when it is not satisfied if Negated is true). + * @param negated When set to true, the multiplier applies when the condition is not satisfied instead of when it matches. + */ + public static ProductEngagementRelevanceModifier create(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite, Double multiplyWeightBy, Boolean negated) + { + return new ProductEngagementRelevanceModifier(sentiment, isFavorite, multiplyWeightBy, negated); + } + /** + * Creates a new ProductEngagementRelevanceModifier. + * @param sentiment The sentiment that must match for MultiplyWeightBy to apply. + * @param isFavorite The favorite flag that must match for MultiplyWeightBy to apply. + * @param multiplyWeightBy The multiplier applied when the modifier condition is satisfied (or when it is not satisfied if Negated is true). + * @param negated When set to true, the multiplier applies when the condition is not satisfied instead of when it matches. + */ + public ProductEngagementRelevanceModifier(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite, Double multiplyWeightBy, Boolean negated) + { + this.sentiment = sentiment; + this.isFavorite = isFavorite; + this.multiplyWeightBy = multiplyWeightBy; + this.negated = negated; + } + public ProductEngagementRelevanceModifier() + { + this.multiplyWeightBy = 1d; + this.negated = false; + } + /** The sentiment that must match for MultiplyWeightBy to apply. */ + public @Nullable ProductEngagementDataSentimentKind getSentiment() + { + return this.sentiment; + } + /** The favorite flag that must match for MultiplyWeightBy to apply. */ + public @Nullable Boolean getIsFavorite() + { + return this.isFavorite; + } + /** The multiplier applied when the modifier condition is satisfied (or when it is not satisfied if Negated is true). */ + public Double getMultiplyWeightBy() + { + return this.multiplyWeightBy; + } + /** When set to true, the multiplier applies when the condition is not satisfied instead of when it matches. */ + public Boolean getNegated() + { + return this.negated; + } + /** The sentiment that must match for MultiplyWeightBy to apply. */ + public ProductEngagementRelevanceModifier setSentiment(@Nullable ProductEngagementDataSentimentKind sentiment) + { + this.sentiment = sentiment; + return this; + } + /** The favorite flag that must match for MultiplyWeightBy to apply. */ + public ProductEngagementRelevanceModifier setIsFavorite(@Nullable Boolean isFavorite) + { + this.isFavorite = isFavorite; + return this; + } + /** The multiplier applied when the modifier condition is satisfied (or when it is not satisfied if Negated is true). */ + public ProductEngagementRelevanceModifier setMultiplyWeightBy(Double multiplyWeightBy) + { + this.multiplyWeightBy = multiplyWeightBy; + return this; + } + /** When set to true, the multiplier applies when the condition is not satisfied instead of when it matches. */ + public ProductEngagementRelevanceModifier setNegated(Boolean negated) + { + this.negated = negated; + return this; + } + @Override + public ProductEngagementRelevanceModifier setFilters(FilterCollection filters) + { + this.filters = filters; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/ProductPromotionPromotionConditions.java b/src/src/main/java/com/relewise/client/model/ProductPromotionPromotionConditions.java index b99fbd50..866840b0 100644 --- a/src/src/main/java/com/relewise/client/model/ProductPromotionPromotionConditions.java +++ b/src/src/main/java/com/relewise/client/model/ProductPromotionPromotionConditions.java @@ -24,7 +24,8 @@ public class ProductPromotionPromotionConditions extends RetailMediaConditions { public String $type = "Relewise.Client.DataTypes.RetailMedia.ProductPromotion+PromotionConditions, Relewise.Client"; - public @Nullable RetailMediaSearchTermConditionCollection searchTerm; + public @Nullable SearchTermConditionByLanguageCollection searchTerm; + public @Nullable RequestFilterCriteria requestFilters; public static ProductPromotionPromotionConditions create() { return new ProductPromotionPromotionConditions(); @@ -32,13 +33,22 @@ public static ProductPromotionPromotionConditions create() public ProductPromotionPromotionConditions() { } - public @Nullable RetailMediaSearchTermConditionCollection getSearchTerm() + public @Nullable SearchTermConditionByLanguageCollection getSearchTerm() { return this.searchTerm; } - public ProductPromotionPromotionConditions setSearchTerm(@Nullable RetailMediaSearchTermConditionCollection searchTerm) + public @Nullable RequestFilterCriteria getRequestFilters() + { + return this.requestFilters; + } + public ProductPromotionPromotionConditions setSearchTerm(@Nullable SearchTermConditionByLanguageCollection searchTerm) { this.searchTerm = searchTerm; return this; } + public ProductPromotionPromotionConditions setRequestFilters(@Nullable RequestFilterCriteria requestFilters) + { + this.requestFilters = requestFilters; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/ProductResult.java b/src/src/main/java/com/relewise/client/model/ProductResult.java index 399a58a8..e595e192 100644 --- a/src/src/main/java/com/relewise/client/model/ProductResult.java +++ b/src/src/main/java/com/relewise/client/model/ProductResult.java @@ -37,6 +37,8 @@ public class ProductResult public @Nullable HighlightResult highlight; /** Holds information about how good this product result is. This will only be populated if specifically requested which is currently only possible for term-based product search requests. */ public @Nullable Score score; + /** Contains engagement signals (sentiment, favorite) recorded for the current user on this product. Populated only when explicitly requested via UserEngagement. */ + public @Nullable ProductEngagementData userEngagement; public static ProductResult create(String productId, Integer rank) { return new ProductResult(productId, rank); @@ -122,6 +124,11 @@ public VariantResult[] getFilteredVariants() { return this.score; } + /** Contains engagement signals (sentiment, favorite) recorded for the current user on this product. Populated only when explicitly requested via UserEngagement. */ + public @Nullable ProductEngagementData getUserEngagement() + { + return this.userEngagement; + } public ProductResult setProductId(String productId) { this.productId = productId; @@ -278,4 +285,10 @@ public ProductResult setScore(@Nullable Score score) this.score = score; return this; } + /** Contains engagement signals (sentiment, favorite) recorded for the current user on this product. Populated only when explicitly requested via UserEngagement. */ + public ProductResult setUserEngagement(@Nullable ProductEngagementData userEngagement) + { + this.userEngagement = userEngagement; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/ProductResultDetails.java b/src/src/main/java/com/relewise/client/model/ProductResultDetails.java index e0df353a..d967f5ad 100644 --- a/src/src/main/java/com/relewise/client/model/ProductResultDetails.java +++ b/src/src/main/java/com/relewise/client/model/ProductResultDetails.java @@ -41,6 +41,8 @@ public class ProductResultDetails public MultiCurrency salesPrice; public BrandResultDetails brand; public VariantResultDetails[] filteredVariants; + /** Contains engagement signals (sentiment and favorite state) recorded for the current user on this product. Populated only when the request sets UserEngagement to true. */ + public @Nullable ProductEngagementData userEngagement; public static ProductResultDetails create(String productId) { return new ProductResultDetails(productId); @@ -141,6 +143,11 @@ public VariantResultDetails[] getFilteredVariants() { return this.filteredVariants; } + /** Contains engagement signals (sentiment and favorite state) recorded for the current user on this product. Populated only when the request sets UserEngagement to true. */ + public @Nullable ProductEngagementData getUserEngagement() + { + return this.userEngagement; + } public ProductResultDetails setProductId(String productId) { this.productId = productId; @@ -317,4 +324,10 @@ public ProductResultDetails addToFilteredVariants(VariantResultDetails filteredV } return this; } + /** Contains engagement signals (sentiment and favorite state) recorded for the current user on this product. Populated only when the request sets UserEngagement to true. */ + public ProductResultDetails setUserEngagement(@Nullable ProductEngagementData userEngagement) + { + this.userEngagement = userEngagement; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/Promotion.java b/src/src/main/java/com/relewise/client/model/Promotion.java index 99373ddd..26eb151c 100644 --- a/src/src/main/java/com/relewise/client/model/Promotion.java +++ b/src/src/main/java/com/relewise/client/model/Promotion.java @@ -21,6 +21,7 @@ property = "$type") @JsonSubTypes({ @JsonSubTypes.Type(value = ProductPromotion.class, name = "Relewise.Client.DataTypes.RetailMedia.ProductPromotion, Relewise.Client"), + @JsonSubTypes.Type(value = DisplayAdPromotion.class, name = "Relewise.Client.DataTypes.RetailMedia.DisplayAdPromotion, Relewise.Client"), }) @JsonIgnoreProperties(ignoreUnknown = true) public abstract class Promotion diff --git a/src/src/main/java/com/relewise/client/model/PromotionDisplayAdsVariationPromotionPriority.java b/src/src/main/java/com/relewise/client/model/PromotionDisplayAdsVariationPromotionPriority.java new file mode 100644 index 00000000..6f95c6a1 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/PromotionDisplayAdsVariationPromotionPriority.java @@ -0,0 +1,34 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = PromotionDisplayAdsVariationPromotionPriority.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class PromotionDisplayAdsVariationPromotionPriority extends PromotionVariationPromotionPriority +{ + public String $type = "Relewise.Client.DataTypes.RetailMedia.Promotion+DisplayAdsVariationPromotionPriority, Relewise.Client"; + public static PromotionDisplayAdsVariationPromotionPriority create() + { + return new PromotionDisplayAdsVariationPromotionPriority(); + } + public PromotionDisplayAdsVariationPromotionPriority() + { + } +} diff --git a/src/src/main/java/com/relewise/client/model/PromotionProductsVariationPromotionPriority.java b/src/src/main/java/com/relewise/client/model/PromotionProductsVariationPromotionPriority.java new file mode 100644 index 00000000..7665f03a --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/PromotionProductsVariationPromotionPriority.java @@ -0,0 +1,34 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = PromotionProductsVariationPromotionPriority.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class PromotionProductsVariationPromotionPriority extends PromotionVariationPromotionPriority +{ + public String $type = "Relewise.Client.DataTypes.RetailMedia.Promotion+ProductsVariationPromotionPriority, Relewise.Client"; + public static PromotionProductsVariationPromotionPriority create() + { + return new PromotionProductsVariationPromotionPriority(); + } + public PromotionProductsVariationPromotionPriority() + { + } +} diff --git a/src/src/main/java/com/relewise/client/model/PromotionSpecification.java b/src/src/main/java/com/relewise/client/model/PromotionSpecification.java index fe6e86af..06506ba1 100644 --- a/src/src/main/java/com/relewise/client/model/PromotionSpecification.java +++ b/src/src/main/java/com/relewise/client/model/PromotionSpecification.java @@ -21,6 +21,7 @@ property = "$type") @JsonSubTypes({ @JsonSubTypes.Type(value = ProductPromotionSpecification.class, name = "Relewise.Client.DataTypes.RetailMedia.ProductPromotion+Specification, Relewise.Client"), + @JsonSubTypes.Type(value = DisplayAdPromotionSpecification.class, name = "Relewise.Client.DataTypes.RetailMedia.DisplayAdPromotion+Specification, Relewise.Client"), }) @JsonIgnoreProperties(ignoreUnknown = true) public abstract class PromotionSpecification diff --git a/src/src/main/java/com/relewise/client/model/PromotionSpecificationCollection.java b/src/src/main/java/com/relewise/client/model/PromotionSpecificationCollection.java index 6b18efb2..f29c5ffd 100644 --- a/src/src/main/java/com/relewise/client/model/PromotionSpecificationCollection.java +++ b/src/src/main/java/com/relewise/client/model/PromotionSpecificationCollection.java @@ -19,6 +19,7 @@ public class PromotionSpecificationCollection { public @Nullable ProductPromotionSpecification productPromotion; + public @Nullable DisplayAdPromotionSpecification displayAdPromotion; public static PromotionSpecificationCollection create() { return new PromotionSpecificationCollection(); @@ -30,9 +31,18 @@ public PromotionSpecificationCollection() { return this.productPromotion; } + public @Nullable DisplayAdPromotionSpecification getDisplayAdPromotion() + { + return this.displayAdPromotion; + } public PromotionSpecificationCollection setProductPromotion(@Nullable ProductPromotionSpecification productPromotion) { this.productPromotion = productPromotion; return this; } + public PromotionSpecificationCollection setDisplayAdPromotion(@Nullable DisplayAdPromotionSpecification displayAdPromotion) + { + this.displayAdPromotion = displayAdPromotion; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/PromotionSpecificationVariation.java b/src/src/main/java/com/relewise/client/model/PromotionSpecificationVariation.java index 703ba40f..57a71d92 100644 --- a/src/src/main/java/com/relewise/client/model/PromotionSpecificationVariation.java +++ b/src/src/main/java/com/relewise/client/model/PromotionSpecificationVariation.java @@ -21,6 +21,7 @@ property = "$type") @JsonSubTypes({ @JsonSubTypes.Type(value = ProductPromotionSpecificationVariation.class, name = "Relewise.Client.DataTypes.RetailMedia.ProductPromotion+SpecificationVariation, Relewise.Client"), + @JsonSubTypes.Type(value = PromotionVariationPromotion.class, name = "Relewise.Client.DataTypes.RetailMedia.Promotion+VariationPromotion, Relewise.Client"), }) @JsonIgnoreProperties(ignoreUnknown = true) public abstract class PromotionSpecificationVariation diff --git a/src/src/main/java/com/relewise/client/model/PromotionSpecificationVariationCollection.java b/src/src/main/java/com/relewise/client/model/PromotionSpecificationVariationCollection.java index 7f2bfdec..d3e18893 100644 --- a/src/src/main/java/com/relewise/client/model/PromotionSpecificationVariationCollection.java +++ b/src/src/main/java/com/relewise/client/model/PromotionSpecificationVariationCollection.java @@ -18,7 +18,9 @@ @JsonIgnoreProperties(ignoreUnknown = true) public class PromotionSpecificationVariationCollection { + /** @deprecated Use VariationPromotion instead */ public @Nullable ProductPromotionSpecificationVariation productPromotion; + public @Nullable PromotionVariationPromotion variationPromotion; public static PromotionSpecificationVariationCollection create() { return new PromotionSpecificationVariationCollection(); @@ -26,13 +28,24 @@ public static PromotionSpecificationVariationCollection create() public PromotionSpecificationVariationCollection() { } + /** @deprecated Use VariationPromotion instead */ public @Nullable ProductPromotionSpecificationVariation getProductPromotion() { return this.productPromotion; } + public @Nullable PromotionVariationPromotion getVariationPromotion() + { + return this.variationPromotion; + } + /** @deprecated Use VariationPromotion instead */ public PromotionSpecificationVariationCollection setProductPromotion(@Nullable ProductPromotionSpecificationVariation productPromotion) { this.productPromotion = productPromotion; return this; } + public PromotionSpecificationVariationCollection setVariationPromotion(@Nullable PromotionVariationPromotion variationPromotion) + { + this.variationPromotion = variationPromotion; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/PromotionVariationPromotion.java b/src/src/main/java/com/relewise/client/model/PromotionVariationPromotion.java new file mode 100644 index 00000000..d8f11f5e --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/PromotionVariationPromotion.java @@ -0,0 +1,108 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Used for specifying that this kind of promotion is allowed at a specific location */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = PromotionVariationPromotion.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class PromotionVariationPromotion extends PromotionSpecificationVariation +{ + public String $type = "Relewise.Client.DataTypes.RetailMedia.Promotion+VariationPromotion, Relewise.Client"; + /** The maximum number of promotions (Products/DisplayAds) to promote in this variation */ + public Integer maxCount; + /** The preferred number of products to be promoted. If 0, then no products will be returned. */ + public @Nullable Integer preferredNumberOfProducts; + /** The preferred number of display ads to be promoted. If 0, then no display ads will be returned. */ + public @Nullable Integer preferredNumberOfDisplayAds; + /** The promotion elements priority */ + public @Nullable PromotionVariationPromotionPriority priority; + public static PromotionVariationPromotion create(Integer maxCount) + { + return new PromotionVariationPromotion(maxCount); + } + public PromotionVariationPromotion(Integer maxCount) + { + this.maxCount = maxCount; + this.preferredNumberOfProducts = null; + this.preferredNumberOfDisplayAds = null; + this.priority = null; + } + public static PromotionVariationPromotion create(Integer maxCount, @Nullable Integer preferredNumberOfProducts, @Nullable Integer preferredNumberOfDisplayAds, @Nullable PromotionVariationPromotionPriority priority) + { + return new PromotionVariationPromotion(maxCount, preferredNumberOfProducts, preferredNumberOfDisplayAds, priority); + } + public PromotionVariationPromotion(Integer maxCount, @Nullable Integer preferredNumberOfProducts, @Nullable Integer preferredNumberOfDisplayAds, @Nullable PromotionVariationPromotionPriority priority) + { + this.maxCount = maxCount; + this.preferredNumberOfProducts = preferredNumberOfProducts; + this.preferredNumberOfDisplayAds = preferredNumberOfDisplayAds; + this.priority = priority; + } + public PromotionVariationPromotion() + { + this.preferredNumberOfProducts = null; + this.preferredNumberOfDisplayAds = null; + this.priority = null; + } + /** The maximum number of promotions (Products/DisplayAds) to promote in this variation */ + public Integer getMaxCount() + { + return this.maxCount; + } + /** The preferred number of products to be promoted. If 0, then no products will be returned. */ + public @Nullable Integer getPreferredNumberOfProducts() + { + return this.preferredNumberOfProducts; + } + /** The preferred number of display ads to be promoted. If 0, then no display ads will be returned. */ + public @Nullable Integer getPreferredNumberOfDisplayAds() + { + return this.preferredNumberOfDisplayAds; + } + /** The promotion elements priority */ + public @Nullable PromotionVariationPromotionPriority getPriority() + { + return this.priority; + } + /** The maximum number of promotions (Products/DisplayAds) to promote in this variation */ + public PromotionVariationPromotion setMaxCount(Integer maxCount) + { + this.maxCount = maxCount; + return this; + } + /** The preferred number of products to be promoted. If 0, then no products will be returned. */ + public PromotionVariationPromotion setPreferredNumberOfProducts(@Nullable Integer preferredNumberOfProducts) + { + this.preferredNumberOfProducts = preferredNumberOfProducts; + return this; + } + /** The preferred number of display ads to be promoted. If 0, then no display ads will be returned. */ + public PromotionVariationPromotion setPreferredNumberOfDisplayAds(@Nullable Integer preferredNumberOfDisplayAds) + { + this.preferredNumberOfDisplayAds = preferredNumberOfDisplayAds; + return this; + } + /** The promotion elements priority */ + public PromotionVariationPromotion setPriority(@Nullable PromotionVariationPromotionPriority priority) + { + this.priority = priority; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/PromotionVariationPromotionPriority.java b/src/src/main/java/com/relewise/client/model/PromotionVariationPromotionPriority.java new file mode 100644 index 00000000..3920f792 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/PromotionVariationPromotionPriority.java @@ -0,0 +1,30 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type") +@JsonSubTypes({ + @JsonSubTypes.Type(value = PromotionProductsVariationPromotionPriority.class, name = "Relewise.Client.DataTypes.RetailMedia.Promotion+ProductsVariationPromotionPriority, Relewise.Client"), + @JsonSubTypes.Type(value = PromotionDisplayAdsVariationPromotionPriority.class, name = "Relewise.Client.DataTypes.RetailMedia.Promotion+DisplayAdsVariationPromotionPriority, Relewise.Client"), +}) +@JsonIgnoreProperties(ignoreUnknown = true) +public abstract class PromotionVariationPromotionPriority +{ + public String $type = ""; +} diff --git a/src/src/main/java/com/relewise/client/model/RecommendationRequest.java b/src/src/main/java/com/relewise/client/model/RecommendationRequest.java index f834bead..b1923b97 100644 --- a/src/src/main/java/com/relewise/client/model/RecommendationRequest.java +++ b/src/src/main/java/com/relewise/client/model/RecommendationRequest.java @@ -46,6 +46,8 @@ @JsonSubTypes.Type(value = PopularContentCategoriesRecommendationRequest.class, name = "Relewise.Client.Requests.Recommendations.PopularContentCategoriesRecommendationRequest, Relewise.Client"), @JsonSubTypes.Type(value = PersonalContentCategoryRecommendationRequest.class, name = "Relewise.Client.Requests.Recommendations.PersonalContentCategoryRecommendationRequest, Relewise.Client"), @JsonSubTypes.Type(value = PersonalBrandRecommendationRequest.class, name = "Relewise.Client.Requests.Recommendations.PersonalBrandRecommendationRequest, Relewise.Client"), + @JsonSubTypes.Type(value = FeedRecommendationInitializationRequest.class, name = "Relewise.Client.Requests.Recommendations.Feed.FeedRecommendationInitializationRequest, Relewise.Client"), + @JsonSubTypes.Type(value = FeedRecommendationNextItemsRequest.class, name = "Relewise.Client.Requests.Recommendations.Feed.FeedRecommendationNextItemsRequest, Relewise.Client"), }) @JsonIgnoreProperties(ignoreUnknown = true) public abstract class RecommendationRequest extends LicensedRequest implements IUserIdentifier diff --git a/src/src/main/java/com/relewise/client/model/RelevanceModifier.java b/src/src/main/java/com/relewise/client/model/RelevanceModifier.java index 81f60fa1..5d80e1c1 100644 --- a/src/src/main/java/com/relewise/client/model/RelevanceModifier.java +++ b/src/src/main/java/com/relewise/client/model/RelevanceModifier.java @@ -47,6 +47,9 @@ @JsonSubTypes.Type(value = ContentDataRelevanceModifier.class, name = "Relewise.Client.Requests.RelevanceModifiers.ContentDataRelevanceModifier, Relewise.Client"), @JsonSubTypes.Type(value = ProductCategoryDataRelevanceModifier.class, name = "Relewise.Client.Requests.RelevanceModifiers.ProductCategoryDataRelevanceModifier, Relewise.Client"), @JsonSubTypes.Type(value = ContentCategoryDataRelevanceModifier.class, name = "Relewise.Client.Requests.RelevanceModifiers.ContentCategoryDataRelevanceModifier, Relewise.Client"), + @JsonSubTypes.Type(value = ProductEngagementRelevanceModifier.class, name = "Relewise.Client.Requests.RelevanceModifiers.ProductEngagementRelevanceModifier, Relewise.Client"), + @JsonSubTypes.Type(value = ContentEngagementRelevanceModifier.class, name = "Relewise.Client.Requests.RelevanceModifiers.ContentEngagementRelevanceModifier, Relewise.Client"), + @JsonSubTypes.Type(value = VariantEngagementRelevanceModifier.class, name = "Relewise.Client.Requests.RelevanceModifiers.VariantEngagementRelevanceModifier, Relewise.Client"), }) @JsonIgnoreProperties(ignoreUnknown = true) public abstract class RelevanceModifier diff --git a/src/src/main/java/com/relewise/client/model/RequestContextFilter.java b/src/src/main/java/com/relewise/client/model/RequestContextFilter.java index 7d1e3215..facc10f3 100644 --- a/src/src/main/java/com/relewise/client/model/RequestContextFilter.java +++ b/src/src/main/java/com/relewise/client/model/RequestContextFilter.java @@ -24,6 +24,7 @@ public class RequestContextFilter public ArrayList languages; public ArrayList currencies; public RequestFilterCriteria filters; + public @Nullable SearchTermConditionByLanguageCollection searchTerms; public static RequestContextFilter create() { return new RequestContextFilter(); @@ -55,6 +56,10 @@ public RequestFilterCriteria getFilters() { return this.filters; } + public @Nullable SearchTermConditionByLanguageCollection getSearchTerms() + { + return this.searchTerms; + } public RequestContextFilter setRecommendations(RecommendationTypeCollection recommendations) { this.recommendations = recommendations; @@ -112,4 +117,9 @@ public RequestContextFilter setFilters(RequestFilterCriteria filters) this.filters = filters; return this; } + public RequestContextFilter setSearchTerms(@Nullable SearchTermConditionByLanguageCollection searchTerms) + { + this.searchTerms = searchTerms; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/RetailMediaQuery.java b/src/src/main/java/com/relewise/client/model/RetailMediaQuery.java index 58393e3d..78beecb2 100644 --- a/src/src/main/java/com/relewise/client/model/RetailMediaQuery.java +++ b/src/src/main/java/com/relewise/client/model/RetailMediaQuery.java @@ -20,6 +20,7 @@ public class RetailMediaQuery { /** Defines the location (f.e. 'Home Page'), placements (f.e. 'main zone' and 'power action') for specific Variation (f.e. 'desktop'). */ public RetailMediaQueryLocationSelector location; + public @Nullable RetailMediaQuerySettings settings; public static RetailMediaQuery create(RetailMediaQueryLocationSelector location) { return new RetailMediaQuery(location); @@ -36,10 +37,19 @@ public RetailMediaQueryLocationSelector getLocation() { return this.location; } + public @Nullable RetailMediaQuerySettings getSettings() + { + return this.settings; + } /** Defines the location (f.e. 'Home Page'), placements (f.e. 'main zone' and 'power action') for specific Variation (f.e. 'desktop'). */ public RetailMediaQuery setLocation(RetailMediaQueryLocationSelector location) { this.location = location; return this; } + public RetailMediaQuery setSettings(@Nullable RetailMediaQuerySettings settings) + { + this.settings = settings; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/RetailMediaQuerySettings.java b/src/src/main/java/com/relewise/client/model/RetailMediaQuerySettings.java new file mode 100644 index 00000000..97699495 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/RetailMediaQuerySettings.java @@ -0,0 +1,38 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class RetailMediaQuerySettings +{ + public @Nullable SelectedDisplayAdPropertiesSettings selectedDisplayAdProperties; + public static RetailMediaQuerySettings create() + { + return new RetailMediaQuerySettings(); + } + public RetailMediaQuerySettings() + { + } + public @Nullable SelectedDisplayAdPropertiesSettings getSelectedDisplayAdProperties() + { + return this.selectedDisplayAdProperties; + } + public RetailMediaQuerySettings setSelectedDisplayAdProperties(@Nullable SelectedDisplayAdPropertiesSettings selectedDisplayAdProperties) + { + this.selectedDisplayAdProperties = selectedDisplayAdProperties; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/RetailMediaResultPlacementResultEntity.java b/src/src/main/java/com/relewise/client/model/RetailMediaResultPlacementResultEntity.java index 61c7e13f..7b60cec3 100644 --- a/src/src/main/java/com/relewise/client/model/RetailMediaResultPlacementResultEntity.java +++ b/src/src/main/java/com/relewise/client/model/RetailMediaResultPlacementResultEntity.java @@ -19,6 +19,7 @@ public class RetailMediaResultPlacementResultEntity { public @Nullable RetailMediaResultPlacementResultEntityProduct promotedProduct; + public @Nullable RetailMediaResultPlacementResultEntityDisplayAd promotedDisplayAd; public static RetailMediaResultPlacementResultEntity create() { return new RetailMediaResultPlacementResultEntity(); @@ -30,9 +31,18 @@ public RetailMediaResultPlacementResultEntity() { return this.promotedProduct; } + public @Nullable RetailMediaResultPlacementResultEntityDisplayAd getPromotedDisplayAd() + { + return this.promotedDisplayAd; + } public RetailMediaResultPlacementResultEntity setPromotedProduct(@Nullable RetailMediaResultPlacementResultEntityProduct promotedProduct) { this.promotedProduct = promotedProduct; return this; } + public RetailMediaResultPlacementResultEntity setPromotedDisplayAd(@Nullable RetailMediaResultPlacementResultEntityDisplayAd promotedDisplayAd) + { + this.promotedDisplayAd = promotedDisplayAd; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/RetailMediaResultPlacementResultEntityDisplayAd.java b/src/src/main/java/com/relewise/client/model/RetailMediaResultPlacementResultEntityDisplayAd.java new file mode 100644 index 00000000..5cb32906 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/RetailMediaResultPlacementResultEntityDisplayAd.java @@ -0,0 +1,38 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class RetailMediaResultPlacementResultEntityDisplayAd +{ + public DisplayAdResult result; + public static RetailMediaResultPlacementResultEntityDisplayAd create() + { + return new RetailMediaResultPlacementResultEntityDisplayAd(); + } + public RetailMediaResultPlacementResultEntityDisplayAd() + { + } + public DisplayAdResult getResult() + { + return this.result; + } + public RetailMediaResultPlacementResultEntityDisplayAd setResult(DisplayAdResult result) + { + this.result = result; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/SaveAdvertisersRequest.java b/src/src/main/java/com/relewise/client/model/SaveAdvertisersRequest.java index 39677e99..d71386a3 100644 --- a/src/src/main/java/com/relewise/client/model/SaveAdvertisersRequest.java +++ b/src/src/main/java/com/relewise/client/model/SaveAdvertisersRequest.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = SaveAdvertisersRequest.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class SaveAdvertisersRequest extends AdvertiserSaveEntitiesRequest +public class SaveAdvertisersRequest extends AdvertiserUUIDSaveEntitiesRequest { public String $type = "Relewise.Client.Requests.RetailMedia.SaveAdvertisersRequest, Relewise.Client"; public static SaveAdvertisersRequest create(Advertiser[] advertisers, String modifiedBy) diff --git a/src/src/main/java/com/relewise/client/model/SaveAdvertisersResponse.java b/src/src/main/java/com/relewise/client/model/SaveAdvertisersResponse.java index f67a18d0..720d3c42 100644 --- a/src/src/main/java/com/relewise/client/model/SaveAdvertisersResponse.java +++ b/src/src/main/java/com/relewise/client/model/SaveAdvertisersResponse.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = SaveAdvertisersResponse.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class SaveAdvertisersResponse extends AdvertiserSaveEntitiesResponse +public class SaveAdvertisersResponse extends AdvertiserUUIDSaveEntitiesResponse { public String $type = "Relewise.Client.Responses.RetailMedia.SaveAdvertisersResponse, Relewise.Client"; public static SaveAdvertisersResponse create(Advertiser... advertisers) diff --git a/src/src/main/java/com/relewise/client/model/SaveCampaignsRequest.java b/src/src/main/java/com/relewise/client/model/SaveCampaignsRequest.java index af61d80c..66d51436 100644 --- a/src/src/main/java/com/relewise/client/model/SaveCampaignsRequest.java +++ b/src/src/main/java/com/relewise/client/model/SaveCampaignsRequest.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = SaveCampaignsRequest.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class SaveCampaignsRequest extends CampaignSaveEntitiesRequest +public class SaveCampaignsRequest extends CampaignUUIDSaveEntitiesRequest { public String $type = "Relewise.Client.Requests.RetailMedia.SaveCampaignsRequest, Relewise.Client"; public static SaveCampaignsRequest create(Campaign[] campaigns, String modifiedBy) diff --git a/src/src/main/java/com/relewise/client/model/SaveCampaignsResponse.java b/src/src/main/java/com/relewise/client/model/SaveCampaignsResponse.java index 09f262c0..d6cad3bd 100644 --- a/src/src/main/java/com/relewise/client/model/SaveCampaignsResponse.java +++ b/src/src/main/java/com/relewise/client/model/SaveCampaignsResponse.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = SaveCampaignsResponse.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class SaveCampaignsResponse extends CampaignSaveEntitiesResponse +public class SaveCampaignsResponse extends CampaignUUIDSaveEntitiesResponse { public String $type = "Relewise.Client.Responses.RetailMedia.SaveCampaignsResponse, Relewise.Client"; public static SaveCampaignsResponse create(Campaign... campaigns) diff --git a/src/src/main/java/com/relewise/client/model/SaveDisplayAdTemplatesRequest.java b/src/src/main/java/com/relewise/client/model/SaveDisplayAdTemplatesRequest.java new file mode 100644 index 00000000..80ec56ac --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/SaveDisplayAdTemplatesRequest.java @@ -0,0 +1,65 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = SaveDisplayAdTemplatesRequest.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class SaveDisplayAdTemplatesRequest extends DisplayAdTemplateUUIDSaveEntitiesRequest +{ + public String $type = "Relewise.Client.Requests.RetailMedia.SaveDisplayAdTemplatesRequest, Relewise.Client"; + public static SaveDisplayAdTemplatesRequest create(DisplayAdTemplate[] displayAdTemplate, String modifiedBy) + { + return new SaveDisplayAdTemplatesRequest(displayAdTemplate, modifiedBy); + } + public SaveDisplayAdTemplatesRequest(DisplayAdTemplate[] displayAdTemplate, String modifiedBy) + { + this.entities = displayAdTemplate; + this.modifiedBy = modifiedBy; + } + public SaveDisplayAdTemplatesRequest() + { + } + @Override + public SaveDisplayAdTemplatesRequest setEntities(DisplayAdTemplate... entities) + { + this.entities = entities; + return this; + } + public SaveDisplayAdTemplatesRequest addToEntities(DisplayAdTemplate entity) + { + if (this.entities == null) + { + this.entities = new DisplayAdTemplate[] { entity }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.entities)); + existingList.add(entity); + this.entities = existingList.toArray(new DisplayAdTemplate[0]); + } + return this; + } + @Override + public SaveDisplayAdTemplatesRequest setModifiedBy(String modifiedBy) + { + this.modifiedBy = modifiedBy; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/SaveDisplayAdTemplatesResponse.java b/src/src/main/java/com/relewise/client/model/SaveDisplayAdTemplatesResponse.java new file mode 100644 index 00000000..9222d72c --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/SaveDisplayAdTemplatesResponse.java @@ -0,0 +1,64 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = SaveDisplayAdTemplatesResponse.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class SaveDisplayAdTemplatesResponse extends DisplayAdTemplateUUIDSaveEntitiesResponse +{ + public String $type = "Relewise.Client.Responses.RetailMedia.SaveDisplayAdTemplatesResponse, Relewise.Client"; + public static SaveDisplayAdTemplatesResponse create(DisplayAdTemplate... displayAdTemplates) + { + return new SaveDisplayAdTemplatesResponse(displayAdTemplates); + } + public SaveDisplayAdTemplatesResponse(DisplayAdTemplate... displayAdTemplates) + { + this.entities = displayAdTemplates; + } + public SaveDisplayAdTemplatesResponse() + { + } + @Override + public SaveDisplayAdTemplatesResponse setEntities(DisplayAdTemplate... entities) + { + this.entities = entities; + return this; + } + public SaveDisplayAdTemplatesResponse addToEntities(DisplayAdTemplate entity) + { + if (this.entities == null) + { + this.entities = new DisplayAdTemplate[] { entity }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.entities)); + existingList.add(entity); + this.entities = existingList.toArray(new DisplayAdTemplate[0]); + } + return this; + } + @Override + public SaveDisplayAdTemplatesResponse setStatistics(Statistics statistics) + { + this.statistics = statistics; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/SaveDisplayAdsRequest.java b/src/src/main/java/com/relewise/client/model/SaveDisplayAdsRequest.java new file mode 100644 index 00000000..751e177f --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/SaveDisplayAdsRequest.java @@ -0,0 +1,65 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = SaveDisplayAdsRequest.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class SaveDisplayAdsRequest extends DisplayAdStringSaveEntitiesRequest +{ + public String $type = "Relewise.Client.Requests.RetailMedia.SaveDisplayAdsRequest, Relewise.Client"; + public static SaveDisplayAdsRequest create(DisplayAd[] displayAd, String modifiedBy) + { + return new SaveDisplayAdsRequest(displayAd, modifiedBy); + } + public SaveDisplayAdsRequest(DisplayAd[] displayAd, String modifiedBy) + { + this.entities = displayAd; + this.modifiedBy = modifiedBy; + } + public SaveDisplayAdsRequest() + { + } + @Override + public SaveDisplayAdsRequest setEntities(DisplayAd... entities) + { + this.entities = entities; + return this; + } + public SaveDisplayAdsRequest addToEntities(DisplayAd entity) + { + if (this.entities == null) + { + this.entities = new DisplayAd[] { entity }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.entities)); + existingList.add(entity); + this.entities = existingList.toArray(new DisplayAd[0]); + } + return this; + } + @Override + public SaveDisplayAdsRequest setModifiedBy(String modifiedBy) + { + this.modifiedBy = modifiedBy; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/SaveDisplayAdsResponse.java b/src/src/main/java/com/relewise/client/model/SaveDisplayAdsResponse.java new file mode 100644 index 00000000..6ada32d6 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/SaveDisplayAdsResponse.java @@ -0,0 +1,64 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = SaveDisplayAdsResponse.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class SaveDisplayAdsResponse extends DisplayAdStringSaveEntitiesResponse +{ + public String $type = "Relewise.Client.Responses.RetailMedia.SaveDisplayAdsResponse, Relewise.Client"; + public static SaveDisplayAdsResponse create(DisplayAd... displayAds) + { + return new SaveDisplayAdsResponse(displayAds); + } + public SaveDisplayAdsResponse(DisplayAd... displayAds) + { + this.entities = displayAds; + } + public SaveDisplayAdsResponse() + { + } + @Override + public SaveDisplayAdsResponse setEntities(DisplayAd... entities) + { + this.entities = entities; + return this; + } + public SaveDisplayAdsResponse addToEntities(DisplayAd entity) + { + if (this.entities == null) + { + this.entities = new DisplayAd[] { entity }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.entities)); + existingList.add(entity); + this.entities = existingList.toArray(new DisplayAd[0]); + } + return this; + } + @Override + public SaveDisplayAdsResponse setStatistics(Statistics statistics) + { + this.statistics = statistics; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/SaveLocationsRequest.java b/src/src/main/java/com/relewise/client/model/SaveLocationsRequest.java index 292b8ecb..15181e9d 100644 --- a/src/src/main/java/com/relewise/client/model/SaveLocationsRequest.java +++ b/src/src/main/java/com/relewise/client/model/SaveLocationsRequest.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = SaveLocationsRequest.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class SaveLocationsRequest extends LocationSaveEntitiesRequest +public class SaveLocationsRequest extends LocationUUIDSaveEntitiesRequest { public String $type = "Relewise.Client.Requests.RetailMedia.SaveLocationsRequest, Relewise.Client"; public static SaveLocationsRequest create(Location[] locations, String modifiedBy) diff --git a/src/src/main/java/com/relewise/client/model/SaveLocationsResponse.java b/src/src/main/java/com/relewise/client/model/SaveLocationsResponse.java index 6c8906b3..36c6ae91 100644 --- a/src/src/main/java/com/relewise/client/model/SaveLocationsResponse.java +++ b/src/src/main/java/com/relewise/client/model/SaveLocationsResponse.java @@ -21,7 +21,7 @@ property = "$type", defaultImpl = SaveLocationsResponse.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class SaveLocationsResponse extends LocationSaveEntitiesResponse +public class SaveLocationsResponse extends LocationUUIDSaveEntitiesResponse { public String $type = "Relewise.Client.Responses.RetailMedia.SaveLocationsResponse, Relewise.Client"; public static SaveLocationsResponse create(Location... locations) diff --git a/src/src/main/java/com/relewise/client/model/RetailMediaSearchTermCondition.java b/src/src/main/java/com/relewise/client/model/SearchTermConditionByLanguage.java similarity index 51% rename from src/src/main/java/com/relewise/client/model/RetailMediaSearchTermCondition.java rename to src/src/main/java/com/relewise/client/model/SearchTermConditionByLanguage.java index a12c65ec..fa69df5a 100644 --- a/src/src/main/java/com/relewise/client/model/RetailMediaSearchTermCondition.java +++ b/src/src/main/java/com/relewise/client/model/SearchTermConditionByLanguage.java @@ -19,17 +19,17 @@ use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "$type", - defaultImpl = RetailMediaSearchTermCondition.class) + defaultImpl = SearchTermConditionByLanguage.class) @JsonIgnoreProperties(ignoreUnknown = true) -public class RetailMediaSearchTermCondition extends SearchTermCondition +public class SearchTermConditionByLanguage extends SearchTermCondition { - public String $type = "Relewise.Client.DataTypes.RetailMedia.RetailMediaSearchTermCondition, Relewise.Client"; + public String $type = "Relewise.Client.DataTypes.Search.Rules.SearchTermConditionByLanguage, Relewise.Client"; public Language language; - public static RetailMediaSearchTermCondition create(Language language, SearchTermConditionConditionKind kind, String value) + public static SearchTermConditionByLanguage create(Language language, SearchTermConditionConditionKind kind, String value) { - return new RetailMediaSearchTermCondition(language, kind, value); + return new SearchTermConditionByLanguage(language, kind, value); } - public RetailMediaSearchTermCondition(Language language, SearchTermConditionConditionKind kind, String value) + public SearchTermConditionByLanguage(Language language, SearchTermConditionConditionKind kind, String value) { this.language = language; this.kind = kind; @@ -37,11 +37,11 @@ public RetailMediaSearchTermCondition(Language language, SearchTermConditionCond this.minimumLength = null; this.negated = false; } - public static RetailMediaSearchTermCondition create(Language language, SearchTermConditionConditionKind kind, String value, @Nullable Integer minimumLength, Boolean negated) + public static SearchTermConditionByLanguage create(Language language, SearchTermConditionConditionKind kind, String value, @Nullable Integer minimumLength, Boolean negated) { - return new RetailMediaSearchTermCondition(language, kind, value, minimumLength, negated); + return new SearchTermConditionByLanguage(language, kind, value, minimumLength, negated); } - public RetailMediaSearchTermCondition(Language language, SearchTermConditionConditionKind kind, String value, @Nullable Integer minimumLength, Boolean negated) + public SearchTermConditionByLanguage(Language language, SearchTermConditionConditionKind kind, String value, @Nullable Integer minimumLength, Boolean negated) { this.language = language; this.kind = kind; @@ -49,16 +49,16 @@ public RetailMediaSearchTermCondition(Language language, SearchTermConditionCond this.minimumLength = minimumLength; this.negated = negated; } - public static RetailMediaSearchTermCondition create(Language language, Integer minimumLength) + public static SearchTermConditionByLanguage create(Language language, Integer minimumLength) { - return new RetailMediaSearchTermCondition(language, minimumLength); + return new SearchTermConditionByLanguage(language, minimumLength); } - public RetailMediaSearchTermCondition(Language language, Integer minimumLength) + public SearchTermConditionByLanguage(Language language, Integer minimumLength) { this.language = language; this.minimumLength = minimumLength; } - public RetailMediaSearchTermCondition() + public SearchTermConditionByLanguage() { this.minimumLength = null; this.negated = false; @@ -67,30 +67,30 @@ public Language getLanguage() { return this.language; } - public RetailMediaSearchTermCondition setLanguage(Language language) + public SearchTermConditionByLanguage setLanguage(Language language) { this.language = language; return this; } @Override - public RetailMediaSearchTermCondition setKind(@Nullable SearchTermConditionConditionKind kind) + public SearchTermConditionByLanguage setKind(@Nullable SearchTermConditionConditionKind kind) { this.kind = kind; return this; } @Override - public RetailMediaSearchTermCondition setValue(@Nullable String value) + public SearchTermConditionByLanguage setValue(@Nullable String value) { this.value = value; return this; } @Override - public RetailMediaSearchTermCondition setAndConditions(SearchTermCondition... andConditions) + public SearchTermConditionByLanguage setAndConditions(SearchTermCondition... andConditions) { this.andConditions = new ArrayList<>(Arrays.asList(andConditions));; return this; } - public RetailMediaSearchTermCondition addToAndConditions(SearchTermCondition andConditions) + public SearchTermConditionByLanguage addToAndConditions(SearchTermCondition andConditions) { if (this.andConditions == null) { @@ -100,12 +100,12 @@ public RetailMediaSearchTermCondition addToAndConditions(SearchTermCondition and return this; } @Override - public RetailMediaSearchTermCondition setOrConditions(SearchTermCondition... orConditions) + public SearchTermConditionByLanguage setOrConditions(SearchTermCondition... orConditions) { this.orConditions = new ArrayList<>(Arrays.asList(orConditions));; return this; } - public RetailMediaSearchTermCondition addToOrConditions(SearchTermCondition orConditions) + public SearchTermConditionByLanguage addToOrConditions(SearchTermCondition orConditions) { if (this.orConditions == null) { @@ -115,13 +115,13 @@ public RetailMediaSearchTermCondition addToOrConditions(SearchTermCondition orCo return this; } @Override - public RetailMediaSearchTermCondition setMinimumLength(@Nullable Integer minimumLength) + public SearchTermConditionByLanguage setMinimumLength(@Nullable Integer minimumLength) { this.minimumLength = minimumLength; return this; } @Override - public RetailMediaSearchTermCondition setNegated(Boolean negated) + public SearchTermConditionByLanguage setNegated(Boolean negated) { this.negated = negated; return this; diff --git a/src/src/main/java/com/relewise/client/model/RetailMediaSearchTermConditionCollection.java b/src/src/main/java/com/relewise/client/model/SearchTermConditionByLanguageCollection.java similarity index 52% rename from src/src/main/java/com/relewise/client/model/RetailMediaSearchTermConditionCollection.java rename to src/src/main/java/com/relewise/client/model/SearchTermConditionByLanguageCollection.java index 720ad15d..791dee83 100644 --- a/src/src/main/java/com/relewise/client/model/RetailMediaSearchTermConditionCollection.java +++ b/src/src/main/java/com/relewise/client/model/SearchTermConditionByLanguageCollection.java @@ -16,30 +16,30 @@ import java.util.HashSet; @JsonIgnoreProperties(ignoreUnknown = true) -public class RetailMediaSearchTermConditionCollection +public class SearchTermConditionByLanguageCollection { - public @Nullable ArrayList values; - public static RetailMediaSearchTermConditionCollection create(RetailMediaSearchTermCondition... languageSpecificSearchTermConditions) + public @Nullable ArrayList values; + public static SearchTermConditionByLanguageCollection create(SearchTermConditionByLanguage... languageSpecificSearchTermConditions) { - return new RetailMediaSearchTermConditionCollection(languageSpecificSearchTermConditions); + return new SearchTermConditionByLanguageCollection(languageSpecificSearchTermConditions); } - public RetailMediaSearchTermConditionCollection(RetailMediaSearchTermCondition... languageSpecificSearchTermConditions) + public SearchTermConditionByLanguageCollection(SearchTermConditionByLanguage... languageSpecificSearchTermConditions) { this.values = new ArrayList<>(Arrays.asList(languageSpecificSearchTermConditions)); } - public RetailMediaSearchTermConditionCollection() + public SearchTermConditionByLanguageCollection() { } - public @Nullable ArrayList getValues() + public @Nullable ArrayList getValues() { return this.values; } - public RetailMediaSearchTermConditionCollection setValues(RetailMediaSearchTermCondition... values) + public SearchTermConditionByLanguageCollection setValues(SearchTermConditionByLanguage... values) { this.values = new ArrayList<>(Arrays.asList(values));; return this; } - public RetailMediaSearchTermConditionCollection addToValues(RetailMediaSearchTermCondition values) + public SearchTermConditionByLanguageCollection addToValues(SearchTermConditionByLanguage values) { if (this.values == null) { diff --git a/src/src/main/java/com/relewise/client/model/SelectedBrandPropertiesSettings.java b/src/src/main/java/com/relewise/client/model/SelectedBrandPropertiesSettings.java index 5f920adf..9194f47e 100644 --- a/src/src/main/java/com/relewise/client/model/SelectedBrandPropertiesSettings.java +++ b/src/src/main/java/com/relewise/client/model/SelectedBrandPropertiesSettings.java @@ -15,9 +15,15 @@ import java.util.Set; import java.util.HashSet; +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = SelectedBrandPropertiesSettings.class) @JsonIgnoreProperties(ignoreUnknown = true) public class SelectedBrandPropertiesSettings { + public String $type = "Relewise.Client.Requests.Shared.SelectedBrandPropertiesSettings, Relewise.Client"; public Boolean displayName; public Boolean assortments; public Boolean viewedByUserInfo; diff --git a/src/src/main/java/com/relewise/client/model/SelectedContentPropertiesSettings.java b/src/src/main/java/com/relewise/client/model/SelectedContentPropertiesSettings.java index 2b30f75c..ba4e0967 100644 --- a/src/src/main/java/com/relewise/client/model/SelectedContentPropertiesSettings.java +++ b/src/src/main/java/com/relewise/client/model/SelectedContentPropertiesSettings.java @@ -24,6 +24,8 @@ public class SelectedContentPropertiesSettings public Boolean allData; public Boolean viewedByUserInfo; public @Nullable String[] dataKeys; + /** Determines whether UserEngagement should be populated when results are mapped. */ + public Boolean userEngagement; public static SelectedContentPropertiesSettings create() { return new SelectedContentPropertiesSettings(); @@ -55,6 +57,11 @@ public Boolean getViewedByUserInfo() { return this.dataKeys; } + /** Determines whether UserEngagement should be populated when results are mapped. */ + public Boolean getUserEngagement() + { + return this.userEngagement; + } public SelectedContentPropertiesSettings setDisplayName(Boolean displayName) { this.displayName = displayName; @@ -99,4 +106,10 @@ public SelectedContentPropertiesSettings addToDataKeys(String dataKey) } return this; } + /** Determines whether UserEngagement should be populated when results are mapped. */ + public SelectedContentPropertiesSettings setUserEngagement(Boolean userEngagement) + { + this.userEngagement = userEngagement; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/SelectedDisplayAdPropertiesSettings.java b/src/src/main/java/com/relewise/client/model/SelectedDisplayAdPropertiesSettings.java new file mode 100644 index 00000000..d1998a41 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/SelectedDisplayAdPropertiesSettings.java @@ -0,0 +1,82 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class SelectedDisplayAdPropertiesSettings +{ + public Boolean displayName; + public Boolean allData; + public @Nullable String[] dataKeys; + public Boolean clickedByUserInfo; + public static SelectedDisplayAdPropertiesSettings create() + { + return new SelectedDisplayAdPropertiesSettings(); + } + public SelectedDisplayAdPropertiesSettings() + { + } + public Boolean getDisplayName() + { + return this.displayName; + } + public Boolean getAllData() + { + return this.allData; + } + public @Nullable String[] getDataKeys() + { + return this.dataKeys; + } + public Boolean getClickedByUserInfo() + { + return this.clickedByUserInfo; + } + public SelectedDisplayAdPropertiesSettings setDisplayName(Boolean displayName) + { + this.displayName = displayName; + return this; + } + public SelectedDisplayAdPropertiesSettings setAllData(Boolean allData) + { + this.allData = allData; + return this; + } + public SelectedDisplayAdPropertiesSettings setDataKeys(String... dataKeys) + { + this.dataKeys = dataKeys; + return this; + } + public SelectedDisplayAdPropertiesSettings addToDataKeys(String dataKey) + { + if (this.dataKeys == null) + { + this.dataKeys = new String[] { dataKey }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.dataKeys)); + existingList.add(dataKey); + this.dataKeys = existingList.toArray(new String[0]); + } + return this; + } + public SelectedDisplayAdPropertiesSettings setClickedByUserInfo(Boolean clickedByUserInfo) + { + this.clickedByUserInfo = clickedByUserInfo; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/SelectedProductDetailsPropertiesSettings.java b/src/src/main/java/com/relewise/client/model/SelectedProductDetailsPropertiesSettings.java index 0fc5e1f9..bec44118 100644 --- a/src/src/main/java/com/relewise/client/model/SelectedProductDetailsPropertiesSettings.java +++ b/src/src/main/java/com/relewise/client/model/SelectedProductDetailsPropertiesSettings.java @@ -31,6 +31,8 @@ public class SelectedProductDetailsPropertiesSettings public Boolean viewedByUserCompanyInfo; public Boolean purchasedByUserCompanyInfo; public @Nullable FilteredVariantsSettings filteredVariants; + /** Determines whether UserEngagement should be populated when result details are mapped. */ + public Boolean userEngagement; public static SelectedProductDetailsPropertiesSettings create() { return new SelectedProductDetailsPropertiesSettings(); @@ -90,6 +92,11 @@ public Boolean getPurchasedByUserCompanyInfo() { return this.filteredVariants; } + /** Determines whether UserEngagement should be populated when result details are mapped. */ + public Boolean getUserEngagement() + { + return this.userEngagement; + } public SelectedProductDetailsPropertiesSettings setDisplayName(Boolean displayName) { this.displayName = displayName; @@ -169,4 +176,10 @@ public SelectedProductDetailsPropertiesSettings setFilteredVariants(@Nullable Fi this.filteredVariants = filteredVariants; return this; } + /** Determines whether UserEngagement should be populated when result details are mapped. */ + public SelectedProductDetailsPropertiesSettings setUserEngagement(Boolean userEngagement) + { + this.userEngagement = userEngagement; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/SelectedProductPropertiesSettings.java b/src/src/main/java/com/relewise/client/model/SelectedProductPropertiesSettings.java index 87fbf467..cac1664f 100644 --- a/src/src/main/java/com/relewise/client/model/SelectedProductPropertiesSettings.java +++ b/src/src/main/java/com/relewise/client/model/SelectedProductPropertiesSettings.java @@ -15,9 +15,15 @@ import java.util.Set; import java.util.HashSet; +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = SelectedProductPropertiesSettings.class) @JsonIgnoreProperties(ignoreUnknown = true) public class SelectedProductPropertiesSettings { + public String $type = "Relewise.Client.Requests.Shared.SelectedProductPropertiesSettings, Relewise.Client"; public Boolean displayName; public Boolean categoryPaths; public Boolean assortments; @@ -33,6 +39,8 @@ public class SelectedProductPropertiesSettings public @Nullable FilteredVariantsSettings filteredVariants; /** Defines what Score properties will be included for the Score. */ public @Nullable SelectedScorePropertiesSettings score; + /** Determines whether UserEngagement should be populated when results are mapped. */ + public Boolean userEngagement; public static SelectedProductPropertiesSettings create() { return new SelectedProductPropertiesSettings(); @@ -97,6 +105,11 @@ public Boolean getPurchasedByUserCompanyInfo() { return this.score; } + /** Determines whether UserEngagement should be populated when results are mapped. */ + public Boolean getUserEngagement() + { + return this.userEngagement; + } public SelectedProductPropertiesSettings setDisplayName(Boolean displayName) { this.displayName = displayName; @@ -182,4 +195,10 @@ public SelectedProductPropertiesSettings setScore(@Nullable SelectedScorePropert this.score = score; return this; } + /** Determines whether UserEngagement should be populated when results are mapped. */ + public SelectedProductPropertiesSettings setUserEngagement(Boolean userEngagement) + { + this.userEngagement = userEngagement; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/SelectedVariantDetailsPropertiesSettings.java b/src/src/main/java/com/relewise/client/model/SelectedVariantDetailsPropertiesSettings.java index fdc2a2da..4825e6d3 100644 --- a/src/src/main/java/com/relewise/client/model/SelectedVariantDetailsPropertiesSettings.java +++ b/src/src/main/java/com/relewise/client/model/SelectedVariantDetailsPropertiesSettings.java @@ -25,6 +25,8 @@ public class SelectedVariantDetailsPropertiesSettings public Boolean allData; public @Nullable String[] dataKeys; public @Nullable String[] specificationKeys; + /** Determines whether UserEngagement should be populated when result details are mapped. */ + public Boolean userEngagement; public static SelectedVariantDetailsPropertiesSettings create() { return new SelectedVariantDetailsPropertiesSettings(); @@ -60,6 +62,11 @@ public Boolean getAllData() { return this.specificationKeys; } + /** Determines whether UserEngagement should be populated when result details are mapped. */ + public Boolean getUserEngagement() + { + return this.userEngagement; + } public SelectedVariantDetailsPropertiesSettings setDisplayName(Boolean displayName) { this.displayName = displayName; @@ -123,4 +130,10 @@ public SelectedVariantDetailsPropertiesSettings addToSpecificationKeys(String sp } return this; } + /** Determines whether UserEngagement should be populated when result details are mapped. */ + public SelectedVariantDetailsPropertiesSettings setUserEngagement(Boolean userEngagement) + { + this.userEngagement = userEngagement; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/SelectedVariantPropertiesSettings.java b/src/src/main/java/com/relewise/client/model/SelectedVariantPropertiesSettings.java index f633f476..ca9e423f 100644 --- a/src/src/main/java/com/relewise/client/model/SelectedVariantPropertiesSettings.java +++ b/src/src/main/java/com/relewise/client/model/SelectedVariantPropertiesSettings.java @@ -25,6 +25,8 @@ public class SelectedVariantPropertiesSettings public Boolean allData; public @Nullable String[] dataKeys; public @Nullable String[] specificationKeys; + /** Determines whether UserEngagement should be populated when results are mapped. */ + public Boolean userEngagement; public static SelectedVariantPropertiesSettings create() { return new SelectedVariantPropertiesSettings(); @@ -60,6 +62,11 @@ public Boolean getAllData() { return this.specificationKeys; } + /** Determines whether UserEngagement should be populated when results are mapped. */ + public Boolean getUserEngagement() + { + return this.userEngagement; + } public SelectedVariantPropertiesSettings setDisplayName(Boolean displayName) { this.displayName = displayName; @@ -123,4 +130,10 @@ public SelectedVariantPropertiesSettings addToSpecificationKeys(String specifica } return this; } + /** Determines whether UserEngagement should be populated when results are mapped. */ + public SelectedVariantPropertiesSettings setUserEngagement(Boolean userEngagement) + { + this.userEngagement = userEngagement; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/StringRetailMediaEntity.java b/src/src/main/java/com/relewise/client/model/StringRetailMediaEntity.java new file mode 100644 index 00000000..1389c324 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/StringRetailMediaEntity.java @@ -0,0 +1,38 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type") +@JsonSubTypes({ +}) +@JsonIgnoreProperties(ignoreUnknown = true) +public abstract class StringRetailMediaEntity +{ + public String $type = ""; + public @Nullable String id; + public @Nullable String getId() + { + return this.id; + } + public StringRetailMediaEntity setId(@Nullable String id) + { + this.id = id; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/TrackContentEngagementRequest.java b/src/src/main/java/com/relewise/client/model/TrackContentEngagementRequest.java new file mode 100644 index 00000000..9565c713 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/TrackContentEngagementRequest.java @@ -0,0 +1,48 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = TrackContentEngagementRequest.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class TrackContentEngagementRequest extends TrackingRequest +{ + public String $type = "Relewise.Client.Requests.Tracking.TrackContentEngagementRequest, Relewise.Client"; + public ContentEngagement contentEngagement; + public static TrackContentEngagementRequest create(ContentEngagement contentEngagement) + { + return new TrackContentEngagementRequest(contentEngagement); + } + public TrackContentEngagementRequest(ContentEngagement contentEngagement) + { + this.contentEngagement = contentEngagement; + } + public TrackContentEngagementRequest() + { + } + public ContentEngagement getContentEngagement() + { + return this.contentEngagement; + } + public TrackContentEngagementRequest setContentEngagement(ContentEngagement contentEngagement) + { + this.contentEngagement = contentEngagement; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/TrackDisplayAdClickRequest.java b/src/src/main/java/com/relewise/client/model/TrackDisplayAdClickRequest.java new file mode 100644 index 00000000..fb7ff2de --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/TrackDisplayAdClickRequest.java @@ -0,0 +1,48 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = TrackDisplayAdClickRequest.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class TrackDisplayAdClickRequest extends TrackingRequest +{ + public String $type = "Relewise.Client.Requests.Tracking.TrackDisplayAdClickRequest, Relewise.Client"; + public DisplayAdClick displayAdClick; + public static TrackDisplayAdClickRequest create(DisplayAdClick displayAdClick) + { + return new TrackDisplayAdClickRequest(displayAdClick); + } + public TrackDisplayAdClickRequest(DisplayAdClick displayAdClick) + { + this.displayAdClick = displayAdClick; + } + public TrackDisplayAdClickRequest() + { + } + public DisplayAdClick getDisplayAdClick() + { + return this.displayAdClick; + } + public TrackDisplayAdClickRequest setDisplayAdClick(DisplayAdClick displayAdClick) + { + this.displayAdClick = displayAdClick; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/TrackFeedDwellRequest.java b/src/src/main/java/com/relewise/client/model/TrackFeedDwellRequest.java new file mode 100644 index 00000000..021ad6fd --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/TrackFeedDwellRequest.java @@ -0,0 +1,48 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = TrackFeedDwellRequest.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class TrackFeedDwellRequest extends TrackingRequest +{ + public String $type = "Relewise.Client.Requests.Tracking.Feed.TrackFeedDwellRequest, Relewise.Client"; + public FeedDwell dwell; + public static TrackFeedDwellRequest create(FeedDwell dwell) + { + return new TrackFeedDwellRequest(dwell); + } + public TrackFeedDwellRequest(FeedDwell dwell) + { + this.dwell = dwell; + } + public TrackFeedDwellRequest() + { + } + public FeedDwell getDwell() + { + return this.dwell; + } + public TrackFeedDwellRequest setDwell(FeedDwell dwell) + { + this.dwell = dwell; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/TrackFeedItemClickRequest.java b/src/src/main/java/com/relewise/client/model/TrackFeedItemClickRequest.java new file mode 100644 index 00000000..7c4376fb --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/TrackFeedItemClickRequest.java @@ -0,0 +1,48 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = TrackFeedItemClickRequest.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class TrackFeedItemClickRequest extends TrackingRequest +{ + public String $type = "Relewise.Client.Requests.Tracking.Feed.TrackFeedItemClickRequest, Relewise.Client"; + public FeedItemClick click; + public static TrackFeedItemClickRequest create(FeedItemClick click) + { + return new TrackFeedItemClickRequest(click); + } + public TrackFeedItemClickRequest(FeedItemClick click) + { + this.click = click; + } + public TrackFeedItemClickRequest() + { + } + public FeedItemClick getClick() + { + return this.click; + } + public TrackFeedItemClickRequest setClick(FeedItemClick click) + { + this.click = click; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/TrackFeedItemPreviewRequest.java b/src/src/main/java/com/relewise/client/model/TrackFeedItemPreviewRequest.java new file mode 100644 index 00000000..38e84d8e --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/TrackFeedItemPreviewRequest.java @@ -0,0 +1,48 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = TrackFeedItemPreviewRequest.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class TrackFeedItemPreviewRequest extends TrackingRequest +{ + public String $type = "Relewise.Client.Requests.Tracking.Feed.TrackFeedItemPreviewRequest, Relewise.Client"; + public FeedItemPreview preview; + public static TrackFeedItemPreviewRequest create(FeedItemPreview preview) + { + return new TrackFeedItemPreviewRequest(preview); + } + public TrackFeedItemPreviewRequest(FeedItemPreview preview) + { + this.preview = preview; + } + public TrackFeedItemPreviewRequest() + { + } + public FeedItemPreview getPreview() + { + return this.preview; + } + public TrackFeedItemPreviewRequest setPreview(FeedItemPreview preview) + { + this.preview = preview; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/TrackProductEngagementRequest.java b/src/src/main/java/com/relewise/client/model/TrackProductEngagementRequest.java new file mode 100644 index 00000000..9a05e5ec --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/TrackProductEngagementRequest.java @@ -0,0 +1,48 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = TrackProductEngagementRequest.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class TrackProductEngagementRequest extends TrackingRequest +{ + public String $type = "Relewise.Client.Requests.Tracking.TrackProductEngagementRequest, Relewise.Client"; + public ProductEngagement productEngagement; + public static TrackProductEngagementRequest create(ProductEngagement productEngagement) + { + return new TrackProductEngagementRequest(productEngagement); + } + public TrackProductEngagementRequest(ProductEngagement productEngagement) + { + this.productEngagement = productEngagement; + } + public TrackProductEngagementRequest() + { + } + public ProductEngagement getProductEngagement() + { + return this.productEngagement; + } + public TrackProductEngagementRequest setProductEngagement(ProductEngagement productEngagement) + { + this.productEngagement = productEngagement; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/Trackable.java b/src/src/main/java/com/relewise/client/model/Trackable.java index 7eb3766e..9340effe 100644 --- a/src/src/main/java/com/relewise/client/model/Trackable.java +++ b/src/src/main/java/com/relewise/client/model/Trackable.java @@ -41,6 +41,12 @@ @JsonSubTypes.Type(value = ContentCategoryUpdate.class, name = "Relewise.Client.DataTypes.ContentCategoryUpdate, Relewise.Client"), @JsonSubTypes.Type(value = CompanyUpdate.class, name = "Relewise.Client.DataTypes.CompanyUpdate, Relewise.Client"), @JsonSubTypes.Type(value = CompanyAdministrativeAction.class, name = "Relewise.Client.DataTypes.CompanyAdministrativeAction, Relewise.Client"), + @JsonSubTypes.Type(value = FeedDwell.class, name = "Relewise.Client.DataTypes.Feed.FeedDwell, Relewise.Client"), + @JsonSubTypes.Type(value = ProductEngagement.class, name = "Relewise.Client.DataTypes.ProductEngagement, Relewise.Client"), + @JsonSubTypes.Type(value = FeedItemPreview.class, name = "Relewise.Client.DataTypes.Feed.FeedItemPreview, Relewise.Client"), + @JsonSubTypes.Type(value = FeedItemClick.class, name = "Relewise.Client.DataTypes.Feed.FeedItemClick, Relewise.Client"), + @JsonSubTypes.Type(value = ContentEngagement.class, name = "Relewise.Client.DataTypes.ContentEngagement, Relewise.Client"), + @JsonSubTypes.Type(value = DisplayAdClick.class, name = "Relewise.Client.DataTypes.DisplayAdClick, Relewise.Client"), }) @JsonIgnoreProperties(ignoreUnknown = true) public abstract class Trackable diff --git a/src/src/main/java/com/relewise/client/model/TrackingRequest.java b/src/src/main/java/com/relewise/client/model/TrackingRequest.java index 45dd62fd..7fd0a353 100644 --- a/src/src/main/java/com/relewise/client/model/TrackingRequest.java +++ b/src/src/main/java/com/relewise/client/model/TrackingRequest.java @@ -42,6 +42,12 @@ @JsonSubTypes.Type(value = TrackContentCategoryAdministrativeActionRequest.class, name = "Relewise.Client.Requests.Tracking.TrackContentCategoryAdministrativeActionRequest, Relewise.Client"), @JsonSubTypes.Type(value = TrackCompanyUpdateRequest.class, name = "Relewise.Client.Requests.Tracking.TrackCompanyUpdateRequest, Relewise.Client"), @JsonSubTypes.Type(value = TrackCompanyAdministrativeActionRequest.class, name = "Relewise.Client.Requests.Tracking.TrackCompanyAdministrativeActionRequest, Relewise.Client"), + @JsonSubTypes.Type(value = TrackFeedDwellRequest.class, name = "Relewise.Client.Requests.Tracking.Feed.TrackFeedDwellRequest, Relewise.Client"), + @JsonSubTypes.Type(value = TrackProductEngagementRequest.class, name = "Relewise.Client.Requests.Tracking.TrackProductEngagementRequest, Relewise.Client"), + @JsonSubTypes.Type(value = TrackFeedItemPreviewRequest.class, name = "Relewise.Client.Requests.Tracking.Feed.TrackFeedItemPreviewRequest, Relewise.Client"), + @JsonSubTypes.Type(value = TrackFeedItemClickRequest.class, name = "Relewise.Client.Requests.Tracking.Feed.TrackFeedItemClickRequest, Relewise.Client"), + @JsonSubTypes.Type(value = TrackContentEngagementRequest.class, name = "Relewise.Client.Requests.Tracking.TrackContentEngagementRequest, Relewise.Client"), + @JsonSubTypes.Type(value = TrackDisplayAdClickRequest.class, name = "Relewise.Client.Requests.Tracking.TrackDisplayAdClickRequest, Relewise.Client"), }) @JsonIgnoreProperties(ignoreUnknown = true) public abstract class TrackingRequest extends LicensedRequest diff --git a/src/src/main/java/com/relewise/client/model/RetailMediaEntity.java b/src/src/main/java/com/relewise/client/model/UUIDRetailMediaEntity.java similarity index 88% rename from src/src/main/java/com/relewise/client/model/RetailMediaEntity.java rename to src/src/main/java/com/relewise/client/model/UUIDRetailMediaEntity.java index 8f1bdecf..7f8e6c77 100644 --- a/src/src/main/java/com/relewise/client/model/RetailMediaEntity.java +++ b/src/src/main/java/com/relewise/client/model/UUIDRetailMediaEntity.java @@ -22,7 +22,7 @@ @JsonSubTypes({ }) @JsonIgnoreProperties(ignoreUnknown = true) -public abstract class RetailMediaEntity +public abstract class UUIDRetailMediaEntity { public String $type = ""; public @Nullable UUID id; @@ -30,7 +30,7 @@ public abstract class RetailMediaEntity { return this.id; } - public RetailMediaEntity setId(@Nullable UUID id) + public UUIDRetailMediaEntity setId(@Nullable UUID id) { this.id = id; return this; diff --git a/src/src/main/java/com/relewise/client/model/UserCondition.java b/src/src/main/java/com/relewise/client/model/UserCondition.java index ec01c7c6..7ddfc510 100644 --- a/src/src/main/java/com/relewise/client/model/UserCondition.java +++ b/src/src/main/java/com/relewise/client/model/UserCondition.java @@ -33,6 +33,7 @@ @JsonSubTypes.Type(value = OrCondition.class, name = "Relewise.Client.DataTypes.UserConditions.OrCondition, Relewise.Client"), @JsonSubTypes.Type(value = AndCondition.class, name = "Relewise.Client.DataTypes.UserConditions.AndCondition, Relewise.Client"), @JsonSubTypes.Type(value = HasDataCondition.class, name = "Relewise.Client.DataTypes.UserConditions.HasDataCondition, Relewise.Client"), + @JsonSubTypes.Type(value = HasCompanyDataCondition.class, name = "Relewise.Client.DataTypes.UserConditions.HasCompanyDataCondition, Relewise.Client"), }) @JsonIgnoreProperties(ignoreUnknown = true) public abstract class UserCondition diff --git a/src/src/main/java/com/relewise/client/model/UserResultDetails.java b/src/src/main/java/com/relewise/client/model/UserResultDetails.java index c5f91a40..69181f5a 100644 --- a/src/src/main/java/com/relewise/client/model/UserResultDetails.java +++ b/src/src/main/java/com/relewise/client/model/UserResultDetails.java @@ -15,9 +15,15 @@ import java.util.Set; import java.util.HashSet; +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = UserResultDetails.class) @JsonIgnoreProperties(ignoreUnknown = true) public class UserResultDetails { + public String $type = "Relewise.Client.DataTypes.UserResultDetails, Relewise.Client"; public String authenticatedId; public String temporaryId; public String email; diff --git a/src/src/main/java/com/relewise/client/model/UserResultDetailsSelectedPropertiesSettings.java b/src/src/main/java/com/relewise/client/model/UserResultDetailsSelectedPropertiesSettings.java new file mode 100644 index 00000000..ec02d1c5 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/UserResultDetailsSelectedPropertiesSettings.java @@ -0,0 +1,146 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = UserResultDetailsSelectedPropertiesSettings.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class UserResultDetailsSelectedPropertiesSettings +{ + public String $type = "Relewise.Client.DataTypes.UserResultDetails+SelectedPropertiesSettings, Relewise.Client"; + public Boolean allClassifications; + public @Nullable String[] classificationKeys; + public @Nullable CartDetailsSelectedPropertiesSettings carts; + public Boolean allIdentifiers; + public @Nullable String[] identifierKeys; + public Boolean allData; + public @Nullable String[] dataKeys; + public static UserResultDetailsSelectedPropertiesSettings create() + { + return new UserResultDetailsSelectedPropertiesSettings(); + } + public UserResultDetailsSelectedPropertiesSettings() + { + } + public Boolean getAllClassifications() + { + return this.allClassifications; + } + public @Nullable String[] getClassificationKeys() + { + return this.classificationKeys; + } + public @Nullable CartDetailsSelectedPropertiesSettings getCarts() + { + return this.carts; + } + public Boolean getAllIdentifiers() + { + return this.allIdentifiers; + } + public @Nullable String[] getIdentifierKeys() + { + return this.identifierKeys; + } + public Boolean getAllData() + { + return this.allData; + } + public @Nullable String[] getDataKeys() + { + return this.dataKeys; + } + public UserResultDetailsSelectedPropertiesSettings setAllClassifications(Boolean allClassifications) + { + this.allClassifications = allClassifications; + return this; + } + public UserResultDetailsSelectedPropertiesSettings setClassificationKeys(String... classificationKeys) + { + this.classificationKeys = classificationKeys; + return this; + } + public UserResultDetailsSelectedPropertiesSettings addToClassificationKeys(String classificationKey) + { + if (this.classificationKeys == null) + { + this.classificationKeys = new String[] { classificationKey }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.classificationKeys)); + existingList.add(classificationKey); + this.classificationKeys = existingList.toArray(new String[0]); + } + return this; + } + public UserResultDetailsSelectedPropertiesSettings setCarts(@Nullable CartDetailsSelectedPropertiesSettings carts) + { + this.carts = carts; + return this; + } + public UserResultDetailsSelectedPropertiesSettings setAllIdentifiers(Boolean allIdentifiers) + { + this.allIdentifiers = allIdentifiers; + return this; + } + public UserResultDetailsSelectedPropertiesSettings setIdentifierKeys(String... identifierKeys) + { + this.identifierKeys = identifierKeys; + return this; + } + public UserResultDetailsSelectedPropertiesSettings addToIdentifierKeys(String identifierKey) + { + if (this.identifierKeys == null) + { + this.identifierKeys = new String[] { identifierKey }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.identifierKeys)); + existingList.add(identifierKey); + this.identifierKeys = existingList.toArray(new String[0]); + } + return this; + } + public UserResultDetailsSelectedPropertiesSettings setAllData(Boolean allData) + { + this.allData = allData; + return this; + } + public UserResultDetailsSelectedPropertiesSettings setDataKeys(String... dataKeys) + { + this.dataKeys = dataKeys; + return this; + } + public UserResultDetailsSelectedPropertiesSettings addToDataKeys(String dataKey) + { + if (this.dataKeys == null) + { + this.dataKeys = new String[] { dataKey }; + } + else + { + ArrayList existingList = new ArrayList<>(Arrays.asList(this.dataKeys)); + existingList.add(dataKey); + this.dataKeys = existingList.toArray(new String[0]); + } + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/VariantEngagementFilter.java b/src/src/main/java/com/relewise/client/model/VariantEngagementFilter.java new file mode 100644 index 00000000..cb2305d5 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/VariantEngagementFilter.java @@ -0,0 +1,102 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** Filters variant results by previously tracked engagement signals such as sentiment or favorites. */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = VariantEngagementFilter.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class VariantEngagementFilter extends Filter implements IVariantFilter +{ + public String $type = "Relewise.Client.Requests.Filters.VariantEngagementFilter, Relewise.Client"; + /** Specifies the sentiment that must have been recorded for the variant. */ + public @Nullable ProductEngagementDataSentimentKind sentiment; + /** Specifies whether the variant must be marked as a favorite by the user. */ + public @Nullable Boolean isFavorite; + public static VariantEngagementFilter create(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite) + { + return new VariantEngagementFilter(sentiment, isFavorite); + } + public VariantEngagementFilter(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite) + { + this.sentiment = sentiment; + this.isFavorite = isFavorite; + this.negated = false; + } + /** + * Initializes a new instance of the VariantEngagementFilter class. + * @param sentiment Optional sentiment requirement. Pass + * @param isFavorite Optional favorite requirement. Pass + * @param negated Set to + */ + public static VariantEngagementFilter create(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite, Boolean negated) + { + return new VariantEngagementFilter(sentiment, isFavorite, negated); + } + /** + * Initializes a new instance of the VariantEngagementFilter class. + * @param sentiment Optional sentiment requirement. Pass + * @param isFavorite Optional favorite requirement. Pass + * @param negated Set to + */ + public VariantEngagementFilter(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite, Boolean negated) + { + this.sentiment = sentiment; + this.isFavorite = isFavorite; + this.negated = negated; + } + public VariantEngagementFilter() + { + this.negated = false; + } + /** Specifies the sentiment that must have been recorded for the variant. */ + public @Nullable ProductEngagementDataSentimentKind getSentiment() + { + return this.sentiment; + } + /** Specifies whether the variant must be marked as a favorite by the user. */ + public @Nullable Boolean getIsFavorite() + { + return this.isFavorite; + } + /** Specifies the sentiment that must have been recorded for the variant. */ + public VariantEngagementFilter setSentiment(@Nullable ProductEngagementDataSentimentKind sentiment) + { + this.sentiment = sentiment; + return this; + } + /** Specifies whether the variant must be marked as a favorite by the user. */ + public VariantEngagementFilter setIsFavorite(@Nullable Boolean isFavorite) + { + this.isFavorite = isFavorite; + return this; + } + @Override + public VariantEngagementFilter setNegated(Boolean negated) + { + this.negated = negated; + return this; + } + @Override + public VariantEngagementFilter setSettings(@Nullable FilterSettings settings) + { + this.settings = settings; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/VariantEngagementRelevanceModifier.java b/src/src/main/java/com/relewise/client/model/VariantEngagementRelevanceModifier.java new file mode 100644 index 00000000..104a7dd1 --- /dev/null +++ b/src/src/main/java/com/relewise/client/model/VariantEngagementRelevanceModifier.java @@ -0,0 +1,127 @@ +package com.relewise.client.model; + +import com.fasterxml.jackson.annotation.*; +import javax.annotation.Nullable; +import java.io.IOException; +import java.time.Duration; +import java.time.OffsetDateTime; +import java.time.LocalDateTime; +import java.util.Objects; +import java.util.Arrays; +import java.util.UUID; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.HashSet; + +/** A RelevanceModifier that multiplies the relevance of variants based on the current user's engagement data. */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "$type", + defaultImpl = VariantEngagementRelevanceModifier.class) +@JsonIgnoreProperties(ignoreUnknown = true) +public class VariantEngagementRelevanceModifier extends RelevanceModifier implements IVariantRelevanceModifier +{ + public String $type = "Relewise.Client.Requests.RelevanceModifiers.VariantEngagementRelevanceModifier, Relewise.Client"; + /** The sentiment that must match for MultiplyWeightBy to apply. */ + public @Nullable ProductEngagementDataSentimentKind sentiment; + /** The favorite flag that must match for MultiplyWeightBy to apply. */ + public @Nullable Boolean isFavorite; + /** The multiplier applied when the modifier condition is satisfied (or when it is not satisfied if Negated is true). */ + public Double multiplyWeightBy; + /** When set to true, the multiplier applies when the condition is not satisfied instead of when it matches. */ + public Boolean negated; + public static VariantEngagementRelevanceModifier create(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite) + { + return new VariantEngagementRelevanceModifier(sentiment, isFavorite); + } + public VariantEngagementRelevanceModifier(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite) + { + this.sentiment = sentiment; + this.isFavorite = isFavorite; + this.multiplyWeightBy = 1d; + this.negated = false; + } + /** + * Creates a new VariantEngagementRelevanceModifier. + * @param sentiment The sentiment that must match for MultiplyWeightBy to apply. + * @param isFavorite The favorite flag that must match for MultiplyWeightBy to apply. + * @param multiplyWeightBy The multiplier applied when the modifier condition is satisfied (or when it is not satisfied if Negated is true). + * @param negated When set to true, the multiplier applies when the condition is not satisfied instead of when it matches. + */ + public static VariantEngagementRelevanceModifier create(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite, Double multiplyWeightBy, Boolean negated) + { + return new VariantEngagementRelevanceModifier(sentiment, isFavorite, multiplyWeightBy, negated); + } + /** + * Creates a new VariantEngagementRelevanceModifier. + * @param sentiment The sentiment that must match for MultiplyWeightBy to apply. + * @param isFavorite The favorite flag that must match for MultiplyWeightBy to apply. + * @param multiplyWeightBy The multiplier applied when the modifier condition is satisfied (or when it is not satisfied if Negated is true). + * @param negated When set to true, the multiplier applies when the condition is not satisfied instead of when it matches. + */ + public VariantEngagementRelevanceModifier(@Nullable ProductEngagementDataSentimentKind sentiment, @Nullable Boolean isFavorite, Double multiplyWeightBy, Boolean negated) + { + this.sentiment = sentiment; + this.isFavorite = isFavorite; + this.multiplyWeightBy = multiplyWeightBy; + this.negated = negated; + } + public VariantEngagementRelevanceModifier() + { + this.multiplyWeightBy = 1d; + this.negated = false; + } + /** The sentiment that must match for MultiplyWeightBy to apply. */ + public @Nullable ProductEngagementDataSentimentKind getSentiment() + { + return this.sentiment; + } + /** The favorite flag that must match for MultiplyWeightBy to apply. */ + public @Nullable Boolean getIsFavorite() + { + return this.isFavorite; + } + /** The multiplier applied when the modifier condition is satisfied (or when it is not satisfied if Negated is true). */ + public Double getMultiplyWeightBy() + { + return this.multiplyWeightBy; + } + /** When set to true, the multiplier applies when the condition is not satisfied instead of when it matches. */ + public Boolean getNegated() + { + return this.negated; + } + /** The sentiment that must match for MultiplyWeightBy to apply. */ + public VariantEngagementRelevanceModifier setSentiment(@Nullable ProductEngagementDataSentimentKind sentiment) + { + this.sentiment = sentiment; + return this; + } + /** The favorite flag that must match for MultiplyWeightBy to apply. */ + public VariantEngagementRelevanceModifier setIsFavorite(@Nullable Boolean isFavorite) + { + this.isFavorite = isFavorite; + return this; + } + /** The multiplier applied when the modifier condition is satisfied (or when it is not satisfied if Negated is true). */ + public VariantEngagementRelevanceModifier setMultiplyWeightBy(Double multiplyWeightBy) + { + this.multiplyWeightBy = multiplyWeightBy; + return this; + } + /** When set to true, the multiplier applies when the condition is not satisfied instead of when it matches. */ + public VariantEngagementRelevanceModifier setNegated(Boolean negated) + { + this.negated = negated; + return this; + } + @Override + public VariantEngagementRelevanceModifier setFilters(FilterCollection filters) + { + this.filters = filters; + return this; + } +} diff --git a/src/src/main/java/com/relewise/client/model/VariantResult.java b/src/src/main/java/com/relewise/client/model/VariantResult.java index d297dfea..d6989c18 100644 --- a/src/src/main/java/com/relewise/client/model/VariantResult.java +++ b/src/src/main/java/com/relewise/client/model/VariantResult.java @@ -26,6 +26,8 @@ public class VariantResult public Integer rank; public @Nullable Double listPrice; public @Nullable Double salesPrice; + /** Contains engagement signals recorded for the current user on this variant. Populated when requested via UserEngagement. */ + public @Nullable ProductEngagementData userEngagement; public static VariantResult create(String variantId, Integer rank) { return new VariantResult(variantId, rank); @@ -70,6 +72,11 @@ public Integer getRank() { return this.salesPrice; } + /** Contains engagement signals recorded for the current user on this variant. Populated when requested via UserEngagement. */ + public @Nullable ProductEngagementData getUserEngagement() + { + return this.userEngagement; + } public VariantResult setVariantId(String variantId) { this.variantId = variantId; @@ -142,4 +149,10 @@ public VariantResult setSalesPrice(@Nullable Double salesPrice) this.salesPrice = salesPrice; return this; } + /** Contains engagement signals recorded for the current user on this variant. Populated when requested via UserEngagement. */ + public VariantResult setUserEngagement(@Nullable ProductEngagementData userEngagement) + { + this.userEngagement = userEngagement; + return this; + } } diff --git a/src/src/main/java/com/relewise/client/model/VariantResultDetails.java b/src/src/main/java/com/relewise/client/model/VariantResultDetails.java index c3510bcf..66f62f1d 100644 --- a/src/src/main/java/com/relewise/client/model/VariantResultDetails.java +++ b/src/src/main/java/com/relewise/client/model/VariantResultDetails.java @@ -26,6 +26,8 @@ public class VariantResultDetails public MultiCurrency listPrice; public MultiCurrency salesPrice; public Boolean disabled; + /** Contains engagement signals (sentiment and favorite state) recorded for the current user on this variant. Populated only when the request sets UserEngagement to true. */ + public @Nullable ProductEngagementData userEngagement; public static VariantResultDetails create(String variantId) { return new VariantResultDetails(variantId); @@ -69,6 +71,11 @@ public Boolean getDisabled() { return this.disabled; } + /** Contains engagement signals (sentiment and favorite state) recorded for the current user on this variant. Populated only when the request sets UserEngagement to true. */ + public @Nullable ProductEngagementData getUserEngagement() + { + return this.userEngagement; + } public VariantResultDetails setVariantId(String variantId) { this.variantId = variantId; @@ -141,4 +148,10 @@ public VariantResultDetails setDisabled(Boolean disabled) this.disabled = disabled; return this; } + /** Contains engagement signals (sentiment and favorite state) recorded for the current user on this variant. Populated only when the request sets UserEngagement to true. */ + public VariantResultDetails setUserEngagement(@Nullable ProductEngagementData userEngagement) + { + this.userEngagement = userEngagement; + return this; + } }