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.customer.common; 018 019import com.echothree.control.user.customer.common.form.*; 020import com.echothree.control.user.customer.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 CustomerService 026 extends CustomerForms { 027 028 // ------------------------------------------------------------------------- 029 // Testing 030 // ------------------------------------------------------------------------- 031 032 String ping(); 033 034 // ------------------------------------------------------------------------- 035 // Customers 036 // ------------------------------------------------------------------------- 037 038 CommandResult<GetCustomersResult> getCustomers(UserVisitPK userVisitPK, GetCustomersForm form); 039 040 CommandResult<GetCustomerResult> getCustomer(UserVisitPK userVisitPK, GetCustomerForm form); 041 042 CommandResult<EditCustomerResult> editCustomer(UserVisitPK userVisitPK, EditCustomerForm form); 043 044 CommandResult<GetCustomerStatusChoicesResult> getCustomerStatusChoices(UserVisitPK userVisitPK, GetCustomerStatusChoicesForm form); 045 046 CommandResult<VoidResult> setCustomerStatus(UserVisitPK userVisitPK, SetCustomerStatusForm form); 047 048 CommandResult<GetCustomerCreditStatusChoicesResult> getCustomerCreditStatusChoices(UserVisitPK userVisitPK, GetCustomerCreditStatusChoicesForm form); 049 050 CommandResult<VoidResult> setCustomerCreditStatus(UserVisitPK userVisitPK, SetCustomerCreditStatusForm form); 051 052 // ------------------------------------------------------------------------- 053 // Customer Types 054 // ------------------------------------------------------------------------- 055 056 CommandResult<CreateCustomerTypeResult> createCustomerType(UserVisitPK userVisitPK, CreateCustomerTypeForm form); 057 058 CommandResult<GetCustomerTypesResult> getCustomerTypes(UserVisitPK userVisitPK, GetCustomerTypesForm form); 059 060 CommandResult<GetCustomerTypeResult> getCustomerType(UserVisitPK userVisitPK, GetCustomerTypeForm form); 061 062 CommandResult<GetCustomerTypeChoicesResult> getCustomerTypeChoices(UserVisitPK userVisitPK, GetCustomerTypeChoicesForm form); 063 064 CommandResult<VoidResult> setDefaultCustomerType(UserVisitPK userVisitPK, SetDefaultCustomerTypeForm form); 065 066 CommandResult<EditCustomerTypeResult> editCustomerType(UserVisitPK userVisitPK, EditCustomerTypeForm form); 067 068 CommandResult<VoidResult> deleteCustomerType(UserVisitPK userVisitPK, DeleteCustomerTypeForm form); 069 070 // ------------------------------------------------------------------------- 071 // Customer Type Descriptions 072 // ------------------------------------------------------------------------- 073 074 CommandResult<VoidResult> createCustomerTypeDescription(UserVisitPK userVisitPK, CreateCustomerTypeDescriptionForm form); 075 076 CommandResult<GetCustomerTypeDescriptionsResult> getCustomerTypeDescriptions(UserVisitPK userVisitPK, GetCustomerTypeDescriptionsForm form); 077 078 CommandResult<EditCustomerTypeDescriptionResult> editCustomerTypeDescription(UserVisitPK userVisitPK, EditCustomerTypeDescriptionForm form); 079 080 CommandResult<VoidResult> deleteCustomerTypeDescription(UserVisitPK userVisitPK, DeleteCustomerTypeDescriptionForm form); 081 082 // ------------------------------------------------------------------------- 083 // Customer Type Payment Methods 084 // ------------------------------------------------------------------------- 085 086 CommandResult<VoidResult> createCustomerTypePaymentMethod(UserVisitPK userVisitPK, CreateCustomerTypePaymentMethodForm form); 087 088 CommandResult<GetCustomerTypePaymentMethodResult> getCustomerTypePaymentMethod(UserVisitPK userVisitPK, GetCustomerTypePaymentMethodForm form); 089 090 CommandResult<GetCustomerTypePaymentMethodsResult> getCustomerTypePaymentMethods(UserVisitPK userVisitPK, GetCustomerTypePaymentMethodsForm form); 091 092 CommandResult<VoidResult> setDefaultCustomerTypePaymentMethod(UserVisitPK userVisitPK, SetDefaultCustomerTypePaymentMethodForm form); 093 094 CommandResult<EditCustomerTypePaymentMethodResult> editCustomerTypePaymentMethod(UserVisitPK userVisitPK, EditCustomerTypePaymentMethodForm form); 095 096 CommandResult<VoidResult> deleteCustomerTypePaymentMethod(UserVisitPK userVisitPK, DeleteCustomerTypePaymentMethodForm form); 097 098 // ------------------------------------------------------------------------- 099 // Customer Type Shipping Methods 100 // ------------------------------------------------------------------------- 101 102 CommandResult<VoidResult> createCustomerTypeShippingMethod(UserVisitPK userVisitPK, CreateCustomerTypeShippingMethodForm form); 103 104 CommandResult<GetCustomerTypeShippingMethodResult> getCustomerTypeShippingMethod(UserVisitPK userVisitPK, GetCustomerTypeShippingMethodForm form); 105 106 CommandResult<GetCustomerTypeShippingMethodsResult> getCustomerTypeShippingMethods(UserVisitPK userVisitPK, GetCustomerTypeShippingMethodsForm form); 107 108 CommandResult<VoidResult> setDefaultCustomerTypeShippingMethod(UserVisitPK userVisitPK, SetDefaultCustomerTypeShippingMethodForm form); 109 110 CommandResult<EditCustomerTypeShippingMethodResult> editCustomerTypeShippingMethod(UserVisitPK userVisitPK, EditCustomerTypeShippingMethodForm form); 111 112 CommandResult<VoidResult> deleteCustomerTypeShippingMethod(UserVisitPK userVisitPK, DeleteCustomerTypeShippingMethodForm form); 113 114}