From 0f435049cb3cc6900d881c5dce43bec3a1e60e2e Mon Sep 17 00:00:00 2001 From: Vidhu Kant Sharma Date: Mon, 13 Oct 2025 01:32:27 +0530 Subject: added item variants --- item/hooks.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'item/hooks.go') diff --git a/item/hooks.go b/item/hooks.go index cd8d47c..e05a6cb 100644 --- a/item/hooks.go +++ b/item/hooks.go @@ -19,6 +19,7 @@ package item import ( "gorm.io/gorm" + "vidhukant.com/openbills/errors" ) func (i *SavedItem) BeforeSave(tx *gorm.DB) error { @@ -29,5 +30,28 @@ func (i *SavedItem) BeforeSave(tx *gorm.DB) error { return err } + if i.ID != 0 { + // delete all of this item's variants and save again + err = db.Where("saved_item_id = ?", i.ID).Delete(&ItemVariant{}).Error + if err != nil { + return err + } + } + + return nil +} + +func (i *SavedItem) BeforeDelete(tx *gorm.DB) error { + // if ID is 0, item won't be deleted + if i.ID == 0 { + return errors.ErrNoWhereCondition + } + + // delete all of this item's variants before deleting this item + err := db.Where("saved_item_id = ?", i.ID).Delete(&ItemVariant{}).Error + if err != nil { + return err + } + return nil } -- cgit v1.2.3