package dto import "time" // AgentOpenAPICardQueryRequest 开放接口单卡查询请求 type AgentOpenAPICardQueryRequest struct { CardNo string `json:"card_no" query:"card_no" validate:"required,min=1,max=100" required:"true" minLength:"1" maxLength:"100" description:"卡标识(支持 ICCID、虚拟号、MSISDN)"` } // AgentOpenAPIPackageTrafficItem 开放接口套餐流量项 type AgentOpenAPIPackageTrafficItem struct { PackageCode string `json:"package_code" description:"套餐编码"` PackageName string `json:"package_name" description:"套餐名称"` SeriesName string `json:"series_name" description:"套餐系列名称"` PackageType string `json:"package_type" description:"套餐类型 (formal:正式套餐, addon:附加套餐)"` PackageTypeName string `json:"package_type_name" description:"套餐类型名称(中文)"` TotalFlowMB int64 `json:"total_flow_mb" description:"套餐总流量(MB)"` UsedFlowMB int64 `json:"used_flow_mb,omitempty" description:"套餐已用流量(MB,仅生效套餐返回)"` RemainingFlowMB int64 `json:"remaining_flow_mb,omitempty" description:"套餐剩余流量(MB,仅生效套餐返回)"` StartAt *time.Time `json:"start_at,omitempty" description:"套餐生效时间"` ExpiresAt *time.Time `json:"expires_at,omitempty" description:"套餐过期时间"` ValidDays int `json:"valid_days,omitempty" description:"套餐有效天数(待生效套餐返回)"` Priority int `json:"priority,omitempty" description:"生效优先级(数字越小优先级越高)"` } // AgentOpenAPICardTrafficResponse 开放接口卡流量响应 type AgentOpenAPICardTrafficResponse struct { CardNo string `json:"card_no" description:"卡标识"` ActiveRemainingFlowMB int64 `json:"active_remaining_flow_mb" description:"当前生效套餐剩余流量(MB)"` ActiveTotalFlowMB int64 `json:"active_total_flow_mb" description:"当前生效套餐总流量(MB)"` ActiveUsedFlowMB int64 `json:"active_used_flow_mb" description:"当前生效套餐已用流量(MB)"` ActivePackages []AgentOpenAPIPackageTrafficItem `json:"active_packages" description:"当前生效套餐列表"` PendingPackages []AgentOpenAPIPackageTrafficItem `json:"pending_packages" description:"待生效套餐列表"` ActiveExpiresAt *time.Time `json:"active_expires_at,omitempty" description:"当前生效套餐最晚过期时间"` } // AgentOpenAPICardStatusResponse 开放接口卡状态响应 type AgentOpenAPICardStatusResponse struct { CardNo string `json:"card_no" description:"卡标识"` CardStatus string `json:"card_status" description:"卡状态 (normal:正常, stopped:停机)"` CardStatusName string `json:"card_status_name" description:"卡状态名称(中文)"` StopReason string `json:"stop_reason" description:"停机原因"` StopReasonName string `json:"stop_reason_name" description:"停机原因名称(中文)"` } // AgentOpenAPIRealnameStatusResponse 开放接口实名状态响应 type AgentOpenAPIRealnameStatusResponse struct { CardNo string `json:"card_no" description:"卡标识"` IsRealnamed bool `json:"is_realnamed" description:"是否已实名"` } // AgentOpenAPIPackageListRequest 开放接口套餐列表请求 type AgentOpenAPIPackageListRequest struct { Page int `json:"page" query:"page" validate:"omitempty,min=1" minimum:"1" description:"页码"` PageSize int `json:"page_size" query:"page_size" validate:"omitempty,min=1,max=100" minimum:"1" maximum:"100" description:"每页数量"` PackageType *string `json:"package_type" query:"package_type" validate:"omitempty,oneof=formal addon" description:"套餐类型 (formal:正式套餐, addon:附加套餐)"` SeriesID *uint `json:"series_id" query:"series_id" validate:"omitempty" description:"套餐系列ID"` PackageName *string `json:"package_name" query:"package_name" validate:"omitempty,max=255" maxLength:"255" description:"套餐名称(模糊搜索)"` } // AgentOpenAPIPackageItem 开放接口套餐列表项 type AgentOpenAPIPackageItem struct { PackageID uint `json:"package_id" description:"套餐ID"` PackageCode string `json:"package_code" description:"套餐编码"` PackageName string `json:"package_name" description:"套餐名称"` SeriesName string `json:"series_name" description:"套餐系列名称"` PackageType string `json:"package_type" description:"套餐类型 (formal:正式套餐, addon:附加套餐)"` PackageTypeName string `json:"package_type_name" description:"套餐类型名称(中文)"` CostPrice int64 `json:"cost_price" description:"套餐结算价(分)"` RetailPrice int64 `json:"retail_price" description:"套餐销售价(分)"` TotalFlowMB int64 `json:"total_flow_mb" description:"总流量(MB)"` ValidDays int `json:"valid_days" description:"有效天数"` } // AgentOpenAPIWalletBalanceResponse 开放接口预充值钱包余额响应 type AgentOpenAPIWalletBalanceResponse struct { Balance int64 `json:"balance" description:"钱包余额(分)"` FrozenBalance int64 `json:"frozen_balance" description:"冻结余额(分)"` AvailableBalance int64 `json:"available_balance" description:"可用余额(分)"` Currency string `json:"currency" description:"币种"` } // AgentOpenAPIWalletTransactionListRequest 开放接口预充值钱包流水请求 type AgentOpenAPIWalletTransactionListRequest struct { Page int `json:"page" query:"page" validate:"omitempty,min=1" minimum:"1" description:"页码"` PageSize int `json:"page_size" query:"page_size" validate:"omitempty,min=1,max=100" minimum:"1" maximum:"100" description:"每页数量"` TransactionType string `json:"transaction_type" query:"transaction_type" validate:"omitempty,max=50" maxLength:"50" description:"交易类型过滤(recharge:充值入账, deduct:套餐扣款, refund:退款)"` StartDate string `json:"start_date" query:"start_date" validate:"omitempty" description:"开始日期(YYYY-MM-DD)"` EndDate string `json:"end_date" query:"end_date" validate:"omitempty" description:"结束日期(YYYY-MM-DD)"` } // AgentOpenAPIWalletPackageOrderRequest 开放接口钱包套餐购买请求 type AgentOpenAPIWalletPackageOrderRequest struct { CardNos []string `json:"card_nos" validate:"required,min=1,max=100,dive,min=1,max=100" required:"true" minItems:"1" maxItems:"100" description:"卡标识列表(支持 ICCID、虚拟号、MSISDN)"` PackageCode string `json:"package_code" validate:"required,min=1,max=100" required:"true" minLength:"1" maxLength:"100" description:"套餐编码(一次只能购买一个套餐)"` } // AgentOpenAPIWalletPackageOrderItem 开放接口钱包套餐购买成功项 type AgentOpenAPIWalletPackageOrderItem struct { CardNo string `json:"card_no" description:"卡标识"` OrderNo string `json:"order_no" description:"订单号"` } // AgentOpenAPIWalletPackageOrderFailure 开放接口钱包套餐购买失败项 type AgentOpenAPIWalletPackageOrderFailure struct { CardNo string `json:"card_no" description:"卡标识"` Code int `json:"code" description:"错误码"` Message string `json:"message" description:"失败原因"` } // AgentOpenAPIWalletPackageOrderResponse 开放接口钱包套餐购买响应 type AgentOpenAPIWalletPackageOrderResponse struct { BatchNo string `json:"batch_no" description:"批次号"` PackageCode string `json:"package_code" description:"套餐编码"` SuccessCount int `json:"success_count" description:"成功数量"` FailedCount int `json:"failed_count" description:"失败数量"` Orders []AgentOpenAPIWalletPackageOrderItem `json:"orders" description:"成功订单列表"` FailedCards []AgentOpenAPIWalletPackageOrderFailure `json:"failed_cards" description:"失败卡列表"` }