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.workflow.common;
018
019import com.echothree.control.user.workflow.common.form.*;
020import com.echothree.control.user.workflow.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 WorkflowService
026        extends WorkflowForms {
027    
028    // -------------------------------------------------------------------------
029    //   Testing
030    // -------------------------------------------------------------------------
031    
032    String ping();
033    
034    // --------------------------------------------------------------------------------
035    //   Workflow Step Types
036    // --------------------------------------------------------------------------------
037    
038    CommandResult<VoidResult> createWorkflowStepType(UserVisitPK userVisitPK, CreateWorkflowStepTypeForm form);
039
040    CommandResult<GetWorkflowStepTypeResult> getWorkflowStepType(UserVisitPK userVisitPK, GetWorkflowStepTypeForm form);
041
042    CommandResult<GetWorkflowStepTypesResult> getWorkflowStepTypes(UserVisitPK userVisitPK, GetWorkflowStepTypesForm form);
043
044    CommandResult<GetWorkflowStepTypeChoicesResult> getWorkflowStepTypeChoices(UserVisitPK userVisitPK, GetWorkflowStepTypeChoicesForm form);
045    
046    // --------------------------------------------------------------------------------
047    //   Workflow Step Type Descriptions
048    // --------------------------------------------------------------------------------
049    
050    CommandResult<VoidResult> createWorkflowStepTypeDescription(UserVisitPK userVisitPK, CreateWorkflowStepTypeDescriptionForm form);
051    
052    // --------------------------------------------------------------------------------
053    //   Workflows
054    // --------------------------------------------------------------------------------
055    
056    CommandResult<CreateWorkflowResult> createWorkflow(UserVisitPK userVisitPK, CreateWorkflowForm form);
057    
058    CommandResult<GetWorkflowResult> getWorkflow(UserVisitPK userVisitPK, GetWorkflowForm form);
059    
060    CommandResult<GetWorkflowsResult> getWorkflows(UserVisitPK userVisitPK, GetWorkflowsForm form);
061
062    CommandResult<GetWorkflowChoicesResult> getWorkflowChoices(UserVisitPK userVisitPK, GetWorkflowChoicesForm form);
063    
064    CommandResult<EditWorkflowResult> editWorkflow(UserVisitPK userVisitPK, EditWorkflowForm form);
065    
066    CommandResult<VoidResult> deleteWorkflow(UserVisitPK userVisitPK, DeleteWorkflowForm form);
067    
068    // --------------------------------------------------------------------------------
069    //   Workflow Descriptions
070    // --------------------------------------------------------------------------------
071    
072    CommandResult<VoidResult> createWorkflowDescription(UserVisitPK userVisitPK, CreateWorkflowDescriptionForm form);
073    
074    CommandResult<GetWorkflowDescriptionResult> getWorkflowDescription(UserVisitPK userVisitPK, GetWorkflowDescriptionForm form);
075    
076    CommandResult<GetWorkflowDescriptionsResult> getWorkflowDescriptions(UserVisitPK userVisitPK, GetWorkflowDescriptionsForm form);
077    
078    CommandResult<EditWorkflowDescriptionResult> editWorkflowDescription(UserVisitPK userVisitPK, EditWorkflowDescriptionForm form);
079    
080    CommandResult<VoidResult> deleteWorkflowDescription(UserVisitPK userVisitPK, DeleteWorkflowDescriptionForm form);
081    
082    // --------------------------------------------------------------------------------
083    //   Workflow Steps
084    // --------------------------------------------------------------------------------
085    
086    CommandResult<CreateWorkflowStepResult> createWorkflowStep(UserVisitPK userVisitPK, CreateWorkflowStepForm form);
087    
088    CommandResult<GetWorkflowStepResult> getWorkflowStep(UserVisitPK userVisitPK, GetWorkflowStepForm form);
089    
090    CommandResult<GetWorkflowStepsResult> getWorkflowSteps(UserVisitPK userVisitPK, GetWorkflowStepsForm form);
091    
092    CommandResult<GetWorkflowStepChoicesResult> getWorkflowStepChoices(UserVisitPK userVisitPK, GetWorkflowStepChoicesForm form);
093    
094    CommandResult<EditWorkflowStepResult> editWorkflowStep(UserVisitPK userVisitPK, EditWorkflowStepForm form);
095    
096    CommandResult<VoidResult> setDefaultWorkflowStep(UserVisitPK userVisitPK, SetDefaultWorkflowStepForm form);
097    
098    CommandResult<VoidResult> deleteWorkflowStep(UserVisitPK userVisitPK, DeleteWorkflowStepForm form);
099    
100    // --------------------------------------------------------------------------------
101    //   Workflow Step Description
102    // --------------------------------------------------------------------------------
103    
104    CommandResult<VoidResult> createWorkflowStepDescription(UserVisitPK userVisitPK, CreateWorkflowStepDescriptionForm form);
105    
106    CommandResult<GetWorkflowStepDescriptionResult> getWorkflowStepDescription(UserVisitPK userVisitPK, GetWorkflowStepDescriptionForm form);
107    
108    CommandResult<GetWorkflowStepDescriptionsResult> getWorkflowStepDescriptions(UserVisitPK userVisitPK, GetWorkflowStepDescriptionsForm form);
109    
110    CommandResult<EditWorkflowStepDescriptionResult> editWorkflowStepDescription(UserVisitPK userVisitPK, EditWorkflowStepDescriptionForm form);
111    
112    CommandResult<VoidResult> deleteWorkflowStepDescription(UserVisitPK userVisitPK, DeleteWorkflowStepDescriptionForm form);
113    
114    // --------------------------------------------------------------------------------
115    //   Workflow Destinations
116    // --------------------------------------------------------------------------------
117    
118    CommandResult<CreateWorkflowDestinationResult> createWorkflowDestination(UserVisitPK userVisitPK, CreateWorkflowDestinationForm form);
119    
120    CommandResult<GetWorkflowDestinationResult> getWorkflowDestination(UserVisitPK userVisitPK, GetWorkflowDestinationForm form);
121    
122    CommandResult<GetWorkflowDestinationsResult> getWorkflowDestinations(UserVisitPK userVisitPK, GetWorkflowDestinationsForm form);
123    
124    CommandResult<EditWorkflowDestinationResult> editWorkflowDestination(UserVisitPK userVisitPK, EditWorkflowDestinationForm form);
125    
126    CommandResult<VoidResult> setDefaultWorkflowDestination(UserVisitPK userVisitPK, SetDefaultWorkflowDestinationForm form);
127    
128    CommandResult<VoidResult> deleteWorkflowDestination(UserVisitPK userVisitPK, DeleteWorkflowDestinationForm form);
129    
130    // --------------------------------------------------------------------------------
131    //   Workflow Destination Descriptions
132    // --------------------------------------------------------------------------------
133    
134    CommandResult<VoidResult> createWorkflowDestinationDescription(UserVisitPK userVisitPK, CreateWorkflowDestinationDescriptionForm form);
135    
136    CommandResult<GetWorkflowDestinationDescriptionResult> getWorkflowDestinationDescription(UserVisitPK userVisitPK, GetWorkflowDestinationDescriptionForm form);
137    
138    CommandResult<GetWorkflowDestinationDescriptionsResult> getWorkflowDestinationDescriptions(UserVisitPK userVisitPK, GetWorkflowDestinationDescriptionsForm form);
139    
140    CommandResult<EditWorkflowDestinationDescriptionResult> editWorkflowDestinationDescription(UserVisitPK userVisitPK, EditWorkflowDestinationDescriptionForm form);
141    
142    CommandResult<VoidResult> deleteWorkflowDestinationDescription(UserVisitPK userVisitPK, DeleteWorkflowDestinationDescriptionForm form);
143    
144    // --------------------------------------------------------------------------------
145    //   Workflow Destination Steps
146    // --------------------------------------------------------------------------------
147    
148    CommandResult<VoidResult> createWorkflowDestinationStep(UserVisitPK userVisitPK, CreateWorkflowDestinationStepForm form);
149    
150    CommandResult<GetWorkflowDestinationStepResult> getWorkflowDestinationStep(UserVisitPK userVisitPK, GetWorkflowDestinationStepForm form);
151    
152    CommandResult<GetWorkflowDestinationStepsResult> getWorkflowDestinationSteps(UserVisitPK userVisitPK, GetWorkflowDestinationStepsForm form);
153    
154    CommandResult<VoidResult> deleteWorkflowDestinationStep(UserVisitPK userVisitPK, DeleteWorkflowDestinationStepForm form);
155    
156    // --------------------------------------------------------------------------------
157    //   Workflow Destination Selectors
158    // --------------------------------------------------------------------------------
159    
160    CommandResult<VoidResult> createWorkflowDestinationSelector(UserVisitPK userVisitPK, CreateWorkflowDestinationSelectorForm form);
161    
162    CommandResult<GetWorkflowDestinationSelectorResult> getWorkflowDestinationSelector(UserVisitPK userVisitPK, GetWorkflowDestinationSelectorForm form);
163    
164    CommandResult<GetWorkflowDestinationSelectorsResult> getWorkflowDestinationSelectors(UserVisitPK userVisitPK, GetWorkflowDestinationSelectorsForm form);
165    
166    CommandResult<VoidResult> deleteWorkflowDestinationSelector(UserVisitPK userVisitPK, DeleteWorkflowDestinationSelectorForm form);
167    
168    // --------------------------------------------------------------------------------
169    //   Workflow Destination Party Types
170    // --------------------------------------------------------------------------------
171    
172    CommandResult<VoidResult> createWorkflowDestinationPartyType(UserVisitPK userVisitPK, CreateWorkflowDestinationPartyTypeForm form);
173    
174    CommandResult<GetWorkflowDestinationPartyTypeResult> getWorkflowDestinationPartyType(UserVisitPK userVisitPK, GetWorkflowDestinationPartyTypeForm form);
175    
176    CommandResult<GetWorkflowDestinationPartyTypesResult> getWorkflowDestinationPartyTypes(UserVisitPK userVisitPK, GetWorkflowDestinationPartyTypesForm form);
177    
178    CommandResult<VoidResult> deleteWorkflowDestinationPartyType(UserVisitPK userVisitPK, DeleteWorkflowDestinationPartyTypeForm form);
179    
180    // --------------------------------------------------------------------------------
181    //   Workflow Destination Security Roles
182    // --------------------------------------------------------------------------------
183    
184    CommandResult<VoidResult> createWorkflowDestinationSecurityRole(UserVisitPK userVisitPK, CreateWorkflowDestinationSecurityRoleForm form);
185    
186    CommandResult<GetWorkflowDestinationSecurityRoleResult> getWorkflowDestinationSecurityRole(UserVisitPK userVisitPK, GetWorkflowDestinationSecurityRoleForm form);
187    
188    CommandResult<GetWorkflowDestinationSecurityRolesResult> getWorkflowDestinationSecurityRoles(UserVisitPK userVisitPK, GetWorkflowDestinationSecurityRolesForm form);
189    
190    CommandResult<VoidResult> deleteWorkflowDestinationSecurityRole(UserVisitPK userVisitPK, DeleteWorkflowDestinationSecurityRoleForm form);
191    
192    // --------------------------------------------------------------------------------
193    //   Workflow Entity Types
194    // --------------------------------------------------------------------------------
195    
196    CommandResult<VoidResult> createWorkflowEntityType(UserVisitPK userVisitPK, CreateWorkflowEntityTypeForm form);
197
198    CommandResult<GetWorkflowEntityTypeResult> getWorkflowEntityType(UserVisitPK userVisitPK, GetWorkflowEntityTypeForm form);
199
200    CommandResult<GetWorkflowEntityTypesResult> getWorkflowEntityTypes(UserVisitPK userVisitPK, GetWorkflowEntityTypesForm form);
201    
202    CommandResult<VoidResult> deleteWorkflowEntityType(UserVisitPK userVisitPK, DeleteWorkflowEntityTypeForm form);
203
204    // --------------------------------------------------------------------------------
205    //   Workflow Entrances
206    // --------------------------------------------------------------------------------
207    
208    CommandResult<CreateWorkflowEntranceResult> createWorkflowEntrance(UserVisitPK userVisitPK, CreateWorkflowEntranceForm form);
209    
210    CommandResult<GetWorkflowEntranceResult> getWorkflowEntrance(UserVisitPK userVisitPK, GetWorkflowEntranceForm form);
211    
212    CommandResult<GetWorkflowEntrancesResult> getWorkflowEntrances(UserVisitPK userVisitPK, GetWorkflowEntrancesForm form);
213    
214    CommandResult<EditWorkflowEntranceResult> editWorkflowEntrance(UserVisitPK userVisitPK, EditWorkflowEntranceForm form);
215    
216    CommandResult<VoidResult> setDefaultWorkflowEntrance(UserVisitPK userVisitPK, SetDefaultWorkflowEntranceForm form);
217    
218    CommandResult<VoidResult> deleteWorkflowEntrance(UserVisitPK userVisitPK, DeleteWorkflowEntranceForm form);
219    
220    // --------------------------------------------------------------------------------
221    //   Workflow Entrance Descriptions
222    // --------------------------------------------------------------------------------
223    
224    CommandResult<VoidResult> createWorkflowEntranceDescription(UserVisitPK userVisitPK, CreateWorkflowEntranceDescriptionForm form);
225    
226    CommandResult<GetWorkflowEntranceDescriptionResult> getWorkflowEntranceDescription(UserVisitPK userVisitPK, GetWorkflowEntranceDescriptionForm form);
227    
228    CommandResult<GetWorkflowEntranceDescriptionsResult> getWorkflowEntranceDescriptions(UserVisitPK userVisitPK, GetWorkflowEntranceDescriptionsForm form);
229    
230    CommandResult<EditWorkflowEntranceDescriptionResult> editWorkflowEntranceDescription(UserVisitPK userVisitPK, EditWorkflowEntranceDescriptionForm form);
231    
232    CommandResult<VoidResult> deleteWorkflowEntranceDescription(UserVisitPK userVisitPK, DeleteWorkflowEntranceDescriptionForm form);
233    
234    // --------------------------------------------------------------------------------
235    //   Workflow Entrance Steps
236    // --------------------------------------------------------------------------------
237    
238    CommandResult<VoidResult> createWorkflowEntranceStep(UserVisitPK userVisitPK, CreateWorkflowEntranceStepForm form);
239    
240    CommandResult<GetWorkflowEntranceStepResult> getWorkflowEntranceStep(UserVisitPK userVisitPK, GetWorkflowEntranceStepForm form);
241    
242    CommandResult<GetWorkflowEntranceStepsResult> getWorkflowEntranceSteps(UserVisitPK userVisitPK, GetWorkflowEntranceStepsForm form);
243    
244    CommandResult<VoidResult> deleteWorkflowEntranceStep(UserVisitPK userVisitPK, DeleteWorkflowEntranceStepForm form);
245    
246    // --------------------------------------------------------------------------------
247    //   Workflow Entrance Selectors
248    // --------------------------------------------------------------------------------
249    
250    CommandResult<VoidResult> createWorkflowEntranceSelector(UserVisitPK userVisitPK, CreateWorkflowEntranceSelectorForm form);
251    
252    CommandResult<GetWorkflowEntranceSelectorResult> getWorkflowEntranceSelector(UserVisitPK userVisitPK, GetWorkflowEntranceSelectorForm form);
253    
254    CommandResult<GetWorkflowEntranceSelectorsResult> getWorkflowEntranceSelectors(UserVisitPK userVisitPK, GetWorkflowEntranceSelectorsForm form);
255    
256    CommandResult<VoidResult> deleteWorkflowEntranceSelector(UserVisitPK userVisitPK, DeleteWorkflowEntranceSelectorForm form);
257    
258    // --------------------------------------------------------------------------------
259    //   Workflow Entrance Party Types
260    // --------------------------------------------------------------------------------
261    
262    CommandResult<VoidResult> createWorkflowEntrancePartyType(UserVisitPK userVisitPK, CreateWorkflowEntrancePartyTypeForm form);
263    
264    CommandResult<GetWorkflowEntrancePartyTypeResult> getWorkflowEntrancePartyType(UserVisitPK userVisitPK, GetWorkflowEntrancePartyTypeForm form);
265    
266    CommandResult<GetWorkflowEntrancePartyTypesResult> getWorkflowEntrancePartyTypes(UserVisitPK userVisitPK, GetWorkflowEntrancePartyTypesForm form);
267    
268    CommandResult<VoidResult> deleteWorkflowEntrancePartyType(UserVisitPK userVisitPK, DeleteWorkflowEntrancePartyTypeForm form);
269    
270    // --------------------------------------------------------------------------------
271    //   Workflow Entrance Security Roles
272    // --------------------------------------------------------------------------------
273    
274    CommandResult<VoidResult> createWorkflowEntranceSecurityRole(UserVisitPK userVisitPK, CreateWorkflowEntranceSecurityRoleForm form);
275    
276    CommandResult<GetWorkflowEntranceSecurityRoleResult> getWorkflowEntranceSecurityRole(UserVisitPK userVisitPK, GetWorkflowEntranceSecurityRoleForm form);
277    
278    CommandResult<GetWorkflowEntranceSecurityRolesResult> getWorkflowEntranceSecurityRoles(UserVisitPK userVisitPK, GetWorkflowEntranceSecurityRolesForm form);
279    
280    CommandResult<VoidResult> deleteWorkflowEntranceSecurityRole(UserVisitPK userVisitPK, DeleteWorkflowEntranceSecurityRoleForm form);
281    
282    // --------------------------------------------------------------------------------
283    //   Workflow Selector Kinds
284    // --------------------------------------------------------------------------------
285    
286    CommandResult<VoidResult> createWorkflowSelectorKind(UserVisitPK userVisitPK, CreateWorkflowSelectorKindForm form);
287    
288    CommandResult<GetWorkflowSelectorKindResult> getWorkflowSelectorKind(UserVisitPK userVisitPK, GetWorkflowSelectorKindForm form);
289    
290    CommandResult<GetWorkflowSelectorKindsResult> getWorkflowSelectorKinds(UserVisitPK userVisitPK, GetWorkflowSelectorKindsForm form);
291    
292    CommandResult<VoidResult> deleteWorkflowSelectorKind(UserVisitPK userVisitPK, DeleteWorkflowSelectorKindForm form);
293    
294    // --------------------------------------------------------------------------------
295    //   Workflow Entity Statuses
296    // --------------------------------------------------------------------------------
297    
298    CommandResult<GetWorkflowEntityStatusesResult> getWorkflowEntityStatuses(UserVisitPK userVisitPK, GetWorkflowEntityStatusesForm form);
299    
300    // --------------------------------------------------------------------------------
301    //   Workflow Triggers
302    // --------------------------------------------------------------------------------
303    
304    CommandResult<VoidResult> processWorkflowTriggers(UserVisitPK userVisitPK);
305    
306}