This commit is contained in:
@@ -22,19 +22,10 @@ export interface PaginationParams {
|
||||
|
||||
// 分页响应数据
|
||||
export interface PaginationData<T> {
|
||||
items: T[] // 后端实际返回的是 items,不是 records
|
||||
total: number
|
||||
size: number
|
||||
page: number // 后端返回的是 page,不是 current
|
||||
pages?: number
|
||||
}
|
||||
|
||||
// 新版分页响应数据(使用 list 字段)
|
||||
export interface PaginationDataV2<T> {
|
||||
list: T[] // 新版API使用 list 字段
|
||||
total: number
|
||||
page_size: number
|
||||
page: number
|
||||
items: T[] // 数据列表
|
||||
total: number // 总数
|
||||
page_size: number // 每页数量
|
||||
page: number // 当前页
|
||||
total_pages: number // 总页数
|
||||
}
|
||||
|
||||
@@ -43,11 +34,6 @@ export interface PaginationResponse<T = any> extends BaseResponse {
|
||||
data: PaginationData<T>
|
||||
}
|
||||
|
||||
// 新版分页响应(使用 list 字段)
|
||||
export interface PaginationResponseV2<T = any> extends BaseResponse {
|
||||
data: PaginationDataV2<T>
|
||||
}
|
||||
|
||||
// 列表响应
|
||||
export interface ListResponse<T = any> extends BaseResponse {
|
||||
data: T[]
|
||||
|
||||
@@ -86,6 +86,15 @@ export interface UpdatePackageSeriesStatusRequest {
|
||||
|
||||
// ==================== 套餐管理 ====================
|
||||
|
||||
/**
|
||||
* 返佣档位信息
|
||||
*/
|
||||
export interface CommissionTierInfo {
|
||||
current_rate?: string // 当前返佣比例
|
||||
next_rate?: string // 下一档位返佣比例
|
||||
next_threshold?: number | null // 下一档位阈值
|
||||
}
|
||||
|
||||
/**
|
||||
* 套餐响应
|
||||
*/
|
||||
@@ -93,22 +102,28 @@ export interface PackageResponse {
|
||||
id: number
|
||||
package_code: string
|
||||
package_name: string
|
||||
series_id: number
|
||||
series_name?: string
|
||||
package_type: string // 'formal':正式套餐, 'addon':加油包
|
||||
data_type: string // 'real':真实流量, 'virtual':虚拟流量
|
||||
real_data_mb: number // 真流量额度(MB)
|
||||
virtual_data_mb: number // 虚流量额度(MB)
|
||||
duration_months: number // 有效期(月)
|
||||
price: number // 价格(分)
|
||||
cost_price: number // 成本价(分)
|
||||
suggested_retail_price: number // 建议零售价(分)
|
||||
enable_virtual_data: boolean // 是否启用虚流量
|
||||
shelf_status: number // 上架状态 (1:上架, 2:下架)
|
||||
status: number // 状态 (1:启用, 2:禁用)
|
||||
series_id: number | null
|
||||
series_name?: string | null
|
||||
package_type: string // 'formal':正式套餐, 'addon':附加套餐
|
||||
calendar_type?: string // 套餐周期类型 (natural_month:自然月, by_day:按天)
|
||||
duration_days?: number | null // 套餐天数(calendar_type=by_day时有值)
|
||||
duration_months?: number // 套餐时长(月数)
|
||||
data_reset_cycle?: string // 流量重置周期 (daily:每日, monthly:每月, yearly:每年, none:不重置)
|
||||
real_data_mb?: number // 真流量额度(MB)
|
||||
virtual_data_mb?: number // 虚流量额度(MB)
|
||||
enable_virtual_data?: boolean // 是否启用虚流量
|
||||
enable_realname_activation?: boolean // 是否启用实名激活 (true:需实名后激活, false:立即激活)
|
||||
cost_price?: number // 成本价(分)
|
||||
suggested_retail_price?: number // 建议零售价(分)
|
||||
current_commission_rate?: string // 当前返佣比例(仅代理用户可见)
|
||||
one_time_commission_amount?: number | null // 一次性佣金金额(分,代理视角)
|
||||
profit_margin?: number | null // 利润空间(分,仅代理用户可见)
|
||||
tier_info?: CommissionTierInfo // 返佣档位信息
|
||||
shelf_status?: number // 上架状态 (1:上架, 2:下架)
|
||||
status?: number // 状态 (1:启用, 2:禁用)
|
||||
description?: string
|
||||
created_at: string
|
||||
updated_at: string
|
||||
created_at?: string
|
||||
updated_at?: string
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -129,30 +144,37 @@ export interface PackageQueryParams extends PaginationParams {
|
||||
export interface CreatePackageRequest {
|
||||
package_code: string // 套餐编码,必填
|
||||
package_name: string // 套餐名称,必填
|
||||
series_id: number // 所属系列ID,必填
|
||||
package_type: string // 套餐类型,必填
|
||||
data_type: string // 流量类型,必填
|
||||
real_data_mb: number // 真流量额度(MB),必填
|
||||
virtual_data_mb: number // 虚流量额度(MB),必填
|
||||
duration_months: number // 有效期(月),必填
|
||||
price: number // 价格(分),必填
|
||||
description?: string // 描述,可选
|
||||
series_id?: number | null // 所属系列ID,可选
|
||||
package_type: string // 套餐类型,必填 (formal:正式套餐, addon:附加套餐)
|
||||
calendar_type?: string | null // 套餐周期类型 (natural_month:自然月, by_day:按天),可选
|
||||
duration_days?: number | null // 套餐天数(calendar_type=by_day时必填),可选
|
||||
duration_months: number // 套餐时长(月数),必填
|
||||
data_reset_cycle?: string | null // 流量重置周期 (daily:每日, monthly:每月, yearly:每年, none:不重置),可选
|
||||
real_data_mb?: number | null // 真流量额度(MB),可选
|
||||
virtual_data_mb?: number | null // 虚流量额度(MB),可选
|
||||
enable_virtual_data?: boolean // 是否启用虚流量,可选
|
||||
enable_realname_activation?: boolean | null // 是否启用实名激活 (true:需实名后激活, false:立即激活),可选
|
||||
cost_price: number // 成本价(分),必填
|
||||
suggested_retail_price?: number | null // 建议零售价(分),可选
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新套餐请求
|
||||
*/
|
||||
export interface UpdatePackageRequest {
|
||||
package_code?: string
|
||||
package_name?: string
|
||||
series_id?: number
|
||||
package_type?: string
|
||||
data_type?: string
|
||||
real_data_mb?: number
|
||||
virtual_data_mb?: number
|
||||
duration_months?: number
|
||||
price?: number
|
||||
description?: string
|
||||
package_name?: string | null // 套餐名称,可选
|
||||
series_id?: number | null // 所属系列ID,可选
|
||||
package_type?: string | null // 套餐类型,可选 (formal:正式套餐, addon:附加套餐)
|
||||
calendar_type?: string | null // 套餐周期类型 (natural_month:自然月, by_day:按天),可选
|
||||
duration_days?: number | null // 套餐天数(calendar_type=by_day时必填),可选
|
||||
duration_months?: number | null // 套餐时长(月数),可选
|
||||
data_reset_cycle?: string | null // 流量重置周期 (daily:每日, monthly:每月, yearly:每年, none:不重置),可选
|
||||
real_data_mb?: number | null // 真流量额度(MB),可选
|
||||
virtual_data_mb?: number | null // 虚流量额度(MB),可选
|
||||
enable_virtual_data?: boolean | null // 是否启用虚流量,可选
|
||||
enable_realname_activation?: boolean | null // 是否启用实名激活,可选
|
||||
cost_price?: number | null // 成本价(分),可选
|
||||
suggested_retail_price?: number | null // 建议零售价(分),可选
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user