54 lines
2.9 KiB
Go
54 lines
2.9 KiB
Go
package queries
|
|
|
|
// ListProductsQuery 产品列表查询
|
|
type ListProductsQuery struct {
|
|
Page int `form:"page" binding:"omitempty,min=1" comment:"页码"`
|
|
PageSize int `form:"page_size" binding:"omitempty,min=1,max=100" comment:"每页数量"`
|
|
Keyword string `form:"keyword" binding:"omitempty,max=100" comment:"搜索关键词"`
|
|
CategoryID string `form:"category_id" binding:"omitempty,uuid" comment:"分类ID"`
|
|
MinPrice *float64 `form:"min_price" binding:"omitempty,min=0" comment:"最低价格"`
|
|
MaxPrice *float64 `form:"max_price" binding:"omitempty,min=0" comment:"最高价格"`
|
|
IsEnabled *bool `form:"is_enabled" comment:"是否启用"`
|
|
IsVisible *bool `form:"is_visible" comment:"是否展示"`
|
|
IsPackage *bool `form:"is_package" comment:"是否组合包"`
|
|
SortBy string `form:"sort_by" binding:"omitempty,oneof=name code price created_at updated_at" comment:"排序字段"`
|
|
SortOrder string `form:"sort_order" binding:"omitempty,sort_order" comment:"排序方向"`
|
|
}
|
|
|
|
// SearchProductsQuery 产品搜索查询
|
|
type SearchProductsQuery struct {
|
|
Page int `form:"page" binding:"omitempty,min=1" comment:"页码"`
|
|
PageSize int `form:"page_size" binding:"omitempty,min=1,max=100" comment:"每页数量"`
|
|
Keyword string `form:"keyword" binding:"omitempty,max=100" comment:"搜索关键词"`
|
|
CategoryID string `form:"category_id" binding:"omitempty,uuid" comment:"分类ID"`
|
|
MinPrice *float64 `form:"min_price" binding:"omitempty,min=0" comment:"最低价格"`
|
|
MaxPrice *float64 `form:"max_price" binding:"omitempty,min=0" comment:"最高价格"`
|
|
IsEnabled *bool `form:"is_enabled" comment:"是否启用"`
|
|
IsVisible *bool `form:"is_visible" comment:"是否展示"`
|
|
IsPackage *bool `form:"is_package" comment:"是否组合包"`
|
|
SortBy string `form:"sort_by" binding:"omitempty,oneof=name code price created_at updated_at" comment:"排序字段"`
|
|
SortOrder string `form:"sort_order" binding:"omitempty,sort_order" comment:"排序方向"`
|
|
}
|
|
|
|
// GetProductQuery 获取产品详情查询
|
|
type GetProductQuery struct {
|
|
ID string `uri:"id" binding:"omitempty,uuid" comment:"产品ID"`
|
|
Code string `form:"code" binding:"omitempty,product_code" comment:"产品编号"`
|
|
}
|
|
|
|
// GetProductDetailQuery 获取产品详情查询(支持可选文档)
|
|
type GetProductDetailQuery struct {
|
|
ID string `uri:"id" binding:"omitempty,uuid" comment:"产品ID"`
|
|
Code string `form:"code" binding:"omitempty,product_code" comment:"产品编号"`
|
|
WithDocument *bool `form:"with_document" comment:"是否包含文档信息"`
|
|
}
|
|
|
|
// GetProductsByIDsQuery 根据ID列表获取产品查询
|
|
type GetProductsByIDsQuery struct {
|
|
IDs []string `form:"ids" binding:"required,dive,uuid" comment:"产品ID列表"`
|
|
}
|
|
|
|
// GetSubscribableProductsQuery 获取可订阅产品查询
|
|
type GetSubscribableProductsQuery struct {
|
|
UserID string `form:"user_id" binding:"required" comment:"用户ID"`
|
|
} |