mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 13:31:56 +00:00
[FEAT/BE] add coloumn usage_qty and change standart ensure product
This commit is contained in:
@@ -21,9 +21,7 @@ type productWarehouseExistsRepo interface {
|
||||
}
|
||||
|
||||
type recordingValidationRepo interface {
|
||||
ValidateFeedProductWarehouses(ctx context.Context, ids []uint) (uint, error)
|
||||
ValidateEggProductWarehouses(ctx context.Context, ids []uint) (uint, error)
|
||||
ValidateDepletionProductWarehouses(ctx context.Context, ids []uint) (uint, error)
|
||||
ValidateProductWarehousesByFlags(ctx context.Context, ids []uint, flags []string) (uint, error)
|
||||
}
|
||||
|
||||
func EnsureProductWarehousesExist(ctx context.Context, repo productWarehouseExistsRepo, ids []uint) error {
|
||||
@@ -42,13 +40,11 @@ func EnsureProductWarehousesExist(ctx context.Context, repo productWarehouseExis
|
||||
return nil
|
||||
}
|
||||
|
||||
type pwValidatorFunc func(ctx context.Context, ids []uint) (uint, error)
|
||||
|
||||
func ensureProductWarehouses(ctx context.Context, ids []uint, label string, validator pwValidatorFunc) error {
|
||||
if len(ids) == 0 || validator == nil {
|
||||
func EnsureProductWarehousesByFlags(ctx context.Context, repo recordingValidationRepo, ids []uint, flags []string, label string) error {
|
||||
if repo == nil || len(ids) == 0 {
|
||||
return nil
|
||||
}
|
||||
invalidID, err := validator(ctx, ids)
|
||||
invalidID, err := repo.ValidateProductWarehousesByFlags(ctx, ids, flags)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -73,25 +69,16 @@ func CollectWarehouseIDs[T any](items []T, getID idGetter[T]) []uint {
|
||||
return ids
|
||||
}
|
||||
|
||||
func EnsureFeedProductWarehouses(ctx context.Context, repo recordingValidationRepo, ids []uint) error {
|
||||
if repo == nil {
|
||||
return nil
|
||||
}
|
||||
return ensureProductWarehouses(ctx, ids, "feed", repo.ValidateFeedProductWarehouses)
|
||||
}
|
||||
|
||||
func EnsureEggProductWarehouses(ctx context.Context, repo recordingValidationRepo, ids []uint) error {
|
||||
if repo == nil {
|
||||
return nil
|
||||
}
|
||||
return ensureProductWarehouses(ctx, ids, "egg", repo.ValidateEggProductWarehouses)
|
||||
}
|
||||
|
||||
func EnsureDepletionProductWarehouses(ctx context.Context, repo recordingValidationRepo, ids []uint) error {
|
||||
if repo == nil {
|
||||
return nil
|
||||
}
|
||||
return ensureProductWarehouses(ctx, ids, "depletion", repo.ValidateDepletionProductWarehouses)
|
||||
func EnsureProductWarehousesByFlagsForItems[T any](
|
||||
ctx context.Context,
|
||||
repo recordingValidationRepo,
|
||||
items []T,
|
||||
getID idGetter[T],
|
||||
flags []string,
|
||||
label string,
|
||||
) error {
|
||||
ids := CollectWarehouseIDs(items, getID)
|
||||
return EnsureProductWarehousesByFlags(ctx, repo, ids, flags, label)
|
||||
}
|
||||
|
||||
func ComputeDepletionRate(prevRecording *entity.Recording, currentDepletion float64, totalChick int64) float64 {
|
||||
|
||||
Reference in New Issue
Block a user