001// -------------------------------------------------------------------------------- 002// Copyright 2002-2026 Echo Three, LLC 003// 004// Licensed under the Apache License, Version 2.0 (the "License"); 005// you may not use this file except in compliance with the License. 006// You may obtain a copy of the License at 007// 008// http://www.apache.org/licenses/LICENSE-2.0 009// 010// Unless required by applicable law or agreed to in writing, software 011// distributed under the License is distributed on an "AS IS" BASIS, 012// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013// See the License for the specific language governing permissions and 014// limitations under the License. 015// -------------------------------------------------------------------------------- 016 017package com.echothree.control.user.offer.common; 018 019import com.echothree.control.user.offer.common.form.*; 020import com.echothree.control.user.offer.common.result.*; 021import com.echothree.model.data.user.common.pk.UserVisitPK; 022import com.echothree.util.common.command.CommandResult; 023import com.echothree.util.common.command.VoidResult; 024 025public interface OfferService 026 extends OfferForms { 027 028 // ------------------------------------------------------------------------- 029 // Testing 030 // ------------------------------------------------------------------------- 031 032 String ping(); 033 034 // ------------------------------------------------------------------------- 035 // Offers 036 // ------------------------------------------------------------------------- 037 038 CommandResult<CreateOfferResult> createOffer(UserVisitPK userVisitPK, CreateOfferForm form); 039 040 CommandResult<GetOffersResult> getOffers(UserVisitPK userVisitPK, GetOffersForm form); 041 042 CommandResult<GetOfferResult> getOffer(UserVisitPK userVisitPK, GetOfferForm form); 043 044 CommandResult<GetOfferChoicesResult> getOfferChoices(UserVisitPK userVisitPK, GetOfferChoicesForm form); 045 046 CommandResult<VoidResult> setDefaultOffer(UserVisitPK userVisitPK, SetDefaultOfferForm form); 047 048 CommandResult<EditOfferResult> editOffer(UserVisitPK userVisitPK, EditOfferForm form); 049 050 CommandResult<VoidResult> deleteOffer(UserVisitPK userVisitPK, DeleteOfferForm form); 051 052 // ------------------------------------------------------------------------- 053 // Offer Descriptions 054 // ------------------------------------------------------------------------- 055 056 CommandResult<VoidResult> createOfferDescription(UserVisitPK userVisitPK, CreateOfferDescriptionForm form); 057 058 CommandResult<GetOfferDescriptionsResult> getOfferDescriptions(UserVisitPK userVisitPK, GetOfferDescriptionsForm form); 059 060 CommandResult<EditOfferDescriptionResult> editOfferDescription(UserVisitPK userVisitPK, EditOfferDescriptionForm form); 061 062 CommandResult<VoidResult> deleteOfferDescription(UserVisitPK userVisitPK, DeleteOfferDescriptionForm form); 063 064 // ------------------------------------------------------------------------- 065 // Offer Customer Types 066 // ------------------------------------------------------------------------- 067 068 CommandResult<VoidResult> createOfferCustomerType(UserVisitPK userVisitPK, CreateOfferCustomerTypeForm form); 069 070 CommandResult<GetOfferCustomerTypeResult> getOfferCustomerType(UserVisitPK userVisitPK, GetOfferCustomerTypeForm form); 071 072 CommandResult<GetOfferCustomerTypesResult> getOfferCustomerTypes(UserVisitPK userVisitPK, GetOfferCustomerTypesForm form); 073 074 CommandResult<VoidResult> setDefaultOfferCustomerType(UserVisitPK userVisitPK, SetDefaultOfferCustomerTypeForm form); 075 076 CommandResult<EditOfferCustomerTypeResult> editOfferCustomerType(UserVisitPK userVisitPK, EditOfferCustomerTypeForm form); 077 078 CommandResult<VoidResult> deleteOfferCustomerType(UserVisitPK userVisitPK, DeleteOfferCustomerTypeForm form); 079 080 // ------------------------------------------------------------------------- 081 // Offer Chain Types 082 // ------------------------------------------------------------------------- 083 084 CommandResult<VoidResult> createOfferChainType(UserVisitPK userVisitPK, CreateOfferChainTypeForm form); 085 086 CommandResult<GetOfferChainTypesResult> getOfferChainTypes(UserVisitPK userVisitPK, GetOfferChainTypesForm form); 087 088 CommandResult<GetOfferChainTypeResult> getOfferChainType(UserVisitPK userVisitPK, GetOfferChainTypeForm form); 089 090 CommandResult<EditOfferChainTypeResult> editOfferChainType(UserVisitPK userVisitPK, EditOfferChainTypeForm form); 091 092 CommandResult<VoidResult> deleteOfferChainType(UserVisitPK userVisitPK, DeleteOfferChainTypeForm form); 093 094 // ------------------------------------------------------------------------- 095 // Offer Uses 096 // ------------------------------------------------------------------------- 097 098 CommandResult<CreateOfferUseResult> createOfferUse(UserVisitPK userVisitPK, CreateOfferUseForm form); 099 100 CommandResult<GetOfferUsesResult> getOfferUses(UserVisitPK userVisitPK, GetOfferUsesForm form); 101 102 CommandResult<GetOfferUseResult> getOfferUse(UserVisitPK userVisitPK, GetOfferUseForm form); 103 104 CommandResult<EditOfferUseResult> editOfferUse(UserVisitPK userVisitPK, EditOfferUseForm form); 105 106 CommandResult<VoidResult> deleteOfferUse(UserVisitPK userVisitPK, DeleteOfferUseForm form); 107 108 // ------------------------------------------------------------------------- 109 // Sources 110 // ------------------------------------------------------------------------- 111 112 CommandResult<CreateSourceResult> createSource(UserVisitPK userVisitPK, CreateSourceForm form); 113 114 CommandResult<GetSourceChoicesResult> getSourceChoices(UserVisitPK userVisitPK, GetSourceChoicesForm form); 115 116 CommandResult<GetSourcesResult> getSources(UserVisitPK userVisitPK, GetSourcesForm form); 117 118 CommandResult<GetSourceResult> getSource(UserVisitPK userVisitPK, GetSourceForm form); 119 120 CommandResult<VoidResult> setDefaultSource(UserVisitPK userVisitPK, SetDefaultSourceForm form); 121 122 CommandResult<EditSourceResult> editSource(UserVisitPK userVisitPK, EditSourceForm form); 123 124 CommandResult<VoidResult> deleteSource(UserVisitPK userVisitPK, DeleteSourceForm form); 125 126 // ------------------------------------------------------------------------- 127 // Offer Items 128 // ------------------------------------------------------------------------- 129 130 CommandResult<CreateOfferItemResult> createOfferItem(UserVisitPK userVisitPK, CreateOfferItemForm form); 131 132 CommandResult<GetOfferItemsResult> getOfferItems(UserVisitPK userVisitPK, GetOfferItemsForm form); 133 134 CommandResult<GetOfferItemResult> getOfferItem(UserVisitPK userVisitPK, GetOfferItemForm form); 135 136 CommandResult<VoidResult> deleteOfferItem(UserVisitPK userVisitPK, DeleteOfferItemForm form); 137 138 // ------------------------------------------------------------------------- 139 // Offer Item Prices 140 // ------------------------------------------------------------------------- 141 142 CommandResult<VoidResult> createOfferItemPrice(UserVisitPK userVisitPK, CreateOfferItemPriceForm form); 143 144 CommandResult<GetOfferItemPriceResult> getOfferItemPrice(UserVisitPK userVisitPK, GetOfferItemPriceForm form); 145 146 CommandResult<GetOfferItemPricesResult> getOfferItemPrices(UserVisitPK userVisitPK, GetOfferItemPricesForm form); 147 148 CommandResult<EditOfferItemPriceResult> editOfferItemPrice(UserVisitPK userVisitPK, EditOfferItemPriceForm form); 149 150 CommandResult<VoidResult> deleteOfferItemPrice(UserVisitPK userVisitPK, DeleteOfferItemPriceForm form); 151 152 // ------------------------------------------------------------------------- 153 // Use Types 154 // ------------------------------------------------------------------------- 155 156 CommandResult<CreateUseTypeResult> createUseType(UserVisitPK userVisitPK, CreateUseTypeForm form); 157 158 CommandResult<GetUseTypesResult> getUseTypes(UserVisitPK userVisitPK, GetUseTypesForm form); 159 160 CommandResult<GetUseTypeResult> getUseType(UserVisitPK userVisitPK, GetUseTypeForm form); 161 162 CommandResult<GetUseTypeChoicesResult> getUseTypeChoices(UserVisitPK userVisitPK, GetUseTypeChoicesForm form); 163 164 CommandResult<VoidResult> setDefaultUseType(UserVisitPK userVisitPK, SetDefaultUseTypeForm form); 165 166 CommandResult<EditUseTypeResult> editUseType(UserVisitPK userVisitPK, EditUseTypeForm form); 167 168 CommandResult<VoidResult> deleteUseType(UserVisitPK userVisitPK, DeleteUseTypeForm form); 169 170 // ------------------------------------------------------------------------- 171 // Use Type Descriptions 172 // ------------------------------------------------------------------------- 173 174 CommandResult<VoidResult> createUseTypeDescription(UserVisitPK userVisitPK, CreateUseTypeDescriptionForm form); 175 176 CommandResult<GetUseTypeDescriptionsResult> getUseTypeDescriptions(UserVisitPK userVisitPK, GetUseTypeDescriptionsForm form); 177 178 CommandResult<GetUseTypeDescriptionResult> getUseTypeDescription(UserVisitPK userVisitPK, GetUseTypeDescriptionForm form); 179 180 CommandResult<EditUseTypeDescriptionResult> editUseTypeDescription(UserVisitPK userVisitPK, EditUseTypeDescriptionForm form); 181 182 CommandResult<VoidResult> deleteUseTypeDescription(UserVisitPK userVisitPK, DeleteUseTypeDescriptionForm form); 183 184 // ------------------------------------------------------------------------- 185 // Use Name Elements 186 // ------------------------------------------------------------------------- 187 188 CommandResult<CreateUseNameElementResult> createUseNameElement(UserVisitPK userVisitPK, CreateUseNameElementForm form); 189 190 CommandResult<GetUseNameElementsResult> getUseNameElements(UserVisitPK userVisitPK, GetUseNameElementsForm form); 191 192 CommandResult<GetUseNameElementResult> getUseNameElement(UserVisitPK userVisitPK, GetUseNameElementForm form); 193 194 CommandResult<EditUseNameElementResult> editUseNameElement(UserVisitPK userVisitPK, EditUseNameElementForm form); 195 196 CommandResult<VoidResult> deleteUseNameElement(UserVisitPK userVisitPK, DeleteUseNameElementForm form); 197 198 // ------------------------------------------------------------------------- 199 // Use Name Element Descriptions 200 // ------------------------------------------------------------------------- 201 202 CommandResult<VoidResult> createUseNameElementDescription(UserVisitPK userVisitPK, CreateUseNameElementDescriptionForm form); 203 204 CommandResult<GetUseNameElementDescriptionsResult> getUseNameElementDescriptions(UserVisitPK userVisitPK, GetUseNameElementDescriptionsForm form); 205 206 CommandResult<GetUseNameElementDescriptionResult> getUseNameElementDescription(UserVisitPK userVisitPK, GetUseNameElementDescriptionForm form); 207 208 CommandResult<EditUseNameElementDescriptionResult> editUseNameElementDescription(UserVisitPK userVisitPK, EditUseNameElementDescriptionForm form); 209 210 CommandResult<VoidResult> deleteUseNameElementDescription(UserVisitPK userVisitPK, DeleteUseNameElementDescriptionForm form); 211 212 // ------------------------------------------------------------------------- 213 // Uses 214 // ------------------------------------------------------------------------- 215 216 CommandResult<CreateUseResult> createUse(UserVisitPK userVisitPK, CreateUseForm form); 217 218 CommandResult<GetUseChoicesResult> getUseChoices(UserVisitPK userVisitPK, GetUseChoicesForm form); 219 220 CommandResult<GetUsesResult> getUses(UserVisitPK userVisitPK, GetUsesForm form); 221 222 CommandResult<GetUseResult> getUse(UserVisitPK userVisitPK, GetUseForm form); 223 224 CommandResult<VoidResult> setDefaultUse(UserVisitPK userVisitPK, SetDefaultUseForm form); 225 226 CommandResult<EditUseResult> editUse(UserVisitPK userVisitPK, EditUseForm form); 227 228 CommandResult<VoidResult> deleteUse(UserVisitPK userVisitPK, DeleteUseForm form); 229 230 // ------------------------------------------------------------------------- 231 // Use Descriptions 232 // ------------------------------------------------------------------------- 233 234 CommandResult<VoidResult> createUseDescription(UserVisitPK userVisitPK, CreateUseDescriptionForm form); 235 236 CommandResult<GetUseDescriptionsResult> getUseDescriptions(UserVisitPK userVisitPK, GetUseDescriptionsForm form); 237 238 CommandResult<EditUseDescriptionResult> editUseDescription(UserVisitPK userVisitPK, EditUseDescriptionForm form); 239 240 CommandResult<VoidResult> deleteUseDescription(UserVisitPK userVisitPK, DeleteUseDescriptionForm form); 241 242 // ------------------------------------------------------------------------- 243 // Offer Name Elements 244 // ------------------------------------------------------------------------- 245 246 CommandResult<CreateOfferNameElementResult> createOfferNameElement(UserVisitPK userVisitPK, CreateOfferNameElementForm form); 247 248 CommandResult<GetOfferNameElementsResult> getOfferNameElements(UserVisitPK userVisitPK, GetOfferNameElementsForm form); 249 250 CommandResult<GetOfferNameElementResult> getOfferNameElement(UserVisitPK userVisitPK, GetOfferNameElementForm form); 251 252 CommandResult<EditOfferNameElementResult> editOfferNameElement(UserVisitPK userVisitPK, EditOfferNameElementForm form); 253 254 CommandResult<VoidResult> deleteOfferNameElement(UserVisitPK userVisitPK, DeleteOfferNameElementForm form); 255 256 // ------------------------------------------------------------------------- 257 // Offer Name Element Descriptions 258 // ------------------------------------------------------------------------- 259 260 CommandResult<VoidResult> createOfferNameElementDescription(UserVisitPK userVisitPK, CreateOfferNameElementDescriptionForm form); 261 262 CommandResult<GetOfferNameElementDescriptionsResult> getOfferNameElementDescriptions(UserVisitPK userVisitPK, GetOfferNameElementDescriptionsForm form); 263 264 CommandResult<GetOfferNameElementDescriptionResult> getOfferNameElementDescription(UserVisitPK userVisitPK, GetOfferNameElementDescriptionForm form); 265 266 CommandResult<EditOfferNameElementDescriptionResult> editOfferNameElementDescription(UserVisitPK userVisitPK, EditOfferNameElementDescriptionForm form); 267 268 CommandResult<VoidResult> deleteOfferNameElementDescription(UserVisitPK userVisitPK, DeleteOfferNameElementDescriptionForm form); 269 270}