diff --git a/internal/processor/ingredient_processor.go b/internal/processor/ingredient_processor.go index 7e951c3..7655229 100644 --- a/internal/processor/ingredient_processor.go +++ b/internal/processor/ingredient_processor.go @@ -180,7 +180,10 @@ func (p *IngredientProcessorImpl) UpdateIngredient(ctx context.Context, id uuid. } // Update fields - existingIngredient.OutletID = req.OutletID + if req.OutletID != nil { + existingIngredient.OutletID = req.OutletID + } + existingIngredient.Name = req.Name existingIngredient.UnitID = req.UnitID existingIngredient.Cost = req.Cost diff --git a/internal/repository/ingredient_repository.go b/internal/repository/ingredient_repository.go index 31e618e..6682fa7 100644 --- a/internal/repository/ingredient_repository.go +++ b/internal/repository/ingredient_repository.go @@ -66,7 +66,11 @@ func (r *IngredientRepository) GetAll(ctx context.Context, organizationID uuid.U } func (r *IngredientRepository) Update(ctx context.Context, ingredient *entities.Ingredient) error { - result := r.db.WithContext(ctx).Where("id = ? AND organization_id = ?", ingredient.ID, ingredient.OrganizationID).Save(ingredient) + result := r.db.WithContext(ctx). + Model(&entities.Ingredient{}). + Where("id = ? AND organization_id = ?", ingredient.ID, ingredient.OrganizationID). + Select("outlet_id", "name", "unit_id", "cost", "stock", "is_semi_finished", "is_active", "metadata", "updated_at"). + Updates(ingredient) if result.Error != nil { return result.Error }