228 lines
8.8 KiB
Go
228 lines
8.8 KiB
Go
package v1
|
||
|
||
// VIP等级管理相关请求和响应结构
|
||
|
||
// VipLevelCreateReq 创建VIP等级请求
|
||
type VipLevelCreateReq struct {
|
||
Name string `json:"name" v:"required|length:1,50#VIP等级名称不能为空|VIP等级名称长度为1-50个字符"`
|
||
Level int `json:"level" v:"required|min:1#VIP等级不能为空|VIP等级必须大于0"`
|
||
Duration int `json:"duration" v:"required|min:1#有效期不能为空|有效期必须大于0天"`
|
||
Price string `json:"price" v:"required|regex:^\\d+(\\.\\d{1,2})?$#价格不能为空|价格格式不正确"`
|
||
Description string `json:"description" v:"max:500#描述长度不能超过500个字符"`
|
||
Features string `json:"features" v:"max:1000#特权描述长度不能超过1000个字符"`
|
||
Sort int `json:"sort" v:"min:0#排序值不能小于0"`
|
||
Status int `json:"status" v:"in:0,1#状态值只能为0或1"`
|
||
}
|
||
|
||
// VipLevelCreateRes 创建VIP等级响应
|
||
type VipLevelCreateRes struct {
|
||
Id uint `json:"id"`
|
||
}
|
||
|
||
// VipLevelUpdateReq 更新VIP等级请求
|
||
type VipLevelUpdateReq struct {
|
||
Id uint `json:"id" v:"required|min:1#VIP等级ID不能为空"`
|
||
Name string `json:"name" v:"required|length:1,50#VIP等级名称不能为空|VIP等级名称长度为1-50个字符"`
|
||
Level int `json:"level" v:"required|min:1#VIP等级不能为空|VIP等级必须大于0"`
|
||
Duration int `json:"duration" v:"required|min:1#有效期不能为空|有效期必须大于0天"`
|
||
Price string `json:"price" v:"required|regex:^\\d+(\\.\\d{1,2})?$#价格不能为空|价格格式不正确"`
|
||
Description string `json:"description" v:"max:500#描述长度不能超过500个字符"`
|
||
Features string `json:"features" v:"max:1000#特权描述长度不能超过1000个字符"`
|
||
Sort int `json:"sort" v:"min:0#排序值不能小于0"`
|
||
Status int `json:"status" v:"in:0,1#状态值只能为0或1"`
|
||
}
|
||
|
||
// VipLevelListReq 获取VIP等级列表请求
|
||
type VipLevelListReq struct {
|
||
Page int `json:"page" v:"min:1#页码必须大于0"`
|
||
Size int `json:"size" v:"min:1|max:100#每页数量必须大于0|每页数量不能超过100"`
|
||
Status int `json:"status" v:"in:-1,0,1#状态值只能为-1,0,1"`
|
||
Keyword string `json:"keyword" v:"max:50#关键词长度不能超过50个字符"`
|
||
MinPrice string `json:"min_price" v:"regex:^\\d*(\\.\\d{1,2})?$#最低价格格式不正确"`
|
||
MaxPrice string `json:"max_price" v:"regex:^\\d*(\\.\\d{1,2})?$#最高价格格式不正确"`
|
||
}
|
||
|
||
// VipLevelListRes 获取VIP等级列表响应
|
||
type VipLevelListRes struct {
|
||
List []VipLevelItem `json:"list"`
|
||
Total int `json:"total"`
|
||
Page int `json:"page"`
|
||
Size int `json:"size"`
|
||
}
|
||
|
||
// VipLevelItem VIP等级列表项
|
||
type VipLevelItem struct {
|
||
Id uint `json:"id"`
|
||
Name string `json:"name"`
|
||
Level int `json:"level"`
|
||
Duration int `json:"duration"`
|
||
Price string `json:"price"`
|
||
Description string `json:"description"`
|
||
Features string `json:"features"`
|
||
Sort int `json:"sort"`
|
||
Status int `json:"status"`
|
||
CreatedAt string `json:"created_at"`
|
||
UpdatedAt string `json:"updated_at"`
|
||
}
|
||
|
||
// VipLevelDetailReq 获取VIP等级详情请求
|
||
type VipLevelDetailReq struct {
|
||
Id uint `json:"id" v:"required|min:1#VIP等级ID不能为空"`
|
||
}
|
||
|
||
// VipLevelDetailRes 获取VIP等级详情响应
|
||
type VipLevelDetailRes struct {
|
||
VipLevel VipLevelDetail `json:"vip_level"`
|
||
}
|
||
|
||
// VipLevelDetail VIP等级详情
|
||
type VipLevelDetail struct {
|
||
Id uint `json:"id"`
|
||
Name string `json:"name"`
|
||
Level int `json:"level"`
|
||
Duration int `json:"duration"`
|
||
Price string `json:"price"`
|
||
Description string `json:"description"`
|
||
Features string `json:"features"`
|
||
Sort int `json:"sort"`
|
||
Status int `json:"status"`
|
||
CreatedAt string `json:"created_at"`
|
||
UpdatedAt string `json:"updated_at"`
|
||
}
|
||
|
||
// VipLevelDeleteReq 删除VIP等级请求
|
||
type VipLevelDeleteReq struct {
|
||
Id uint `json:"id" v:"required|min:1#VIP等级ID不能为空"`
|
||
}
|
||
|
||
// VipLevelStatusReq 更新VIP等级状态请求
|
||
type VipLevelStatusReq struct {
|
||
Id uint `json:"id" v:"required|min:1#VIP等级ID不能为空"`
|
||
Status int `json:"status" v:"in:0,1#状态值只能为0或1"`
|
||
}
|
||
|
||
// VipLevelBatchStatusReq 批量更新VIP等级状态请求
|
||
type VipLevelBatchStatusReq struct {
|
||
Ids []uint `json:"ids" v:"required|min:1#VIP等级ID列表不能为空"`
|
||
Status int `json:"status" v:"in:0,1#状态值只能为0或1"`
|
||
}
|
||
|
||
// VipLevelSortReq 更新VIP等级排序请求
|
||
type VipLevelSortReq struct {
|
||
Id uint `json:"id" v:"required|min:1#VIP等级ID不能为空"`
|
||
Sort int `json:"sort" v:"min:0#排序值不能小于0"`
|
||
}
|
||
|
||
// VipLevelBatchSortReq 批量更新VIP等级排序请求
|
||
type VipLevelBatchSortReq struct {
|
||
Items []VipLevelSortItem `json:"items" v:"required|min:1#排序项目不能为空"`
|
||
}
|
||
|
||
// VipLevelSortItem 排序项目
|
||
type VipLevelSortItem struct {
|
||
Id uint `json:"id" v:"required|min:1#VIP等级ID不能为空"`
|
||
Sort int `json:"sort" v:"min:0#排序值不能小于0"`
|
||
}
|
||
|
||
// VipLevelActiveListReq 获取有效VIP等级列表请求(用户端)
|
||
type VipLevelActiveListReq struct {
|
||
// 无需参数,直接获取所有有效的VIP等级
|
||
}
|
||
|
||
// VipLevelActiveListRes 获取有效VIP等级列表响应(用户端)
|
||
type VipLevelActiveListRes struct {
|
||
List []VipLevelActiveItem `json:"list"`
|
||
}
|
||
|
||
// VipLevelActiveItem 有效VIP等级项(用户端)
|
||
type VipLevelActiveItem struct {
|
||
Id uint `json:"id"`
|
||
Name string `json:"name"`
|
||
Level int `json:"level"`
|
||
Duration int `json:"duration"`
|
||
Price string `json:"price"`
|
||
Description string `json:"description"`
|
||
Features string `json:"features"`
|
||
IsRecommend bool `json:"is_recommend"` // 是否推荐
|
||
}
|
||
|
||
// VipLevelStatisticsReq 获取VIP等级统计请求
|
||
type VipLevelStatisticsReq struct {
|
||
StartDate string `json:"start_date" v:"date#开始日期格式不正确"`
|
||
EndDate string `json:"end_date" v:"date#结束日期格式不正确"`
|
||
}
|
||
|
||
// VipLevelStatisticsRes 获取VIP等级统计响应
|
||
type VipLevelStatisticsRes struct {
|
||
TotalLevels int `json:"total_levels"` // 总等级数
|
||
ActiveLevels int `json:"active_levels"` // 有效等级数
|
||
TotalSales string `json:"total_sales"` // 总销售额
|
||
TotalOrders int `json:"total_orders"` // 总订单数
|
||
LevelStats []VipLevelStatItem `json:"level_stats"` // 各等级统计
|
||
SalesChart []VipLevelSalesChartItem `json:"sales_chart"` // 销售图表数据
|
||
PopularLevels []VipLevelPopularItem `json:"popular_levels"` // 热门等级
|
||
}
|
||
|
||
// VipLevelStatItem VIP等级统计项
|
||
type VipLevelStatItem struct {
|
||
Id uint `json:"id"`
|
||
Name string `json:"name"`
|
||
Level int `json:"level"`
|
||
OrderCount int `json:"order_count"` // 订单数量
|
||
SalesAmount string `json:"sales_amount"` // 销售金额
|
||
UserCount int `json:"user_count"` // 用户数量
|
||
}
|
||
|
||
// VipLevelSalesChartItem VIP等级销售图表项
|
||
type VipLevelSalesChartItem struct {
|
||
Date string `json:"date"` // 日期
|
||
Amount string `json:"amount"` // 销售金额
|
||
Count int `json:"count"` // 订单数量
|
||
}
|
||
|
||
// VipLevelPopularItem 热门VIP等级项
|
||
type VipLevelPopularItem struct {
|
||
Id uint `json:"id"`
|
||
Name string `json:"name"`
|
||
Level int `json:"level"`
|
||
Price string `json:"price"`
|
||
OrderCount int `json:"order_count"`
|
||
Percentage string `json:"percentage"` // 占比
|
||
}
|
||
|
||
// VipLevelCopyReq 复制VIP等级请求
|
||
type VipLevelCopyReq struct {
|
||
SourceId uint `json:"source_id" v:"required|min:1#源VIP等级ID不能为空"`
|
||
Name string `json:"name" v:"required|length:1,50#VIP等级名称不能为空|VIP等级名称长度为1-50个字符"`
|
||
Level int `json:"level" v:"required|min:1#VIP等级不能为空|VIP等级必须大于0"`
|
||
}
|
||
|
||
// VipLevelCopyRes 复制VIP等级响应
|
||
type VipLevelCopyRes struct {
|
||
Id uint `json:"id"`
|
||
}
|
||
|
||
// VipLevelExportReq 导出VIP等级请求
|
||
type VipLevelExportReq struct {
|
||
Status int `json:"status" v:"in:-1,0,1#状态值只能为-1,0,1"`
|
||
StartDate string `json:"start_date" v:"date#开始日期格式不正确"`
|
||
EndDate string `json:"end_date" v:"date#结束日期格式不正确"`
|
||
}
|
||
|
||
// VipLevelExportRes 导出VIP等级响应
|
||
type VipLevelExportRes struct {
|
||
FileUrl string `json:"file_url"` // 导出文件URL
|
||
}
|
||
|
||
// VipLevelImportReq 导入VIP等级请求
|
||
type VipLevelImportReq struct {
|
||
FileUrl string `json:"file_url" v:"required|url#文件URL不能为空|文件URL格式不正确"`
|
||
}
|
||
|
||
// VipLevelImportRes 导入VIP等级响应
|
||
type VipLevelImportRes struct {
|
||
SuccessCount int `json:"success_count"` // 成功导入数量
|
||
FailCount int `json:"fail_count"` // 失败数量
|
||
FailReasons []string `json:"fail_reasons"` // 失败原因
|
||
}
|