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.inventory.common;
018
019import com.echothree.control.user.inventory.common.form.*;
020import com.echothree.control.user.inventory.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 InventoryService
026        extends InventoryForms {
027    
028    // -------------------------------------------------------------------------
029    //   Testing
030    // -------------------------------------------------------------------------
031    
032    String ping();
033    
034    // -------------------------------------------------------------------------
035    //   Inventory Conditions
036    // -------------------------------------------------------------------------
037    
038    CommandResult<CreateInventoryConditionResult> createInventoryCondition(UserVisitPK userVisitPK, CreateInventoryConditionForm form);
039    
040    CommandResult<GetInventoryConditionsResult> getInventoryConditions(UserVisitPK userVisitPK, GetInventoryConditionsForm form);
041    
042    CommandResult<GetInventoryConditionResult> getInventoryCondition(UserVisitPK userVisitPK, GetInventoryConditionForm form);
043    
044    CommandResult<GetInventoryConditionChoicesResult> getInventoryConditionChoices(UserVisitPK userVisitPK, GetInventoryConditionChoicesForm form);
045    
046    CommandResult<VoidResult> setDefaultInventoryCondition(UserVisitPK userVisitPK, SetDefaultInventoryConditionForm form);
047    
048    CommandResult<EditInventoryConditionResult> editInventoryCondition(UserVisitPK userVisitPK, EditInventoryConditionForm form);
049    
050    CommandResult<VoidResult> deleteInventoryCondition(UserVisitPK userVisitPK, DeleteInventoryConditionForm form);
051    
052    // -------------------------------------------------------------------------
053    //   Inventory Condition Descriptions
054    // -------------------------------------------------------------------------
055    
056    CommandResult<VoidResult> createInventoryConditionDescription(UserVisitPK userVisitPK, CreateInventoryConditionDescriptionForm form);
057    
058    CommandResult<GetInventoryConditionDescriptionsResult> getInventoryConditionDescriptions(UserVisitPK userVisitPK, GetInventoryConditionDescriptionsForm form);
059    
060    CommandResult<EditInventoryConditionDescriptionResult> editInventoryConditionDescription(UserVisitPK userVisitPK, EditInventoryConditionDescriptionForm form);
061    
062    CommandResult<VoidResult> deleteInventoryConditionDescription(UserVisitPK userVisitPK, DeleteInventoryConditionDescriptionForm form);
063    
064    // --------------------------------------------------------------------------------
065    //   Inventory Condition Use Types
066    // --------------------------------------------------------------------------------
067    
068    CommandResult<VoidResult> createInventoryConditionUseType(UserVisitPK userVisitPK, CreateInventoryConditionUseTypeForm form);
069    
070    CommandResult<GetInventoryConditionUseTypeChoicesResult> getInventoryConditionUseTypeChoices(UserVisitPK userVisitPK, GetInventoryConditionUseTypeChoicesForm form);
071    
072    CommandResult<GetInventoryConditionUseTypesResult> getInventoryConditionUseTypes(UserVisitPK userVisitPK, GetInventoryConditionUseTypesForm form);
073    
074    // --------------------------------------------------------------------------------
075    //   Inventory Condition Use Type Descriptions
076    // --------------------------------------------------------------------------------
077    
078    CommandResult<VoidResult> createInventoryConditionUseTypeDescription(UserVisitPK userVisitPK, CreateInventoryConditionUseTypeDescriptionForm form);
079    
080    // --------------------------------------------------------------------------------
081    //   Inventory Condition Uses
082    // --------------------------------------------------------------------------------
083    
084    CommandResult<VoidResult> createInventoryConditionUse(UserVisitPK userVisitPK, CreateInventoryConditionUseForm form);
085    
086    CommandResult<GetInventoryConditionUsesResult> getInventoryConditionUses(UserVisitPK userVisitPK, GetInventoryConditionUsesForm form);
087    
088    CommandResult<VoidResult> setDefaultInventoryConditionUse(UserVisitPK userVisitPK, SetDefaultInventoryConditionUseForm form);
089    
090    CommandResult<VoidResult> deleteInventoryConditionUse(UserVisitPK userVisitPK, DeleteInventoryConditionUseForm form);
091    
092    // -------------------------------------------------------------------------
093    //   Inventory Location Groups
094    // -------------------------------------------------------------------------
095    
096    CommandResult<CreateInventoryLocationGroupResult> createInventoryLocationGroup(UserVisitPK userVisitPK, CreateInventoryLocationGroupForm form);
097    
098    CommandResult<GetInventoryLocationGroupsResult> getInventoryLocationGroups(UserVisitPK userVisitPK, GetInventoryLocationGroupsForm form);
099    
100    CommandResult<GetInventoryLocationGroupResult> getInventoryLocationGroup(UserVisitPK userVisitPK, GetInventoryLocationGroupForm form);
101    
102    CommandResult<GetInventoryLocationGroupChoicesResult> getInventoryLocationGroupChoices(UserVisitPK userVisitPK, GetInventoryLocationGroupChoicesForm form);
103    
104    CommandResult<VoidResult> setDefaultInventoryLocationGroup(UserVisitPK userVisitPK, SetDefaultInventoryLocationGroupForm form);
105    
106    CommandResult<GetInventoryLocationGroupStatusChoicesResult> getInventoryLocationGroupStatusChoices(UserVisitPK userVisitPK, GetInventoryLocationGroupStatusChoicesForm form);
107    
108    CommandResult<VoidResult> setInventoryLocationGroupStatus(UserVisitPK userVisitPK, SetInventoryLocationGroupStatusForm form);
109    
110    CommandResult<EditInventoryLocationGroupResult> editInventoryLocationGroup(UserVisitPK userVisitPK, EditInventoryLocationGroupForm form);
111    
112    CommandResult<VoidResult> deleteInventoryLocationGroup(UserVisitPK userVisitPK, DeleteInventoryLocationGroupForm form);
113    
114    // -------------------------------------------------------------------------
115    //   Inventory Location Group Descriptions
116    // -------------------------------------------------------------------------
117    
118    CommandResult<VoidResult> createInventoryLocationGroupDescription(UserVisitPK userVisitPK, CreateInventoryLocationGroupDescriptionForm form);
119    
120    CommandResult<GetInventoryLocationGroupDescriptionsResult> getInventoryLocationGroupDescriptions(UserVisitPK userVisitPK, GetInventoryLocationGroupDescriptionsForm form);
121    
122    CommandResult<EditInventoryLocationGroupDescriptionResult> editInventoryLocationGroupDescription(UserVisitPK userVisitPK, EditInventoryLocationGroupDescriptionForm form);
123    
124    CommandResult<VoidResult> deleteInventoryLocationGroupDescription(UserVisitPK userVisitPK, DeleteInventoryLocationGroupDescriptionForm form);
125    
126    // --------------------------------------------------------------------------------
127    //   Inventory Location Group Capacities
128    // --------------------------------------------------------------------------------
129    
130    CommandResult<VoidResult> createInventoryLocationGroupCapacity(UserVisitPK userVisitPK, CreateInventoryLocationGroupCapacityForm form);
131    
132    CommandResult<GetInventoryLocationGroupCapacitiesResult> getInventoryLocationGroupCapacities(UserVisitPK userVisitPK, GetInventoryLocationGroupCapacitiesForm form);
133    
134    CommandResult<EditInventoryLocationGroupCapacityResult> editInventoryLocationGroupCapacity(UserVisitPK userVisitPK, EditInventoryLocationGroupCapacityForm form);
135    
136    CommandResult<VoidResult> deleteInventoryLocationGroupCapacity(UserVisitPK userVisitPK, DeleteInventoryLocationGroupCapacityForm form);
137    
138    // --------------------------------------------------------------------------------
139    //   Inventory Location Group Volumes
140    // --------------------------------------------------------------------------------
141    
142    CommandResult<VoidResult> createInventoryLocationGroupVolume(UserVisitPK userVisitPK, CreateInventoryLocationGroupVolumeForm form);
143    
144    CommandResult<EditInventoryLocationGroupVolumeResult> editInventoryLocationGroupVolume(UserVisitPK userVisitPK, EditInventoryLocationGroupVolumeForm form);
145    
146    CommandResult<VoidResult> deleteInventoryLocationGroupVolume(UserVisitPK userVisitPK, DeleteInventoryLocationGroupVolumeForm form);
147
148    // -------------------------------------------------------------------------
149    //   Lots
150    // -------------------------------------------------------------------------
151
152    CommandResult<GetLotsResult> getLots(UserVisitPK userVisitPK, GetLotsForm form);
153
154    CommandResult<GetLotResult> getLot(UserVisitPK userVisitPK, GetLotForm form);
155
156    // --------------------------------------------------------------------------------
157    //   Lot Time Types
158    // --------------------------------------------------------------------------------
159
160    CommandResult<VoidResult> createLotTimeType(UserVisitPK userVisitPK, CreateLotTimeTypeForm form);
161
162    CommandResult<GetLotTimeTypeChoicesResult> getLotTimeTypeChoices(UserVisitPK userVisitPK, GetLotTimeTypeChoicesForm form);
163
164    CommandResult<GetLotTimeTypeResult> getLotTimeType(UserVisitPK userVisitPK, GetLotTimeTypeForm form);
165
166    CommandResult<GetLotTimeTypesResult> getLotTimeTypes(UserVisitPK userVisitPK, GetLotTimeTypesForm form);
167
168    CommandResult<VoidResult> setDefaultLotTimeType(UserVisitPK userVisitPK, SetDefaultLotTimeTypeForm form);
169
170    CommandResult<EditLotTimeTypeResult> editLotTimeType(UserVisitPK userVisitPK, EditLotTimeTypeForm form);
171
172    CommandResult<VoidResult> deleteLotTimeType(UserVisitPK userVisitPK, DeleteLotTimeTypeForm form);
173
174    // --------------------------------------------------------------------------------
175    //   Lot Time Type Descriptions
176    // --------------------------------------------------------------------------------
177
178    CommandResult<VoidResult> createLotTimeTypeDescription(UserVisitPK userVisitPK, CreateLotTimeTypeDescriptionForm form);
179
180    CommandResult<GetLotTimeTypeDescriptionResult> getLotTimeTypeDescription(UserVisitPK userVisitPK, GetLotTimeTypeDescriptionForm form);
181
182    CommandResult<GetLotTimeTypeDescriptionsResult> getLotTimeTypeDescriptions(UserVisitPK userVisitPK, GetLotTimeTypeDescriptionsForm form);
183
184    CommandResult<EditLotTimeTypeDescriptionResult> editLotTimeTypeDescription(UserVisitPK userVisitPK, EditLotTimeTypeDescriptionForm form);
185
186    CommandResult<VoidResult> deleteLotTimeTypeDescription(UserVisitPK userVisitPK, DeleteLotTimeTypeDescriptionForm form);
187
188    // --------------------------------------------------------------------------------
189    //   Lot Alias Types
190    // --------------------------------------------------------------------------------
191
192    CommandResult<VoidResult> createLotAliasType(UserVisitPK userVisitPK, CreateLotAliasTypeForm form);
193
194    CommandResult<GetLotAliasTypeChoicesResult> getLotAliasTypeChoices(UserVisitPK userVisitPK, GetLotAliasTypeChoicesForm form);
195
196    CommandResult<GetLotAliasTypeResult> getLotAliasType(UserVisitPK userVisitPK, GetLotAliasTypeForm form);
197
198    CommandResult<GetLotAliasTypesResult> getLotAliasTypes(UserVisitPK userVisitPK, GetLotAliasTypesForm form);
199
200    CommandResult<VoidResult> setDefaultLotAliasType(UserVisitPK userVisitPK, SetDefaultLotAliasTypeForm form);
201
202    CommandResult<EditLotAliasTypeResult> editLotAliasType(UserVisitPK userVisitPK, EditLotAliasTypeForm form);
203
204    CommandResult<VoidResult> deleteLotAliasType(UserVisitPK userVisitPK, DeleteLotAliasTypeForm form);
205
206    // --------------------------------------------------------------------------------
207    //   Lot Alias Type Descriptions
208    // --------------------------------------------------------------------------------
209
210    CommandResult<VoidResult> createLotAliasTypeDescription(UserVisitPK userVisitPK, CreateLotAliasTypeDescriptionForm form);
211
212    CommandResult<GetLotAliasTypeDescriptionResult> getLotAliasTypeDescription(UserVisitPK userVisitPK, GetLotAliasTypeDescriptionForm form);
213
214    CommandResult<GetLotAliasTypeDescriptionsResult> getLotAliasTypeDescriptions(UserVisitPK userVisitPK, GetLotAliasTypeDescriptionsForm form);
215
216    CommandResult<EditLotAliasTypeDescriptionResult> editLotAliasTypeDescription(UserVisitPK userVisitPK, EditLotAliasTypeDescriptionForm form);
217
218    CommandResult<VoidResult> deleteLotAliasTypeDescription(UserVisitPK userVisitPK, DeleteLotAliasTypeDescriptionForm form);
219
220    // --------------------------------------------------------------------------------
221    //   Lot Aliases
222    // --------------------------------------------------------------------------------
223
224    CommandResult<VoidResult> createLotAlias(UserVisitPK userVisitPK, CreateLotAliasForm form);
225
226    CommandResult<GetLotAliasResult> getLotAlias(UserVisitPK userVisitPK, GetLotAliasForm form);
227
228    CommandResult<GetLotAliasesResult> getLotAliases(UserVisitPK userVisitPK, GetLotAliasesForm form);
229
230    CommandResult<EditLotAliasResult> editLotAlias(UserVisitPK userVisitPK, EditLotAliasForm form);
231
232    CommandResult<VoidResult> deleteLotAlias(UserVisitPK userVisitPK, DeleteLotAliasForm form);
233
234    // --------------------------------------------------------------------------------
235    //   Party Inventory Levels
236    // --------------------------------------------------------------------------------
237    
238    CommandResult<VoidResult> createPartyInventoryLevel(UserVisitPK userVisitPK, CreatePartyInventoryLevelForm form);
239    
240    CommandResult<GetPartyInventoryLevelResult> getPartyInventoryLevel(UserVisitPK userVisitPK, GetPartyInventoryLevelForm form);
241    
242    CommandResult<GetPartyInventoryLevelsResult> getPartyInventoryLevels(UserVisitPK userVisitPK, GetPartyInventoryLevelsForm form);
243    
244    CommandResult<EditPartyInventoryLevelResult> editPartyInventoryLevel(UserVisitPK userVisitPK, EditPartyInventoryLevelForm form);
245    
246    CommandResult<VoidResult> deletePartyInventoryLevel(UserVisitPK userVisitPK, DeletePartyInventoryLevelForm form);
247    
248    // --------------------------------------------------------------------------------
249    //   Allocation Priorities
250    // --------------------------------------------------------------------------------
251
252    CommandResult<CreateAllocationPriorityResult> createAllocationPriority(UserVisitPK userVisitPK, CreateAllocationPriorityForm form);
253
254    CommandResult<GetAllocationPriorityChoicesResult> getAllocationPriorityChoices(UserVisitPK userVisitPK, GetAllocationPriorityChoicesForm form);
255
256    CommandResult<GetAllocationPriorityResult> getAllocationPriority(UserVisitPK userVisitPK, GetAllocationPriorityForm form);
257
258    CommandResult<GetAllocationPrioritiesResult> getAllocationPriorities(UserVisitPK userVisitPK, GetAllocationPrioritiesForm form);
259
260    CommandResult<VoidResult> setDefaultAllocationPriority(UserVisitPK userVisitPK, SetDefaultAllocationPriorityForm form);
261
262    CommandResult<EditAllocationPriorityResult> editAllocationPriority(UserVisitPK userVisitPK, EditAllocationPriorityForm form);
263
264    CommandResult<VoidResult> deleteAllocationPriority(UserVisitPK userVisitPK, DeleteAllocationPriorityForm form);
265
266    // --------------------------------------------------------------------------------
267    //   Allocation Priority Descriptions
268    // --------------------------------------------------------------------------------
269
270    CommandResult<VoidResult> createAllocationPriorityDescription(UserVisitPK userVisitPK, CreateAllocationPriorityDescriptionForm form);
271
272    CommandResult<GetAllocationPriorityDescriptionResult> getAllocationPriorityDescription(UserVisitPK userVisitPK, GetAllocationPriorityDescriptionForm form);
273
274    CommandResult<GetAllocationPriorityDescriptionsResult> getAllocationPriorityDescriptions(UserVisitPK userVisitPK, GetAllocationPriorityDescriptionsForm form);
275
276    CommandResult<EditAllocationPriorityDescriptionResult> editAllocationPriorityDescription(UserVisitPK userVisitPK, EditAllocationPriorityDescriptionForm form);
277
278    CommandResult<VoidResult> deleteAllocationPriorityDescription(UserVisitPK userVisitPK, DeleteAllocationPriorityDescriptionForm form);
279
280    // -------------------------------------------------------------------------
281    //   Inventory Adjustment Types
282    // -------------------------------------------------------------------------
283
284    CommandResult<CreateInventoryAdjustmentTypeResult> createInventoryAdjustmentType(UserVisitPK userVisitPK, CreateInventoryAdjustmentTypeForm form);
285
286    CommandResult<GetInventoryAdjustmentTypesResult> getInventoryAdjustmentTypes(UserVisitPK userVisitPK, GetInventoryAdjustmentTypesForm form);
287
288    CommandResult<GetInventoryAdjustmentTypeResult> getInventoryAdjustmentType(UserVisitPK userVisitPK, GetInventoryAdjustmentTypeForm form);
289
290    CommandResult<GetInventoryAdjustmentTypeChoicesResult> getInventoryAdjustmentTypeChoices(UserVisitPK userVisitPK, GetInventoryAdjustmentTypeChoicesForm form);
291
292    CommandResult<VoidResult> setDefaultInventoryAdjustmentType(UserVisitPK userVisitPK, SetDefaultInventoryAdjustmentTypeForm form);
293
294    CommandResult<EditInventoryAdjustmentTypeResult> editInventoryAdjustmentType(UserVisitPK userVisitPK, EditInventoryAdjustmentTypeForm form);
295
296    CommandResult<VoidResult> deleteInventoryAdjustmentType(UserVisitPK userVisitPK, DeleteInventoryAdjustmentTypeForm form);
297
298    // -------------------------------------------------------------------------
299    //   Inventory Adjustment Type Descriptions
300    // -------------------------------------------------------------------------
301
302    CommandResult<VoidResult> createInventoryAdjustmentTypeDescription(UserVisitPK userVisitPK, CreateInventoryAdjustmentTypeDescriptionForm form);
303
304    CommandResult<GetInventoryAdjustmentTypeDescriptionsResult> getInventoryAdjustmentTypeDescriptions(UserVisitPK userVisitPK, GetInventoryAdjustmentTypeDescriptionsForm form);
305
306    CommandResult<EditInventoryAdjustmentTypeDescriptionResult> editInventoryAdjustmentTypeDescription(UserVisitPK userVisitPK, EditInventoryAdjustmentTypeDescriptionForm form);
307
308    CommandResult<VoidResult> deleteInventoryAdjustmentTypeDescription(UserVisitPK userVisitPK, DeleteInventoryAdjustmentTypeDescriptionForm form);
309    
310    // -------------------------------------------------------------------------
311    //   Inventory Transaction Types
312    // -------------------------------------------------------------------------
313
314    CommandResult<CreateInventoryTransactionTypeResult> createInventoryTransactionType(UserVisitPK userVisitPK, CreateInventoryTransactionTypeForm form);
315
316    CommandResult<GetInventoryTransactionTypesResult> getInventoryTransactionTypes(UserVisitPK userVisitPK, GetInventoryTransactionTypesForm form);
317
318    CommandResult<GetInventoryTransactionTypeResult> getInventoryTransactionType(UserVisitPK userVisitPK, GetInventoryTransactionTypeForm form);
319
320    CommandResult<GetInventoryTransactionTypeChoicesResult> getInventoryTransactionTypeChoices(UserVisitPK userVisitPK, GetInventoryTransactionTypeChoicesForm form);
321
322    CommandResult<VoidResult> setDefaultInventoryTransactionType(UserVisitPK userVisitPK, SetDefaultInventoryTransactionTypeForm form);
323
324    CommandResult<EditInventoryTransactionTypeResult> editInventoryTransactionType(UserVisitPK userVisitPK, EditInventoryTransactionTypeForm form);
325
326    CommandResult<VoidResult> deleteInventoryTransactionType(UserVisitPK userVisitPK, DeleteInventoryTransactionTypeForm form);
327
328    // -------------------------------------------------------------------------
329    //   Inventory Transaction Type Descriptions
330    // -------------------------------------------------------------------------
331
332    CommandResult<VoidResult> createInventoryTransactionTypeDescription(UserVisitPK userVisitPK, CreateInventoryTransactionTypeDescriptionForm form);
333
334    CommandResult<GetInventoryTransactionTypeDescriptionsResult> getInventoryTransactionTypeDescriptions(UserVisitPK userVisitPK, GetInventoryTransactionTypeDescriptionsForm form);
335
336    CommandResult<EditInventoryTransactionTypeDescriptionResult> editInventoryTransactionTypeDescription(UserVisitPK userVisitPK, EditInventoryTransactionTypeDescriptionForm form);
337
338    CommandResult<VoidResult> deleteInventoryTransactionTypeDescription(UserVisitPK userVisitPK, DeleteInventoryTransactionTypeDescriptionForm form);
339
340}