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.training.common;
018
019import com.echothree.control.user.training.common.form.*;
020import com.echothree.control.user.training.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 TrainingService
026        extends TrainingForms {
027    
028    // -------------------------------------------------------------------------
029    //   Training Classes
030    // -------------------------------------------------------------------------
031    
032    CommandResult<CreateTrainingClassResult> createTrainingClass(UserVisitPK userVisitPK, CreateTrainingClassForm form);
033    
034    CommandResult<GetTrainingClassesResult> getTrainingClasses(UserVisitPK userVisitPK, GetTrainingClassesForm form);
035    
036    CommandResult<GetTrainingClassResult> getTrainingClass(UserVisitPK userVisitPK, GetTrainingClassForm form);
037    
038    CommandResult<GetTrainingClassChoicesResult> getTrainingClassChoices(UserVisitPK userVisitPK, GetTrainingClassChoicesForm form);
039    
040    CommandResult<VoidResult> setDefaultTrainingClass(UserVisitPK userVisitPK, SetDefaultTrainingClassForm form);
041    
042    CommandResult<EditTrainingClassResult> editTrainingClass(UserVisitPK userVisitPK, EditTrainingClassForm form);
043    
044    CommandResult<VoidResult> deleteTrainingClass(UserVisitPK userVisitPK, DeleteTrainingClassForm form);
045    
046    // -------------------------------------------------------------------------
047    //   Training Class Descriptions
048    // -------------------------------------------------------------------------
049    
050    CommandResult<VoidResult> createTrainingClassTranslation(UserVisitPK userVisitPK, CreateTrainingClassTranslationForm form);
051    
052    CommandResult<GetTrainingClassTranslationResult> getTrainingClassTranslation(UserVisitPK userVisitPK, GetTrainingClassTranslationForm form);
053    
054    CommandResult<GetTrainingClassTranslationsResult> getTrainingClassTranslations(UserVisitPK userVisitPK, GetTrainingClassTranslationsForm form);
055    
056    CommandResult<EditTrainingClassTranslationResult> editTrainingClassTranslation(UserVisitPK userVisitPK, EditTrainingClassTranslationForm form);
057    
058    CommandResult<VoidResult> deleteTrainingClassTranslation(UserVisitPK userVisitPK, DeleteTrainingClassTranslationForm form);
059    
060    // -------------------------------------------------------------------------
061    //   Training Class Sections
062    // -------------------------------------------------------------------------
063    
064    CommandResult<VoidResult> createTrainingClassSection(UserVisitPK userVisitPK, CreateTrainingClassSectionForm form);
065    
066    CommandResult<GetTrainingClassSectionsResult> getTrainingClassSections(UserVisitPK userVisitPK, GetTrainingClassSectionsForm form);
067    
068    CommandResult<GetTrainingClassSectionResult> getTrainingClassSection(UserVisitPK userVisitPK, GetTrainingClassSectionForm form);
069    
070    CommandResult<EditTrainingClassSectionResult> editTrainingClassSection(UserVisitPK userVisitPK, EditTrainingClassSectionForm form);
071    
072    CommandResult<VoidResult> deleteTrainingClassSection(UserVisitPK userVisitPK, DeleteTrainingClassSectionForm form);
073    
074    // -------------------------------------------------------------------------
075    //   Training Class Section Descriptions
076    // -------------------------------------------------------------------------
077    
078    CommandResult<VoidResult> createTrainingClassSectionTranslation(UserVisitPK userVisitPK, CreateTrainingClassSectionTranslationForm form);
079    
080    CommandResult<GetTrainingClassSectionTranslationResult> getTrainingClassSectionTranslation(UserVisitPK userVisitPK, GetTrainingClassSectionTranslationForm form);
081    
082    CommandResult<GetTrainingClassSectionTranslationsResult> getTrainingClassSectionTranslations(UserVisitPK userVisitPK, GetTrainingClassSectionTranslationsForm form);
083    
084    CommandResult<EditTrainingClassSectionTranslationResult> editTrainingClassSectionTranslation(UserVisitPK userVisitPK, EditTrainingClassSectionTranslationForm form);
085    
086    CommandResult<VoidResult> deleteTrainingClassSectionTranslation(UserVisitPK userVisitPK, DeleteTrainingClassSectionTranslationForm form);
087    
088    // -------------------------------------------------------------------------
089    //   Training Class Pages
090    // -------------------------------------------------------------------------
091    
092    CommandResult<VoidResult> createTrainingClassPage(UserVisitPK userVisitPK, CreateTrainingClassPageForm form);
093    
094    CommandResult<GetTrainingClassPagesResult> getTrainingClassPages(UserVisitPK userVisitPK, GetTrainingClassPagesForm form);
095    
096    CommandResult<GetTrainingClassPageResult> getTrainingClassPage(UserVisitPK userVisitPK, GetTrainingClassPageForm form);
097    
098    CommandResult<EditTrainingClassPageResult> editTrainingClassPage(UserVisitPK userVisitPK, EditTrainingClassPageForm form);
099    
100    CommandResult<VoidResult> deleteTrainingClassPage(UserVisitPK userVisitPK, DeleteTrainingClassPageForm form);
101    
102    // -------------------------------------------------------------------------
103    //   Training Class Page Descriptions
104    // -------------------------------------------------------------------------
105    
106    CommandResult<VoidResult> createTrainingClassPageTranslation(UserVisitPK userVisitPK, CreateTrainingClassPageTranslationForm form);
107    
108    CommandResult<GetTrainingClassPageTranslationResult> getTrainingClassPageTranslation(UserVisitPK userVisitPK, GetTrainingClassPageTranslationForm form);
109    
110    CommandResult<GetTrainingClassPageTranslationsResult> getTrainingClassPageTranslations(UserVisitPK userVisitPK, GetTrainingClassPageTranslationsForm form);
111    
112    CommandResult<EditTrainingClassPageTranslationResult> editTrainingClassPageTranslation(UserVisitPK userVisitPK, EditTrainingClassPageTranslationForm form);
113    
114    CommandResult<VoidResult> deleteTrainingClassPageTranslation(UserVisitPK userVisitPK, DeleteTrainingClassPageTranslationForm form);
115    
116    // -------------------------------------------------------------------------
117    //   Training Class Questions
118    // -------------------------------------------------------------------------
119    
120    CommandResult<VoidResult> createTrainingClassQuestion(UserVisitPK userVisitPK, CreateTrainingClassQuestionForm form);
121    
122    CommandResult<GetTrainingClassQuestionsResult> getTrainingClassQuestions(UserVisitPK userVisitPK, GetTrainingClassQuestionsForm form);
123    
124    CommandResult<GetTrainingClassQuestionResult> getTrainingClassQuestion(UserVisitPK userVisitPK, GetTrainingClassQuestionForm form);
125    
126    CommandResult<EditTrainingClassQuestionResult> editTrainingClassQuestion(UserVisitPK userVisitPK, EditTrainingClassQuestionForm form);
127    
128    CommandResult<VoidResult> deleteTrainingClassQuestion(UserVisitPK userVisitPK, DeleteTrainingClassQuestionForm form);
129    
130    // -------------------------------------------------------------------------
131    //   Training Class Question Descriptions
132    // -------------------------------------------------------------------------
133    
134    CommandResult<VoidResult> createTrainingClassQuestionTranslation(UserVisitPK userVisitPK, CreateTrainingClassQuestionTranslationForm form);
135    
136    CommandResult<GetTrainingClassQuestionTranslationResult> getTrainingClassQuestionTranslation(UserVisitPK userVisitPK, GetTrainingClassQuestionTranslationForm form);
137    
138    CommandResult<GetTrainingClassQuestionTranslationsResult> getTrainingClassQuestionTranslations(UserVisitPK userVisitPK, GetTrainingClassQuestionTranslationsForm form);
139    
140    CommandResult<EditTrainingClassQuestionTranslationResult> editTrainingClassQuestionTranslation(UserVisitPK userVisitPK, EditTrainingClassQuestionTranslationForm form);
141    
142    CommandResult<VoidResult> deleteTrainingClassQuestionTranslation(UserVisitPK userVisitPK, DeleteTrainingClassQuestionTranslationForm form);
143    
144    // -------------------------------------------------------------------------
145    //   Training Class Answers
146    // -------------------------------------------------------------------------
147    
148    CommandResult<VoidResult> createTrainingClassAnswer(UserVisitPK userVisitPK, CreateTrainingClassAnswerForm form);
149    
150    CommandResult<GetTrainingClassAnswersResult> getTrainingClassAnswers(UserVisitPK userVisitPK, GetTrainingClassAnswersForm form);
151    
152    CommandResult<GetTrainingClassAnswerResult> getTrainingClassAnswer(UserVisitPK userVisitPK, GetTrainingClassAnswerForm form);
153    
154    CommandResult<EditTrainingClassAnswerResult> editTrainingClassAnswer(UserVisitPK userVisitPK, EditTrainingClassAnswerForm form);
155    
156    CommandResult<VoidResult> deleteTrainingClassAnswer(UserVisitPK userVisitPK, DeleteTrainingClassAnswerForm form);
157    
158    // -------------------------------------------------------------------------
159    //   Training Class Answer Descriptions
160    // -------------------------------------------------------------------------
161    
162    CommandResult<VoidResult> createTrainingClassAnswerTranslation(UserVisitPK userVisitPK, CreateTrainingClassAnswerTranslationForm form);
163    
164    CommandResult<GetTrainingClassAnswerTranslationResult> getTrainingClassAnswerTranslation(UserVisitPK userVisitPK, GetTrainingClassAnswerTranslationForm form);
165    
166    CommandResult<GetTrainingClassAnswerTranslationsResult> getTrainingClassAnswerTranslations(UserVisitPK userVisitPK, GetTrainingClassAnswerTranslationsForm form);
167    
168    CommandResult<EditTrainingClassAnswerTranslationResult> editTrainingClassAnswerTranslation(UserVisitPK userVisitPK, EditTrainingClassAnswerTranslationForm form);
169    
170    CommandResult<VoidResult> deleteTrainingClassAnswerTranslation(UserVisitPK userVisitPK, DeleteTrainingClassAnswerTranslationForm form);
171    
172    // -------------------------------------------------------------------------
173    //   Party Training Classes
174    // -------------------------------------------------------------------------
175
176    CommandResult<VoidResult> createPartyTrainingClass(UserVisitPK userVisitPK, CreatePartyTrainingClassForm form);
177
178    CommandResult<GetPartyTrainingClassStatusChoicesResult> getPartyTrainingClassStatusChoices(UserVisitPK userVisitPK, GetPartyTrainingClassStatusChoicesForm form);
179
180    CommandResult<SetPartyTrainingClassStatusResult> setPartyTrainingClassStatus(UserVisitPK userVisitPK, SetPartyTrainingClassStatusForm form);
181
182    CommandResult<GetPartyTrainingClassResult> getPartyTrainingClass(UserVisitPK userVisitPK, GetPartyTrainingClassForm form);
183
184    CommandResult<GetPartyTrainingClassesResult> getPartyTrainingClasses(UserVisitPK userVisitPK, GetPartyTrainingClassesForm form);
185
186    CommandResult<EditPartyTrainingClassResult> editPartyTrainingClass(UserVisitPK userVisitPK, EditPartyTrainingClassForm form);
187
188    CommandResult<VoidResult> deletePartyTrainingClass(UserVisitPK userVisitPK, DeletePartyTrainingClassForm form);
189
190    // -------------------------------------------------------------------------
191    //   Party Training Class Sessions
192    // -------------------------------------------------------------------------
193    
194    CommandResult<GetPartyTrainingClassSessionResult> getPartyTrainingClassSession(UserVisitPK userVisitPK, GetPartyTrainingClassSessionForm form);
195
196    CommandResult<GetPartyTrainingClassSessionsResult> getPartyTrainingClassSessions(UserVisitPK userVisitPK, GetPartyTrainingClassSessionsForm form);
197
198    CommandResult<VoidResult> deletePartyTrainingClassSession(UserVisitPK userVisitPK, DeletePartyTrainingClassSessionForm form);
199
200    // -------------------------------------------------------------------------
201    //   Party Training Class Session Pages
202    // -------------------------------------------------------------------------
203    
204    CommandResult<EditPartyTrainingClassSessionPageResult> editPartyTrainingClassSessionPage(UserVisitPK userVisitPK, EditPartyTrainingClassSessionPageForm form);
205
206    // -------------------------------------------------------------------------
207    //   Party Training Class Session Answers
208    // -------------------------------------------------------------------------
209    
210    CommandResult<EditPartyTrainingClassSessionAnswerResult> editPartyTrainingClassSessionAnswer(UserVisitPK userVisitPK, EditPartyTrainingClassSessionAnswerForm form);
211
212    // -------------------------------------------------------------------------
213    //   Testing
214    // -------------------------------------------------------------------------
215    
216    String ping();
217        
218}