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.forum.common;
018
019import com.echothree.control.user.forum.common.form.*;
020import com.echothree.control.user.forum.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 ForumService
026        extends ForumForms {
027    
028    // -------------------------------------------------------------------------
029    //   Testing
030    // -------------------------------------------------------------------------
031    
032    String ping();
033    
034    // --------------------------------------------------------------------------------
035    //   Forum Groups
036    // --------------------------------------------------------------------------------
037    
038    CommandResult<VoidResult> createForumGroup(UserVisitPK userVisitPK, CreateForumGroupForm form);
039    
040    CommandResult<GetForumGroupResult> getForumGroup(UserVisitPK userVisitPK, GetForumGroupForm form);
041    
042    CommandResult<GetForumGroupsResult> getForumGroups(UserVisitPK userVisitPK, GetForumGroupsForm form);
043    
044    CommandResult<GetForumGroupChoicesResult> getForumGroupChoices(UserVisitPK userVisitPK, GetForumGroupChoicesForm form);
045    
046    CommandResult<EditForumGroupResult> editForumGroup(UserVisitPK userVisitPK, EditForumGroupForm form);
047    
048    CommandResult<VoidResult> deleteForumGroup(UserVisitPK userVisitPK, DeleteForumGroupForm form);
049    
050    // --------------------------------------------------------------------------------
051    //   Forum Group Descriptions
052    // --------------------------------------------------------------------------------
053    
054    CommandResult<VoidResult> createForumGroupDescription(UserVisitPK userVisitPK, CreateForumGroupDescriptionForm form);
055    
056    CommandResult<GetForumGroupDescriptionsResult> getForumGroupDescriptions(UserVisitPK userVisitPK, GetForumGroupDescriptionsForm form);
057    
058    CommandResult<EditForumGroupDescriptionResult> editForumGroupDescription(UserVisitPK userVisitPK, EditForumGroupDescriptionForm form);
059    
060    CommandResult<VoidResult> deleteForumGroupDescription(UserVisitPK userVisitPK, DeleteForumGroupDescriptionForm form);
061    
062    // --------------------------------------------------------------------------------
063    //   Forums
064    // --------------------------------------------------------------------------------
065    
066    CommandResult<VoidResult> createForum(UserVisitPK userVisitPK, CreateForumForm form);
067    
068    CommandResult<GetForumResult> getForum(UserVisitPK userVisitPK, GetForumForm form);
069    
070    CommandResult<GetForumsResult> getForums(UserVisitPK userVisitPK, GetForumsForm form);
071    
072    CommandResult<GetForumChoicesResult> getForumChoices(UserVisitPK userVisitPK, GetForumChoicesForm form);
073    
074    CommandResult<EditForumResult> editForum(UserVisitPK userVisitPK, EditForumForm form);
075    
076    CommandResult<VoidResult> deleteForum(UserVisitPK userVisitPK, DeleteForumForm form);
077    
078    // --------------------------------------------------------------------------------
079    //   Forum Descriptions
080    // --------------------------------------------------------------------------------
081    
082    CommandResult<VoidResult> createForumDescription(UserVisitPK userVisitPK, CreateForumDescriptionForm form);
083    
084    CommandResult<GetForumDescriptionsResult> getForumDescriptions(UserVisitPK userVisitPK, GetForumDescriptionsForm form);
085    
086    CommandResult<EditForumDescriptionResult> editForumDescription(UserVisitPK userVisitPK, EditForumDescriptionForm form);
087    
088    CommandResult<VoidResult> deleteForumDescription(UserVisitPK userVisitPK, DeleteForumDescriptionForm form);
089    
090    // -------------------------------------------------------------------------
091    //   Forum Group Forums
092    // -------------------------------------------------------------------------
093    
094    CommandResult<VoidResult> createForumGroupForum(UserVisitPK userVisitPK, CreateForumGroupForumForm form);
095    
096    CommandResult<GetForumGroupForumsResult> getForumGroupForums(UserVisitPK userVisitPK, GetForumGroupForumsForm form);
097    
098    CommandResult<VoidResult> setDefaultForumGroupForum(UserVisitPK userVisitPK, SetDefaultForumGroupForumForm form);
099    
100    CommandResult<EditForumGroupForumResult> editForumGroupForum(UserVisitPK userVisitPK, EditForumGroupForumForm form);
101    
102    CommandResult<VoidResult> deleteForumGroupForum(UserVisitPK userVisitPK, DeleteForumGroupForumForm form);
103    
104    // --------------------------------------------------------------------------------
105    //   Forum Role Types
106    // --------------------------------------------------------------------------------
107    
108    CommandResult<VoidResult> createForumRoleType(UserVisitPK userVisitPK, CreateForumRoleTypeForm form);
109    
110    CommandResult<GetForumRoleTypeChoicesResult> getForumRoleTypeChoices(UserVisitPK userVisitPK, GetForumRoleTypeChoicesForm form);
111    
112    // --------------------------------------------------------------------------------
113    //   Forum Role Type Descriptions
114    // --------------------------------------------------------------------------------
115    
116    CommandResult<VoidResult> createForumRoleTypeDescription(UserVisitPK userVisitPK, CreateForumRoleTypeDescriptionForm form);
117    
118    // --------------------------------------------------------------------------------
119    //   Forum Types
120    // --------------------------------------------------------------------------------
121    
122    CommandResult<VoidResult> createForumType(UserVisitPK userVisitPK, CreateForumTypeForm form);
123    
124    CommandResult<GetForumTypeChoicesResult> getForumTypeChoices(UserVisitPK userVisitPK, GetForumTypeChoicesForm form);
125    
126    // --------------------------------------------------------------------------------
127    //   Forum Type Descriptions
128    // --------------------------------------------------------------------------------
129    
130    CommandResult<VoidResult> createForumTypeDescription(UserVisitPK userVisitPK, CreateForumTypeDescriptionForm form);
131    
132    // --------------------------------------------------------------------------------
133    //   Forum Mime Types
134    // --------------------------------------------------------------------------------
135    
136    CommandResult<VoidResult> createForumMimeType(UserVisitPK userVisitPK, CreateForumMimeTypeForm form);
137    
138    CommandResult<GetForumMimeTypesResult> getForumMimeTypes(UserVisitPK userVisitPK, GetForumMimeTypesForm form);
139    
140    CommandResult<VoidResult> setDefaultForumMimeType(UserVisitPK userVisitPK, SetDefaultForumMimeTypeForm form);
141    
142    CommandResult<EditForumMimeTypeResult> editForumMimeType(UserVisitPK userVisitPK, EditForumMimeTypeForm form);
143    
144    CommandResult<VoidResult> deleteForumMimeType(UserVisitPK userVisitPK, DeleteForumMimeTypeForm form);
145    
146    // --------------------------------------------------------------------------------
147    //   Forum Party Roles
148    // --------------------------------------------------------------------------------
149    
150    CommandResult<VoidResult> createForumPartyRole(UserVisitPK userVisitPK, CreateForumPartyRoleForm form);
151    
152    CommandResult<GetForumPartyRolesResult> getForumPartyRoles(UserVisitPK userVisitPK, GetForumPartyRolesForm form);
153    
154    CommandResult<VoidResult> deleteForumPartyRole(UserVisitPK userVisitPK, DeleteForumPartyRoleForm form);
155    
156    // --------------------------------------------------------------------------------
157    //   Forum Party Type Roles
158    // --------------------------------------------------------------------------------
159    
160    CommandResult<VoidResult> createForumPartyTypeRole(UserVisitPK userVisitPK, CreateForumPartyTypeRoleForm form);
161    
162    CommandResult<GetForumPartyTypeRolesResult> getForumPartyTypeRoles(UserVisitPK userVisitPK, GetForumPartyTypeRolesForm form);
163    
164    CommandResult<VoidResult> deleteForumPartyTypeRole(UserVisitPK userVisitPK, DeleteForumPartyTypeRoleForm form);
165    
166    // --------------------------------------------------------------------------------
167    //   Forum Type Message Types
168    // --------------------------------------------------------------------------------
169
170    CommandResult<VoidResult> createForumTypeMessageType(UserVisitPK userVisitPK, CreateForumTypeMessageTypeForm form);
171    
172    // -------------------------------------------------------------------------
173    //   Forum Forum Threads
174    // -------------------------------------------------------------------------
175    
176    CommandResult<VoidResult> createForumForumThread(UserVisitPK userVisitPK, CreateForumForumThreadForm form);
177    
178    CommandResult<GetForumForumThreadsResult> getForumForumThreads(UserVisitPK userVisitPK, GetForumForumThreadsForm form);
179    
180    CommandResult<VoidResult> setDefaultForumForumThread(UserVisitPK userVisitPK, SetDefaultForumForumThreadForm form);
181    
182    CommandResult<EditForumForumThreadResult> editForumForumThread(UserVisitPK userVisitPK, EditForumForumThreadForm form);
183    
184    CommandResult<VoidResult> deleteForumForumThread(UserVisitPK userVisitPK, DeleteForumForumThreadForm form);
185    
186    // --------------------------------------------------------------------------------
187    //   Forum Threads
188    // --------------------------------------------------------------------------------
189    
190    CommandResult<GetForumThreadResult> getForumThread(UserVisitPK userVisitPK, GetForumThreadForm form);
191    
192    CommandResult<GetForumThreadsResult> getForumThreads(UserVisitPK userVisitPK, GetForumThreadsForm form);
193    
194    CommandResult<VoidResult> deleteForumThread(UserVisitPK userVisitPK, DeleteForumThreadForm form);
195    
196    // --------------------------------------------------------------------------------
197    //   Forum Messages
198    // --------------------------------------------------------------------------------
199    
200    CommandResult<GetForumMessageResult> getForumMessage(UserVisitPK userVisitPK, GetForumMessageForm form);
201    
202    CommandResult<GetForumMessagesResult> getForumMessages(UserVisitPK userVisitPK, GetForumMessagesForm form);
203    
204    CommandResult<VoidResult> deleteForumMessage(UserVisitPK userVisitPK, DeleteForumMessageForm form);
205    
206    // --------------------------------------------------------------------------------
207    //   Forum Message Attachments
208    // --------------------------------------------------------------------------------
209
210    CommandResult<VoidResult> createForumMessageAttachment(UserVisitPK userVisitPK, CreateForumMessageAttachmentForm form);
211
212    CommandResult<GetForumMessageAttachmentResult> getForumMessageAttachment(UserVisitPK userVisitPK, GetForumMessageAttachmentForm form);
213
214    CommandResult<GetForumMessageAttachmentsResult> getForumMessageAttachments(UserVisitPK userVisitPK, GetForumMessageAttachmentsForm form);
215
216    CommandResult<EditForumMessageAttachmentResult> editForumMessageAttachment(UserVisitPK userVisitPK, EditForumMessageAttachmentForm form);
217
218    CommandResult<VoidResult> deleteForumMessageAttachment(UserVisitPK userVisitPK, DeleteForumMessageAttachmentForm form);
219
220    // --------------------------------------------------------------------------------
221    //   Forum Message Attachment Descriptions
222    // --------------------------------------------------------------------------------
223
224    CommandResult<VoidResult> createForumMessageAttachmentDescription(UserVisitPK userVisitPK, CreateForumMessageAttachmentDescriptionForm form);
225
226    CommandResult<GetForumMessageAttachmentDescriptionResult> getForumMessageAttachmentDescription(UserVisitPK userVisitPK, GetForumMessageAttachmentDescriptionForm form);
227
228    CommandResult<GetForumMessageAttachmentDescriptionsResult> getForumMessageAttachmentDescriptions(UserVisitPK userVisitPK, GetForumMessageAttachmentDescriptionsForm form);
229
230    CommandResult<EditForumMessageAttachmentDescriptionResult> editForumMessageAttachmentDescription(UserVisitPK userVisitPK, EditForumMessageAttachmentDescriptionForm form);
231
232    CommandResult<VoidResult> deleteForumMessageAttachmentDescription(UserVisitPK userVisitPK, DeleteForumMessageAttachmentDescriptionForm form);
233
234    // --------------------------------------------------------------------------------
235    //   Forum Message Part Types
236    // --------------------------------------------------------------------------------
237    
238    CommandResult<VoidResult> createForumMessagePartType(UserVisitPK userVisitPK, CreateForumMessagePartTypeForm form);
239    
240    // --------------------------------------------------------------------------------
241    //   Forum Message Part Type Descriptions
242    // --------------------------------------------------------------------------------
243    
244    CommandResult<VoidResult> createForumMessagePartTypeDescription(UserVisitPK userVisitPK, CreateForumMessagePartTypeDescriptionForm form);
245    
246    // --------------------------------------------------------------------------------
247    //   Forum Message Types
248    // --------------------------------------------------------------------------------
249    
250    CommandResult<VoidResult> createForumMessageType(UserVisitPK userVisitPK, CreateForumMessageTypeForm form);
251    
252    CommandResult<GetForumMessageTypeChoicesResult> getForumMessageTypeChoices(UserVisitPK userVisitPK, GetForumMessageTypeChoicesForm form);
253    
254    // --------------------------------------------------------------------------------
255    //   Forum Message Type Descriptions
256    // --------------------------------------------------------------------------------
257    
258    CommandResult<VoidResult> createForumMessageTypeDescription(UserVisitPK userVisitPK, CreateForumMessageTypeDescriptionForm form);
259    
260    // --------------------------------------------------------------------------------
261    //   Forum Message Type Part Types
262    // --------------------------------------------------------------------------------
263    
264    CommandResult<VoidResult> createForumMessageTypePartType(UserVisitPK userVisitPK, CreateForumMessageTypePartTypeForm form);
265    
266    // --------------------------------------------------------------------------------
267    //   Blog Entries
268    // --------------------------------------------------------------------------------
269    
270    CommandResult<CreateBlogEntryResult> createBlogEntry(UserVisitPK userVisitPK, CreateBlogEntryForm form);
271    
272    CommandResult<EditBlogEntryResult> editBlogEntry(UserVisitPK userVisitPK, EditBlogEntryForm form);
273    
274    // --------------------------------------------------------------------------------
275    //   Blog Comments
276    // --------------------------------------------------------------------------------
277    
278    CommandResult<CreateBlogCommentResult> createBlogComment(UserVisitPK userVisitPK, CreateBlogCommentForm form);
279    
280    CommandResult<EditBlogCommentResult> editBlogComment(UserVisitPK userVisitPK, EditBlogCommentForm form);
281    
282}