package query import "gorm.io/gorm" type ZonaFilter struct { Name string `form:"name"` Code string `form:"code"` Type string `form:"type"` WarehouseID string `form:"warehouse_id"` ClientID string `form:"client_id"` PerPage int `form:"per_page"` Page int `form:"page"` } func ApplyZonaFilters(db *gorm.DB, filter ZonaFilter) *gorm.DB { if filter.Name != "" { db = db.Where("name ILIKE ?", "%"+filter.Name+"%") } if filter.Code != "" { db = db.Where("code ILIKE ?", "%"+filter.Code+"%") } if filter.Type != "" { db = db.Where("type = ?", filter.Type) } if filter.WarehouseID != "" { db = db.Where("warehouse_id = ?", filter.WarehouseID) } if filter.ClientID != "" { db = db.Where("client_id = ?", filter.ClientID) } return db }