001// --------------------------------------------------------------------------------
002// Copyright 2002-2024 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.invoice.common;
018
019import com.echothree.control.user.invoice.common.form.*;
020import com.echothree.model.data.user.common.pk.UserVisitPK;
021import com.echothree.util.common.command.CommandResult;
022
023public interface InvoiceService
024        extends InvoiceForms {
025    
026    // -------------------------------------------------------------------------
027    //   Testing
028    // -------------------------------------------------------------------------
029    
030    String ping();
031    
032    // --------------------------------------------------------------------------------
033    //   Invoice Line Use Types
034    // --------------------------------------------------------------------------------
035    
036    CommandResult createInvoiceLineUseType(UserVisitPK userVisitPK, CreateInvoiceLineUseTypeForm form);
037    
038    // --------------------------------------------------------------------------------
039    //   Invoice Line Use Type Descriptions
040    // --------------------------------------------------------------------------------
041    
042    CommandResult createInvoiceLineUseTypeDescription(UserVisitPK userVisitPK, CreateInvoiceLineUseTypeDescriptionForm form);
043    
044    // --------------------------------------------------------------------------------
045    //   Invoice Role Type Types
046    // --------------------------------------------------------------------------------
047    
048    CommandResult createInvoiceRoleType(UserVisitPK userVisitPK, CreateInvoiceRoleTypeForm form);
049    
050    // --------------------------------------------------------------------------------
051    //   Invoice Role Type Descriptions
052    // --------------------------------------------------------------------------------
053    
054    CommandResult createInvoiceRoleTypeDescription(UserVisitPK userVisitPK, CreateInvoiceRoleTypeDescriptionForm form);
055    
056    // --------------------------------------------------------------------------------
057    //   Invoice Types
058    // --------------------------------------------------------------------------------
059    
060    CommandResult createInvoiceType(UserVisitPK userVisitPK, CreateInvoiceTypeForm form);
061    
062    CommandResult getInvoiceTypeChoices(UserVisitPK userVisitPK, GetInvoiceTypeChoicesForm form);
063    
064    CommandResult getInvoiceType(UserVisitPK userVisitPK, GetInvoiceTypeForm form);
065    
066    CommandResult getInvoiceTypes(UserVisitPK userVisitPK, GetInvoiceTypesForm form);
067    
068    CommandResult setDefaultInvoiceType(UserVisitPK userVisitPK, SetDefaultInvoiceTypeForm form);
069    
070    CommandResult editInvoiceType(UserVisitPK userVisitPK, EditInvoiceTypeForm form);
071    
072    CommandResult deleteInvoiceType(UserVisitPK userVisitPK, DeleteInvoiceTypeForm form);
073    
074    // --------------------------------------------------------------------------------
075    //   Invoice Type Descriptions
076    // --------------------------------------------------------------------------------
077    
078    CommandResult createInvoiceTypeDescription(UserVisitPK userVisitPK, CreateInvoiceTypeDescriptionForm form);
079    
080    CommandResult getInvoiceTypeDescriptions(UserVisitPK userVisitPK, GetInvoiceTypeDescriptionsForm form);
081    
082    CommandResult editInvoiceTypeDescription(UserVisitPK userVisitPK, EditInvoiceTypeDescriptionForm form);
083    
084    CommandResult deleteInvoiceTypeDescription(UserVisitPK userVisitPK, DeleteInvoiceTypeDescriptionForm form);
085    
086    // --------------------------------------------------------------------------------
087    //   Invoice Time Types
088    // --------------------------------------------------------------------------------
089
090    CommandResult createInvoiceTimeType(UserVisitPK userVisitPK, CreateInvoiceTimeTypeForm form);
091
092    CommandResult getInvoiceTimeTypeChoices(UserVisitPK userVisitPK, GetInvoiceTimeTypeChoicesForm form);
093
094    CommandResult getInvoiceTimeType(UserVisitPK userVisitPK, GetInvoiceTimeTypeForm form);
095
096    CommandResult getInvoiceTimeTypes(UserVisitPK userVisitPK, GetInvoiceTimeTypesForm form);
097
098    CommandResult setDefaultInvoiceTimeType(UserVisitPK userVisitPK, SetDefaultInvoiceTimeTypeForm form);
099
100    CommandResult editInvoiceTimeType(UserVisitPK userVisitPK, EditInvoiceTimeTypeForm form);
101
102    CommandResult deleteInvoiceTimeType(UserVisitPK userVisitPK, DeleteInvoiceTimeTypeForm form);
103
104    // --------------------------------------------------------------------------------
105    //   Invoice Time Type Descriptions
106    // --------------------------------------------------------------------------------
107
108    CommandResult createInvoiceTimeTypeDescription(UserVisitPK userVisitPK, CreateInvoiceTimeTypeDescriptionForm form);
109
110    CommandResult getInvoiceTimeTypeDescription(UserVisitPK userVisitPK, GetInvoiceTimeTypeDescriptionForm form);
111
112    CommandResult getInvoiceTimeTypeDescriptions(UserVisitPK userVisitPK, GetInvoiceTimeTypeDescriptionsForm form);
113
114    CommandResult editInvoiceTimeTypeDescription(UserVisitPK userVisitPK, EditInvoiceTimeTypeDescriptionForm form);
115
116    CommandResult deleteInvoiceTimeTypeDescription(UserVisitPK userVisitPK, DeleteInvoiceTimeTypeDescriptionForm form);
117
118    // --------------------------------------------------------------------------------
119    //   Invoice Line Types
120    // --------------------------------------------------------------------------------
121    
122    CommandResult createInvoiceLineType(UserVisitPK userVisitPK, CreateInvoiceLineTypeForm form);
123    
124    CommandResult getInvoiceLineTypeChoices(UserVisitPK userVisitPK, GetInvoiceLineTypeChoicesForm form);
125    
126    CommandResult getInvoiceLineType(UserVisitPK userVisitPK, GetInvoiceLineTypeForm form);
127    
128    CommandResult getInvoiceLineTypes(UserVisitPK userVisitPK, GetInvoiceLineTypesForm form);
129    
130    CommandResult setDefaultInvoiceLineType(UserVisitPK userVisitPK, SetDefaultInvoiceLineTypeForm form);
131    
132    CommandResult editInvoiceLineType(UserVisitPK userVisitPK, EditInvoiceLineTypeForm form);
133    
134    CommandResult deleteInvoiceLineType(UserVisitPK userVisitPK, DeleteInvoiceLineTypeForm form);
135    
136    // --------------------------------------------------------------------------------
137    //   Invoice Line Type Descriptions
138    // --------------------------------------------------------------------------------
139    
140    CommandResult createInvoiceLineTypeDescription(UserVisitPK userVisitPK, CreateInvoiceLineTypeDescriptionForm form);
141    
142    CommandResult getInvoiceLineTypeDescriptions(UserVisitPK userVisitPK, GetInvoiceLineTypeDescriptionsForm form);
143    
144    CommandResult editInvoiceLineTypeDescription(UserVisitPK userVisitPK, EditInvoiceLineTypeDescriptionForm form);
145    
146    CommandResult deleteInvoiceLineTypeDescription(UserVisitPK userVisitPK, DeleteInvoiceLineTypeDescriptionForm form);
147    
148}