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}