29 lines
661 B
Go
29 lines
661 B
Go
package query
|
|
|
|
import "gorm.io/gorm"
|
|
|
|
type AisleFilter struct {
|
|
Name string `form:"name"`
|
|
Code string `form:"code"`
|
|
ZoneID string `form:"zone_id"`
|
|
ClientID string `form:"client_id"`
|
|
PerPage int `form:"per_page"`
|
|
Page int `form:"page"`
|
|
}
|
|
|
|
func ApplyAisleFilters(db *gorm.DB, filter AisleFilter) *gorm.DB {
|
|
if filter.Name != "" {
|
|
db = db.Where("name ILIKE ?", "%"+filter.Name+"%")
|
|
}
|
|
if filter.Code != "" {
|
|
db = db.Where("code ILIKE ?", "%"+filter.Code+"%")
|
|
}
|
|
if filter.ZoneID != "" {
|
|
db = db.Where("zone_id = ?", filter.ZoneID)
|
|
}
|
|
if filter.ClientID != "" {
|
|
db = db.Where("client_id = ?", filter.ClientID)
|
|
}
|
|
return db
|
|
}
|