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.selector.common;
018
019import com.echothree.control.user.selector.common.form.*;
020import com.echothree.control.user.selector.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 SelectorService
026        extends SelectorForms {
027    
028    // --------------------------------------------------------------------------------
029    //   Testing
030    // --------------------------------------------------------------------------------
031    
032    String ping();
033    
034    // --------------------------------------------------------------------------------
035    //   Selector Kinds
036    // --------------------------------------------------------------------------------
037
038    CommandResult<CreateSelectorKindResult> createSelectorKind(UserVisitPK userVisitPK, CreateSelectorKindForm form);
039
040    CommandResult<GetSelectorKindsResult> getSelectorKinds(UserVisitPK userVisitPK, GetSelectorKindsForm form);
041
042    CommandResult<GetSelectorKindResult> getSelectorKind(UserVisitPK userVisitPK, GetSelectorKindForm form);
043
044    CommandResult<GetSelectorKindChoicesResult> getSelectorKindChoices(UserVisitPK userVisitPK, GetSelectorKindChoicesForm form);
045
046    CommandResult<VoidResult> setDefaultSelectorKind(UserVisitPK userVisitPK, SetDefaultSelectorKindForm form);
047
048    CommandResult<EditSelectorKindResult> editSelectorKind(UserVisitPK userVisitPK, EditSelectorKindForm form);
049
050    CommandResult<VoidResult> deleteSelectorKind(UserVisitPK userVisitPK, DeleteSelectorKindForm form);
051
052    // --------------------------------------------------------------------------------
053    //   Selector Kind Descriptions
054    // --------------------------------------------------------------------------------
055
056    CommandResult<VoidResult> createSelectorKindDescription(UserVisitPK userVisitPK, CreateSelectorKindDescriptionForm form);
057
058    CommandResult<GetSelectorKindDescriptionsResult> getSelectorKindDescriptions(UserVisitPK userVisitPK, GetSelectorKindDescriptionsForm form);
059
060    CommandResult<GetSelectorKindDescriptionResult> getSelectorKindDescription(UserVisitPK userVisitPK, GetSelectorKindDescriptionForm form);
061
062    CommandResult<EditSelectorKindDescriptionResult> editSelectorKindDescription(UserVisitPK userVisitPK, EditSelectorKindDescriptionForm form);
063
064    CommandResult<VoidResult> deleteSelectorKindDescription(UserVisitPK userVisitPK, DeleteSelectorKindDescriptionForm form);
065
066    // --------------------------------------------------------------------------------
067    //   Selector Types
068    // --------------------------------------------------------------------------------
069
070    CommandResult<CreateSelectorTypeResult> createSelectorType(UserVisitPK userVisitPK, CreateSelectorTypeForm form);
071
072    CommandResult<GetSelectorTypesResult> getSelectorTypes(UserVisitPK userVisitPK, GetSelectorTypesForm form);
073
074    CommandResult<GetSelectorTypeResult> getSelectorType(UserVisitPK userVisitPK, GetSelectorTypeForm form);
075
076    CommandResult<GetSelectorTypeChoicesResult> getSelectorTypeChoices(UserVisitPK userVisitPK, GetSelectorTypeChoicesForm form);
077
078    CommandResult<VoidResult> setDefaultSelectorType(UserVisitPK userVisitPK, SetDefaultSelectorTypeForm form);
079
080    CommandResult<EditSelectorTypeResult> editSelectorType(UserVisitPK userVisitPK, EditSelectorTypeForm form);
081
082    CommandResult<VoidResult> deleteSelectorType(UserVisitPK userVisitPK, DeleteSelectorTypeForm form);
083
084    // --------------------------------------------------------------------------------
085    //   Selector Type Descriptions
086    // --------------------------------------------------------------------------------
087
088    CommandResult<VoidResult> createSelectorTypeDescription(UserVisitPK userVisitPK, CreateSelectorTypeDescriptionForm form);
089
090    CommandResult<GetSelectorTypeDescriptionsResult> getSelectorTypeDescriptions(UserVisitPK userVisitPK, GetSelectorTypeDescriptionsForm form);
091
092    CommandResult<GetSelectorTypeDescriptionResult> getSelectorTypeDescription(UserVisitPK userVisitPK, GetSelectorTypeDescriptionForm form);
093
094    CommandResult<EditSelectorTypeDescriptionResult> editSelectorTypeDescription(UserVisitPK userVisitPK, EditSelectorTypeDescriptionForm form);
095
096    CommandResult<VoidResult> deleteSelectorTypeDescription(UserVisitPK userVisitPK, DeleteSelectorTypeDescriptionForm form);
097
098    // --------------------------------------------------------------------------------
099    //   Selector Boolean Types
100    // --------------------------------------------------------------------------------
101    
102    CommandResult<VoidResult> createSelectorBooleanType(UserVisitPK userVisitPK, CreateSelectorBooleanTypeForm form);
103    
104    CommandResult<GetSelectorBooleanTypeChoicesResult> getSelectorBooleanTypeChoices(UserVisitPK userVisitPK, GetSelectorBooleanTypeChoicesForm form);
105    
106    // --------------------------------------------------------------------------------
107    //   Selector Boolean Type Descriptions
108    // --------------------------------------------------------------------------------
109    
110    CommandResult<VoidResult> createSelectorBooleanTypeDescription(UserVisitPK userVisitPK, CreateSelectorBooleanTypeDescriptionForm form);
111    
112    // --------------------------------------------------------------------------------
113    //   Selector Comparison Types
114    // --------------------------------------------------------------------------------
115    
116    CommandResult<VoidResult> createSelectorComparisonType(UserVisitPK userVisitPK, CreateSelectorComparisonTypeForm form);
117    
118    CommandResult<GetSelectorComparisonTypeChoicesResult> getSelectorComparisonTypeChoices(UserVisitPK userVisitPK, GetSelectorComparisonTypeChoicesForm form);
119    
120    // --------------------------------------------------------------------------------
121    //   Selector Comparison Type Descriptions
122    // --------------------------------------------------------------------------------
123    
124    CommandResult<VoidResult> createSelectorComparisonTypeDescription(UserVisitPK userVisitPK, CreateSelectorComparisonTypeDescriptionForm form);
125    
126    // --------------------------------------------------------------------------------
127    //   Selector Node Types
128    // --------------------------------------------------------------------------------
129    
130    CommandResult<VoidResult> createSelectorNodeType(UserVisitPK userVisitPK, CreateSelectorNodeTypeForm form);
131    
132    CommandResult<GetSelectorNodeTypeResult> getSelectorNodeType(UserVisitPK userVisitPK, GetSelectorNodeTypeForm form);
133    
134    CommandResult<GetSelectorNodeTypesResult> getSelectorNodeTypes(UserVisitPK userVisitPK, GetSelectorNodeTypesForm form);
135    
136    // --------------------------------------------------------------------------------
137    //   Selector Node Type Descriptions
138    // --------------------------------------------------------------------------------
139    
140    CommandResult<VoidResult> createSelectorNodeTypeDescription(UserVisitPK userVisitPK, CreateSelectorNodeTypeDescriptionForm form);
141    
142    // --------------------------------------------------------------------------------
143    //   Selector Node Type Uses
144    // --------------------------------------------------------------------------------
145    
146    CommandResult<VoidResult> createSelectorNodeTypeUse(UserVisitPK userVisitPK, CreateSelectorNodeTypeUseForm form);
147    
148    // --------------------------------------------------------------------------------
149    //   Selector Text Search Types
150    // --------------------------------------------------------------------------------
151    
152    CommandResult<VoidResult> createSelectorTextSearchType(UserVisitPK userVisitPK, CreateSelectorTextSearchTypeForm form);
153    
154    CommandResult<GetSelectorTextSearchTypeChoicesResult> getSelectorTextSearchTypeChoices(UserVisitPK userVisitPK, GetSelectorTextSearchTypeChoicesForm form);
155    
156    // --------------------------------------------------------------------------------
157    //   Selector Text Search Type Descriptions
158    // --------------------------------------------------------------------------------
159    
160    CommandResult<VoidResult> createSelectorTextSearchTypeDescription(UserVisitPK userVisitPK, CreateSelectorTextSearchTypeDescriptionForm form);
161    
162    // --------------------------------------------------------------------------------
163    //   Selectors
164    // --------------------------------------------------------------------------------
165    
166    CommandResult<CreateSelectorResult> createSelector(UserVisitPK userVisitPK, CreateSelectorForm form);
167    
168    CommandResult<GetSelectorChoicesResult> getSelectorChoices(UserVisitPK userVisitPK, GetSelectorChoicesForm form);
169    
170    CommandResult<GetSelectorsResult> getSelectors(UserVisitPK userVisitPK, GetSelectorsForm form);
171    
172    CommandResult<GetSelectorResult> getSelector(UserVisitPK userVisitPK, GetSelectorForm form);
173    
174    CommandResult<VoidResult> setDefaultSelector(UserVisitPK userVisitPK, SetDefaultSelectorForm form);
175    
176    CommandResult<EditSelectorResult> editSelector(UserVisitPK userVisitPK, EditSelectorForm form);
177    
178    CommandResult<VoidResult> deleteSelector(UserVisitPK userVisitPK, DeleteSelectorForm form);
179    
180    // --------------------------------------------------------------------------------
181    //   Selector Descriptions
182    // --------------------------------------------------------------------------------
183    
184    CommandResult<VoidResult> createSelectorDescription(UserVisitPK userVisitPK, CreateSelectorDescriptionForm form);
185    
186    CommandResult<GetSelectorDescriptionsResult> getSelectorDescriptions(UserVisitPK userVisitPK, GetSelectorDescriptionsForm form);
187    
188    CommandResult<EditSelectorDescriptionResult> editSelectorDescription(UserVisitPK userVisitPK, EditSelectorDescriptionForm form);
189    
190    CommandResult<VoidResult> deleteSelectorDescription(UserVisitPK userVisitPK, DeleteSelectorDescriptionForm form);
191    
192    // --------------------------------------------------------------------------------
193    //   Selector Nodes
194    // --------------------------------------------------------------------------------
195    
196    CommandResult<VoidResult> createSelectorNode(UserVisitPK userVisitPK, CreateSelectorNodeForm form);
197    
198    CommandResult<GetSelectorNodeChoicesResult> getSelectorNodeChoices(UserVisitPK userVisitPK, GetSelectorNodeChoicesForm form);
199    
200    CommandResult<GetSelectorNodeResult> getSelectorNode(UserVisitPK userVisitPK, GetSelectorNodeForm form);
201    
202    CommandResult<GetSelectorNodesResult> getSelectorNodes(UserVisitPK userVisitPK, GetSelectorNodesForm form);
203    
204    CommandResult<VoidResult> setRootSelectorNode(UserVisitPK userVisitPK, SetRootSelectorNodeForm form);
205    
206    CommandResult<VoidResult> deleteSelectorNode(UserVisitPK userVisitPK, DeleteSelectorNodeForm form);
207    
208    // --------------------------------------------------------------------------------
209    //   Selector Node Descriptions
210    // --------------------------------------------------------------------------------
211    
212    CommandResult<VoidResult> createSelectorNodeDescription(UserVisitPK userVisitPK, CreateSelectorNodeDescriptionForm form);
213    
214    CommandResult<GetSelectorNodeDescriptionsResult> getSelectorNodeDescriptions(UserVisitPK userVisitPK, GetSelectorNodeDescriptionsForm form);
215    
216    CommandResult<EditSelectorNodeDescriptionResult> editSelectorNodeDescription(UserVisitPK userVisitPK, EditSelectorNodeDescriptionForm form);
217    
218    CommandResult<VoidResult> deleteSelectorNodeDescription(UserVisitPK userVisitPK, DeleteSelectorNodeDescriptionForm form);
219    
220    // --------------------------------------------------------------------------------
221    //   Selector Parties
222    // --------------------------------------------------------------------------------
223    
224    CommandResult<GetSelectorPartiesResult> getSelectorParties(UserVisitPK userVisitPK, GetSelectorPartiesForm form);
225    
226    // -------------------------------------------------------------------------
227    //   Utilities
228    // -------------------------------------------------------------------------
229    
230    CommandResult<EvaluateSelectorsResult> evaluateSelectors(UserVisitPK userVisitPK, EvaluateSelectorsForm form);
231    
232}