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.contactlist.common;
018
019import com.echothree.control.user.contactlist.common.form.*;
020import com.echothree.control.user.contactlist.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 ContactListService
026        extends ContactListForms {
027    
028    // -------------------------------------------------------------------------
029    //   Testing
030    // -------------------------------------------------------------------------
031    
032    String ping();
033    
034    // -------------------------------------------------------------------------
035    //   Contact List Types
036    // -------------------------------------------------------------------------
037
038    CommandResult<VoidResult> createContactListType(UserVisitPK userVisitPK, CreateContactListTypeForm form);
039
040    CommandResult<GetContactListTypesResult> getContactListTypes(UserVisitPK userVisitPK, GetContactListTypesForm form);
041
042    CommandResult<GetContactListTypeResult> getContactListType(UserVisitPK userVisitPK, GetContactListTypeForm form);
043
044    CommandResult<GetContactListTypeChoicesResult> getContactListTypeChoices(UserVisitPK userVisitPK, GetContactListTypeChoicesForm form);
045
046    CommandResult<VoidResult> setDefaultContactListType(UserVisitPK userVisitPK, SetDefaultContactListTypeForm form);
047
048    CommandResult<EditContactListTypeResult> editContactListType(UserVisitPK userVisitPK, EditContactListTypeForm form);
049
050    CommandResult<VoidResult> deleteContactListType(UserVisitPK userVisitPK, DeleteContactListTypeForm form);
051
052    // -------------------------------------------------------------------------
053    //   Contact List Type Descriptions
054    // -------------------------------------------------------------------------
055
056    CommandResult<VoidResult> createContactListTypeDescription(UserVisitPK userVisitPK, CreateContactListTypeDescriptionForm form);
057
058    CommandResult<GetContactListTypeDescriptionsResult> getContactListTypeDescriptions(UserVisitPK userVisitPK, GetContactListTypeDescriptionsForm form);
059
060    CommandResult<GetContactListTypeDescriptionResult> getContactListTypeDescription(UserVisitPK userVisitPK, GetContactListTypeDescriptionForm form);
061
062    CommandResult<EditContactListTypeDescriptionResult> editContactListTypeDescription(UserVisitPK userVisitPK, EditContactListTypeDescriptionForm form);
063
064    CommandResult<VoidResult> deleteContactListTypeDescription(UserVisitPK userVisitPK, DeleteContactListTypeDescriptionForm form);
065
066    // --------------------------------------------------------------------------------
067    //   Contact List Groups
068    // --------------------------------------------------------------------------------
069
070    CommandResult<VoidResult> createContactListGroup(UserVisitPK userVisitPK, CreateContactListGroupForm form);
071
072    CommandResult<GetContactListGroupsResult> getContactListGroups(UserVisitPK userVisitPK, GetContactListGroupsForm form);
073
074    CommandResult<GetContactListGroupResult> getContactListGroup(UserVisitPK userVisitPK, GetContactListGroupForm form);
075
076    CommandResult<GetContactListGroupChoicesResult> getContactListGroupChoices(UserVisitPK userVisitPK, GetContactListGroupChoicesForm form);
077
078    CommandResult<VoidResult> setDefaultContactListGroup(UserVisitPK userVisitPK, SetDefaultContactListGroupForm form);
079
080    CommandResult<EditContactListGroupResult> editContactListGroup(UserVisitPK userVisitPK, EditContactListGroupForm form);
081
082    CommandResult<VoidResult> deleteContactListGroup(UserVisitPK userVisitPK, DeleteContactListGroupForm form);
083
084    // --------------------------------------------------------------------------------
085    //   Contact List Group Descriptions
086    // --------------------------------------------------------------------------------
087
088    CommandResult<VoidResult> createContactListGroupDescription(UserVisitPK userVisitPK, CreateContactListGroupDescriptionForm form);
089
090    CommandResult<GetContactListGroupDescriptionsResult> getContactListGroupDescriptions(UserVisitPK userVisitPK, GetContactListGroupDescriptionsForm form);
091
092    CommandResult<GetContactListGroupDescriptionResult> getContactListGroupDescription(UserVisitPK userVisitPK, GetContactListGroupDescriptionForm form);
093
094    CommandResult<EditContactListGroupDescriptionResult> editContactListGroupDescription(UserVisitPK userVisitPK, EditContactListGroupDescriptionForm form);
095
096    CommandResult<VoidResult> deleteContactListGroupDescription(UserVisitPK userVisitPK, DeleteContactListGroupDescriptionForm form);
097
098    // --------------------------------------------------------------------------------
099    //   Contact List Frequencies
100    // --------------------------------------------------------------------------------
101
102    CommandResult<VoidResult> createContactListFrequency(UserVisitPK userVisitPK, CreateContactListFrequencyForm form);
103
104    CommandResult<GetContactListFrequenciesResult> getContactListFrequencies(UserVisitPK userVisitPK, GetContactListFrequenciesForm form);
105
106    CommandResult<GetContactListFrequencyResult> getContactListFrequency(UserVisitPK userVisitPK, GetContactListFrequencyForm form);
107
108    CommandResult<GetContactListFrequencyChoicesResult> getContactListFrequencyChoices(UserVisitPK userVisitPK, GetContactListFrequencyChoicesForm form);
109
110    CommandResult<VoidResult> setDefaultContactListFrequency(UserVisitPK userVisitPK, SetDefaultContactListFrequencyForm form);
111
112    CommandResult<EditContactListFrequencyResult> editContactListFrequency(UserVisitPK userVisitPK, EditContactListFrequencyForm form);
113
114    CommandResult<VoidResult> deleteContactListFrequency(UserVisitPK userVisitPK, DeleteContactListFrequencyForm form);
115
116    // --------------------------------------------------------------------------------
117    //   Contact List Frequency Descriptions
118    // --------------------------------------------------------------------------------
119
120    CommandResult<VoidResult> createContactListFrequencyDescription(UserVisitPK userVisitPK, CreateContactListFrequencyDescriptionForm form);
121
122    CommandResult<GetContactListFrequencyDescriptionsResult> getContactListFrequencyDescriptions(UserVisitPK userVisitPK, GetContactListFrequencyDescriptionsForm form);
123
124    CommandResult<GetContactListFrequencyDescriptionResult> getContactListFrequencyDescription(UserVisitPK userVisitPK, GetContactListFrequencyDescriptionForm form);
125
126    CommandResult<EditContactListFrequencyDescriptionResult> editContactListFrequencyDescription(UserVisitPK userVisitPK, EditContactListFrequencyDescriptionForm form);
127
128    CommandResult<VoidResult> deleteContactListFrequencyDescription(UserVisitPK userVisitPK, DeleteContactListFrequencyDescriptionForm form);
129
130    // --------------------------------------------------------------------------------
131    //   Contact Lists
132    // --------------------------------------------------------------------------------
133
134    CommandResult<VoidResult> createContactList(UserVisitPK userVisitPK, CreateContactListForm form);
135
136    CommandResult<GetContactListsResult> getContactLists(UserVisitPK userVisitPK, GetContactListsForm form);
137
138    CommandResult<GetContactListResult> getContactList(UserVisitPK userVisitPK, GetContactListForm form);
139
140    CommandResult<GetContactListChoicesResult> getContactListChoices(UserVisitPK userVisitPK, GetContactListChoicesForm form);
141
142    CommandResult<VoidResult> setDefaultContactList(UserVisitPK userVisitPK, SetDefaultContactListForm form);
143
144    CommandResult<EditContactListResult> editContactList(UserVisitPK userVisitPK, EditContactListForm form);
145
146    CommandResult<VoidResult> deleteContactList(UserVisitPK userVisitPK, DeleteContactListForm form);
147
148    // --------------------------------------------------------------------------------
149    //   Contact List Descriptions
150    // --------------------------------------------------------------------------------
151
152    CommandResult<VoidResult> createContactListDescription(UserVisitPK userVisitPK, CreateContactListDescriptionForm form);
153
154    CommandResult<GetContactListDescriptionsResult> getContactListDescriptions(UserVisitPK userVisitPK, GetContactListDescriptionsForm form);
155
156    CommandResult<GetContactListDescriptionResult> getContactListDescription(UserVisitPK userVisitPK, GetContactListDescriptionForm form);
157
158    CommandResult<EditContactListDescriptionResult> editContactListDescription(UserVisitPK userVisitPK, EditContactListDescriptionForm form);
159
160    CommandResult<VoidResult> deleteContactListDescription(UserVisitPK userVisitPK, DeleteContactListDescriptionForm form);
161
162    // --------------------------------------------------------------------------------
163    //   Party Type Contact Lists
164    // --------------------------------------------------------------------------------
165    
166    CommandResult<VoidResult> createPartyTypeContactList(UserVisitPK userVisitPK, CreatePartyTypeContactListForm form);
167    
168    CommandResult<GetPartyTypeContactListsResult> getPartyTypeContactLists(UserVisitPK userVisitPK, GetPartyTypeContactListsForm form);
169
170    CommandResult<GetPartyTypeContactListResult> getPartyTypeContactList(UserVisitPK userVisitPK, GetPartyTypeContactListForm form);
171
172    CommandResult<EditPartyTypeContactListResult> editPartyTypeContactList(UserVisitPK userVisitPK, EditPartyTypeContactListForm form);
173    
174    CommandResult<VoidResult> deletePartyTypeContactList(UserVisitPK userVisitPK, DeletePartyTypeContactListForm form);
175    
176    // --------------------------------------------------------------------------------
177    //   Party Type Contact List Groups
178    // --------------------------------------------------------------------------------
179    
180    CommandResult<VoidResult> createPartyTypeContactListGroup(UserVisitPK userVisitPK, CreatePartyTypeContactListGroupForm form);
181    
182    CommandResult<GetPartyTypeContactListGroupsResult> getPartyTypeContactListGroups(UserVisitPK userVisitPK, GetPartyTypeContactListGroupsForm form);
183
184    CommandResult<GetPartyTypeContactListGroupResult> getPartyTypeContactListGroup(UserVisitPK userVisitPK, GetPartyTypeContactListGroupForm form);
185
186    CommandResult<EditPartyTypeContactListGroupResult> editPartyTypeContactListGroup(UserVisitPK userVisitPK, EditPartyTypeContactListGroupForm form);
187    
188    CommandResult<VoidResult> deletePartyTypeContactListGroup(UserVisitPK userVisitPK, DeletePartyTypeContactListGroupForm form);
189    
190    // --------------------------------------------------------------------------------
191    //   Customer Type Contact Lists
192    // --------------------------------------------------------------------------------
193
194    CommandResult<VoidResult> createCustomerTypeContactList(UserVisitPK userVisitPK, CreateCustomerTypeContactListForm form);
195
196    CommandResult<GetCustomerTypeContactListsResult> getCustomerTypeContactLists(UserVisitPK userVisitPK, GetCustomerTypeContactListsForm form);
197
198    CommandResult<GetCustomerTypeContactListResult> getCustomerTypeContactList(UserVisitPK userVisitPK, GetCustomerTypeContactListForm form);
199
200    CommandResult<EditCustomerTypeContactListResult> editCustomerTypeContactList(UserVisitPK userVisitPK, EditCustomerTypeContactListForm form);
201
202    CommandResult<VoidResult> deleteCustomerTypeContactList(UserVisitPK userVisitPK, DeleteCustomerTypeContactListForm form);
203
204    // --------------------------------------------------------------------------------
205    //   Customer Type Contact List Groups
206    // --------------------------------------------------------------------------------
207
208    CommandResult<VoidResult> createCustomerTypeContactListGroup(UserVisitPK userVisitPK, CreateCustomerTypeContactListGroupForm form);
209
210    CommandResult<GetCustomerTypeContactListGroupsResult> getCustomerTypeContactListGroups(UserVisitPK userVisitPK, GetCustomerTypeContactListGroupsForm form);
211
212    CommandResult<GetCustomerTypeContactListGroupResult> getCustomerTypeContactListGroup(UserVisitPK userVisitPK, GetCustomerTypeContactListGroupForm form);
213
214    CommandResult<EditCustomerTypeContactListGroupResult> editCustomerTypeContactListGroup(UserVisitPK userVisitPK, EditCustomerTypeContactListGroupForm form);
215
216    CommandResult<VoidResult> deleteCustomerTypeContactListGroup(UserVisitPK userVisitPK, DeleteCustomerTypeContactListGroupForm form);
217
218    // --------------------------------------------------------------------------------
219    //   Contact List Contact Mechanism Purposes
220    // --------------------------------------------------------------------------------
221    
222    CommandResult<VoidResult> createContactListContactMechanismPurpose(UserVisitPK userVisitPK, CreateContactListContactMechanismPurposeForm form);
223    
224    CommandResult<GetContactListContactMechanismPurposeChoicesResult> getContactListContactMechanismPurposeChoices(UserVisitPK userVisitPK, GetContactListContactMechanismPurposeChoicesForm form);
225    
226    CommandResult<GetContactListContactMechanismPurposeResult> getContactListContactMechanismPurpose(UserVisitPK userVisitPK, GetContactListContactMechanismPurposeForm form);
227    
228    CommandResult<GetContactListContactMechanismPurposesResult> getContactListContactMechanismPurposes(UserVisitPK userVisitPK, GetContactListContactMechanismPurposesForm form);
229    
230    CommandResult<VoidResult> setDefaultContactListContactMechanismPurpose(UserVisitPK userVisitPK, SetDefaultContactListContactMechanismPurposeForm form);
231    
232    CommandResult<EditContactListContactMechanismPurposeResult> editContactListContactMechanismPurpose(UserVisitPK userVisitPK, EditContactListContactMechanismPurposeForm form);
233    
234    CommandResult<VoidResult> deleteContactListContactMechanismPurpose(UserVisitPK userVisitPK, DeleteContactListContactMechanismPurposeForm form);
235    
236    // --------------------------------------------------------------------------------
237    //   Party Contact Lists
238    // --------------------------------------------------------------------------------
239    
240    CommandResult<VoidResult> createPartyContactList(UserVisitPK userVisitPK, CreatePartyContactListForm form);
241
242    CommandResult<GetPartyContactListsResult> getPartyContactLists(UserVisitPK userVisitPK, GetPartyContactListsForm form);
243
244    CommandResult<GetPartyContactListResult> getPartyContactList(UserVisitPK userVisitPK, GetPartyContactListForm form);
245
246    CommandResult<GetPartyContactListStatusChoicesResult> getPartyContactListStatusChoices(UserVisitPK userVisitPK, GetPartyContactListStatusChoicesForm form);
247
248    CommandResult<VoidResult> setPartyContactListStatus(UserVisitPK userVisitPK, SetPartyContactListStatusForm form);
249
250    CommandResult<EditPartyContactListResult> editPartyContactList(UserVisitPK userVisitPK, EditPartyContactListForm form);
251    
252    CommandResult<VoidResult> deletePartyContactList(UserVisitPK userVisitPK, DeletePartyContactListForm form);
253    
254}