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.document.common;
018
019import com.echothree.control.user.document.common.form.*;
020import com.echothree.control.user.document.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 DocumentService
026        extends DocumentForms {
027    
028    // -------------------------------------------------------------------------
029    //   Testing
030    // -------------------------------------------------------------------------
031    
032    String ping();
033    
034    // --------------------------------------------------------------------------------
035    //   Document Types
036    // --------------------------------------------------------------------------------
037
038    CommandResult<VoidResult> createDocumentType(UserVisitPK userVisitPK, CreateDocumentTypeForm form);
039
040    CommandResult<GetDocumentTypeChoicesResult> getDocumentTypeChoices(UserVisitPK userVisitPK, GetDocumentTypeChoicesForm form);
041
042    CommandResult<GetDocumentTypeResult> getDocumentType(UserVisitPK userVisitPK, GetDocumentTypeForm form);
043
044    CommandResult<GetDocumentTypesResult> getDocumentTypes(UserVisitPK userVisitPK, GetDocumentTypesForm form);
045
046    CommandResult<VoidResult> setDefaultDocumentType(UserVisitPK userVisitPK, SetDefaultDocumentTypeForm form);
047
048    CommandResult<EditDocumentTypeResult> editDocumentType(UserVisitPK userVisitPK, EditDocumentTypeForm form);
049
050    CommandResult<VoidResult> deleteDocumentType(UserVisitPK userVisitPK, DeleteDocumentTypeForm form);
051
052    // --------------------------------------------------------------------------------
053    //   Document Type Descriptions
054    // --------------------------------------------------------------------------------
055
056    CommandResult<VoidResult> createDocumentTypeDescription(UserVisitPK userVisitPK, CreateDocumentTypeDescriptionForm form);
057
058    CommandResult<GetDocumentTypeDescriptionResult> getDocumentTypeDescription(UserVisitPK userVisitPK, GetDocumentTypeDescriptionForm form);
059
060    CommandResult<GetDocumentTypeDescriptionsResult> getDocumentTypeDescriptions(UserVisitPK userVisitPK, GetDocumentTypeDescriptionsForm form);
061
062    CommandResult<EditDocumentTypeDescriptionResult> editDocumentTypeDescription(UserVisitPK userVisitPK, EditDocumentTypeDescriptionForm form);
063
064    CommandResult<VoidResult> deleteDocumentTypeDescription(UserVisitPK userVisitPK, DeleteDocumentTypeDescriptionForm form);
065
066    // --------------------------------------------------------------------------------
067    //   Document Type Usage Types
068    // --------------------------------------------------------------------------------
069
070    CommandResult<VoidResult> createDocumentTypeUsageType(UserVisitPK userVisitPK, CreateDocumentTypeUsageTypeForm form);
071
072    CommandResult<GetDocumentTypeUsageTypeChoicesResult> getDocumentTypeUsageTypeChoices(UserVisitPK userVisitPK, GetDocumentTypeUsageTypeChoicesForm form);
073
074    CommandResult<GetDocumentTypeUsageTypeResult> getDocumentTypeUsageType(UserVisitPK userVisitPK, GetDocumentTypeUsageTypeForm form);
075
076    CommandResult<GetDocumentTypeUsageTypesResult> getDocumentTypeUsageTypes(UserVisitPK userVisitPK, GetDocumentTypeUsageTypesForm form);
077
078    CommandResult<VoidResult> setDefaultDocumentTypeUsageType(UserVisitPK userVisitPK, SetDefaultDocumentTypeUsageTypeForm form);
079
080    CommandResult<EditDocumentTypeUsageTypeResult> editDocumentTypeUsageType(UserVisitPK userVisitPK, EditDocumentTypeUsageTypeForm form);
081
082    CommandResult<VoidResult> deleteDocumentTypeUsageType(UserVisitPK userVisitPK, DeleteDocumentTypeUsageTypeForm form);
083
084    // --------------------------------------------------------------------------------
085    //   Document Type Usage Type Descriptions
086    // --------------------------------------------------------------------------------
087
088    CommandResult<VoidResult> createDocumentTypeUsageTypeDescription(UserVisitPK userVisitPK, CreateDocumentTypeUsageTypeDescriptionForm form);
089
090    CommandResult<GetDocumentTypeUsageTypeDescriptionResult> getDocumentTypeUsageTypeDescription(UserVisitPK userVisitPK, GetDocumentTypeUsageTypeDescriptionForm form);
091
092    CommandResult<GetDocumentTypeUsageTypeDescriptionsResult> getDocumentTypeUsageTypeDescriptions(UserVisitPK userVisitPK, GetDocumentTypeUsageTypeDescriptionsForm form);
093
094    CommandResult<EditDocumentTypeUsageTypeDescriptionResult> editDocumentTypeUsageTypeDescription(UserVisitPK userVisitPK, EditDocumentTypeUsageTypeDescriptionForm form);
095
096    CommandResult<VoidResult> deleteDocumentTypeUsageTypeDescription(UserVisitPK userVisitPK, DeleteDocumentTypeUsageTypeDescriptionForm form);
097
098    // --------------------------------------------------------------------------------
099    //   Document Type Usage Descriptions
100    // --------------------------------------------------------------------------------
101
102    CommandResult<VoidResult> createDocumentTypeUsage(UserVisitPK userVisitPK, CreateDocumentTypeUsageForm form);
103
104    CommandResult<GetDocumentTypeUsageResult> getDocumentTypeUsage(UserVisitPK userVisitPK, GetDocumentTypeUsageForm form);
105
106    CommandResult<GetDocumentTypeUsagesResult> getDocumentTypeUsages(UserVisitPK userVisitPK, GetDocumentTypeUsagesForm form);
107
108    CommandResult<VoidResult> setDefaultDocumentTypeUsage(UserVisitPK userVisitPK, SetDefaultDocumentTypeUsageForm form);
109
110    CommandResult<EditDocumentTypeUsageResult> editDocumentTypeUsage(UserVisitPK userVisitPK, EditDocumentTypeUsageForm form);
111
112    CommandResult<VoidResult> deleteDocumentTypeUsage(UserVisitPK userVisitPK, DeleteDocumentTypeUsageForm form);
113
114    // --------------------------------------------------------------------------------
115    //   Party Type Document Type Usage Types
116    // --------------------------------------------------------------------------------
117
118    CommandResult<VoidResult> createPartyTypeDocumentTypeUsageType(UserVisitPK userVisitPK, CreatePartyTypeDocumentTypeUsageTypeForm form);
119
120    CommandResult<GetPartyTypeDocumentTypeUsageTypeResult> getPartyTypeDocumentTypeUsageType(UserVisitPK userVisitPK, GetPartyTypeDocumentTypeUsageTypeForm form);
121
122    CommandResult<GetPartyTypeDocumentTypeUsageTypesResult> getPartyTypeDocumentTypeUsageTypes(UserVisitPK userVisitPK, GetPartyTypeDocumentTypeUsageTypesForm form);
123
124    CommandResult<VoidResult> setDefaultPartyTypeDocumentTypeUsageType(UserVisitPK userVisitPK, SetDefaultPartyTypeDocumentTypeUsageTypeForm form);
125
126    CommandResult<EditPartyTypeDocumentTypeUsageTypeResult> editPartyTypeDocumentTypeUsageType(UserVisitPK userVisitPK, EditPartyTypeDocumentTypeUsageTypeForm form);
127
128    CommandResult<VoidResult> deletePartyTypeDocumentTypeUsageType(UserVisitPK userVisitPK, DeletePartyTypeDocumentTypeUsageTypeForm form);
129
130    // --------------------------------------------------------------------------------
131    //   Party Documents
132    // --------------------------------------------------------------------------------
133
134    CommandResult<CreatePartyDocumentResult> createPartyDocument(UserVisitPK userVisitPK, CreatePartyDocumentForm form);
135
136    CommandResult<GetPartyDocumentResult> getPartyDocument(UserVisitPK userVisitPK, GetPartyDocumentForm form);
137
138    CommandResult<GetPartyDocumentsResult> getPartyDocuments(UserVisitPK userVisitPK, GetPartyDocumentsForm form);
139
140    CommandResult<VoidResult> setDefaultPartyDocument(UserVisitPK userVisitPK, SetDefaultPartyDocumentForm form);
141
142    CommandResult<EditPartyDocumentResult> editPartyDocument(UserVisitPK userVisitPK, EditPartyDocumentForm form);
143
144    CommandResult<VoidResult> deletePartyDocument(UserVisitPK userVisitPK, DeletePartyDocumentForm form);
145
146    // --------------------------------------------------------------------------------
147    //   Document Descriptions
148    // --------------------------------------------------------------------------------
149
150    CommandResult<VoidResult> createDocumentDescription(UserVisitPK userVisitPK, CreateDocumentDescriptionForm form);
151
152    CommandResult<GetDocumentDescriptionResult> getDocumentDescription(UserVisitPK userVisitPK, GetDocumentDescriptionForm form);
153
154    CommandResult<GetDocumentDescriptionsResult> getDocumentDescriptions(UserVisitPK userVisitPK, GetDocumentDescriptionsForm form);
155
156    CommandResult<EditDocumentDescriptionResult> editDocumentDescription(UserVisitPK userVisitPK, EditDocumentDescriptionForm form);
157
158    CommandResult<VoidResult> deleteDocumentDescription(UserVisitPK userVisitPK, DeleteDocumentDescriptionForm form);
159
160}