package query import ( "gorm.io/gorm" ) type InventoryTransactionFilter struct { TransactionType string `form:"transaction_type"` ProductID string `form:"product_id"` AisleID string `form:"aisle_id"` ClientID string `form:"client_id"` InvReceiptID string `form:"inv_receipt_id"` InvIssueID string `form:"inv_issue_id"` InvMoveID string `form:"inv_move_id"` PerPage int `form:"per_page"` Page int `form:"page"` } func ApplyInventoryTransactionFilters(db *gorm.DB, filter InventoryTransactionFilter) *gorm.DB { if filter.TransactionType != "" { db = db.Where("transaction_type = ?", filter.TransactionType) } if filter.ProductID != "" { db = db.Where("product_id = ?", filter.ProductID) } if filter.AisleID != "" { db = db.Where("aisle_id = ?", filter.AisleID) } if filter.ClientID != "" { db = db.Where("client_id = ?", filter.ClientID) } if filter.InvReceiptID != "" { db = db.Where("inv_receipt_id = ?", filter.InvReceiptID) } if filter.InvIssueID != "" { db = db.Where("inv_issue_id = ?", filter.InvIssueID) } if filter.InvMoveID != "" { db = db.Where("inv_move_id = ?", filter.InvMoveID) } return db }