Files
junhong_cmp_fiber/internal/model/dto/client_asset_dto.go
huang 95b2334658
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m10s
feat: 资产套餐历史接口新增 package_type 和 status 筛选条件
GET /api/c/v1/asset/package-history 支持可选参数:
- package_type: formal(正式套餐) / addon(加油包)
- status: 0(待生效) / 1(生效中) / 2(已用完) / 3(已过期) / 4(已失效)
不传则返回全部,保持向后兼容。
2026-03-21 11:01:21 +08:00

89 lines
4.7 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package dto
// ========================================
// B1 资产信息
// ========================================
// AssetInfoRequest B1 资产信息请求
type AssetInfoRequest struct {
Identifier string `json:"identifier" query:"identifier" validate:"required,min=1,max=50" required:"true" minLength:"1" maxLength:"50" description:"资产标识符SN/IMEI/虚拟号/ICCID/MSISDN"`
}
// AssetInfoResponse B1 资产信息响应
type AssetInfoResponse struct {
AssetType string `json:"asset_type" description:"资产类型 (card:卡, device:设备)"`
AssetID uint `json:"asset_id" description:"资产ID"`
Identifier string `json:"identifier" description:"资产标识符"`
VirtualNo string `json:"virtual_no" description:"虚拟号"`
Status int `json:"status" description:"状态 (0:禁用, 1:启用)"`
RealNameStatus int `json:"real_name_status" description:"实名状态 (0:未实名, 1:已实名)"`
CarrierName string `json:"carrier_name" description:"运营商名称"`
Generation string `json:"generation" description:"制式"`
WalletBalance int64 `json:"wallet_balance" description:"钱包余额(分)"`
}
// ========================================
// B2 资产可购套餐列表
// ========================================
// AssetPackageListRequest B2 资产可购套餐列表请求
type AssetPackageListRequest struct {
Identifier string `json:"identifier" query:"identifier" validate:"required,min=1,max=50" required:"true" minLength:"1" maxLength:"50" description:"资产标识符SN/IMEI/虚拟号/ICCID/MSISDN"`
}
// ClientPackageItem B2 客户端套餐项
type ClientPackageItem struct {
PackageID uint `json:"package_id" description:"套餐ID"`
PackageName string `json:"package_name" description:"套餐名称"`
PackageType string `json:"package_type" description:"套餐类型 (formal:正式套餐, addon:加油包)"`
RetailPrice int64 `json:"retail_price" description:"零售价(分)"`
CostPrice int64 `json:"cost_price" description:"成本价(分)"`
ValidityDays int `json:"validity_days" description:"有效天数"`
IsAddon bool `json:"is_addon" description:"是否加油包"`
DataAllowance int64 `json:"data_allowance" description:"流量额度"`
DataUnit string `json:"data_unit" description:"流量单位"`
Description string `json:"description" description:"套餐说明"`
}
// AssetPackageListResponse B2 资产可购套餐列表响应
type AssetPackageListResponse struct {
Packages []ClientPackageItem `json:"packages" description:"套餐列表"`
}
// ========================================
// B3 资产套餐历史
// ========================================
// AssetPackageHistoryRequest B3 资产套餐历史请求
type AssetPackageHistoryRequest struct {
Identifier string `json:"identifier" query:"identifier" validate:"required,min=1,max=50" required:"true" minLength:"1" maxLength:"50" description:"资产标识符SN/IMEI/虚拟号/ICCID/MSISDN"`
PackageType *string `json:"package_type" query:"package_type" validate:"omitempty,oneof=formal addon" description:"套餐类型 (formal:正式套餐, addon:加油包)"`
Status *int `json:"status" query:"status" validate:"omitempty,min=0,max=4" minimum:"0" maximum:"4" description:"套餐状态 (0:待生效, 1:生效中, 2:已用完, 3:已过期, 4:已失效)"`
Page int `json:"page" query:"page" validate:"required,min=1" required:"true" minimum:"1" description:"页码"`
PageSize int `json:"page_size" query:"page_size" validate:"required,min=1,max=100" required:"true" minimum:"1" maximum:"100" description:"每页数量"`
}
// AssetPackageHistoryResponse B3 资产套餐历史响应
type AssetPackageHistoryResponse struct {
List []AssetPackageResponse `json:"list" description:"套餐历史列表"`
Total int64 `json:"total" description:"总数"`
Page int `json:"page" description:"页码"`
PageSize int `json:"page_size" description:"每页数量"`
}
// ========================================
// B4 资产刷新
// ========================================
// AssetRefreshRequest B4 资产刷新请求
type AssetRefreshRequest struct {
Identifier string `json:"identifier" validate:"required,min=1,max=50" required:"true" minLength:"1" maxLength:"50" description:"资产标识符SN/IMEI/虚拟号/ICCID/MSISDN"`
}
// AssetRefreshResponse B4 资产刷新响应
type AssetRefreshResponse struct {
RefreshType string `json:"refresh_type" description:"刷新类型 (card:卡, device:设备)"`
Accepted bool `json:"accepted" description:"是否已受理"`
CooldownSeconds int `json:"cooldown_seconds" description:"冷却秒数"`
}