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