wms-be/modules/category/query/category_query.go

31 lines
713 B
Go

package query
import (
"gorm.io/gorm"
)
type CategoryFilter struct {
Name string `form:"name"`
SearchKey string `form:"search_key"`
ClientID string `form:"client_id"`
IsActive *bool `form:"is_active"`
PerPage int `form:"per_page"`
Page int `form:"page"`
}
func ApplyCategoryFilters(db *gorm.DB, filter CategoryFilter) *gorm.DB {
if filter.Name != "" {
db = db.Where("name ILIKE ?", "%"+filter.Name+"%")
}
if filter.SearchKey != "" {
db = db.Where("search_key ILIKE ?", "%"+filter.SearchKey+"%")
}
if filter.ClientID != "" {
db = db.Where("client_id = ?", filter.ClientID)
}
if filter.IsActive != nil {
db = db.Where("is_active = ?", *filter.IsActive)
}
return db
}