package constants

// ========================================
// IoT SIM 管理系统常量定义
// ========================================

// ========================================
// 1. 核心业务常量
// ========================================

// IoT 卡状态
const (
	IotCardStatusInStock     = 1 // 在库
	IotCardStatusDistributed = 2 // 已分销
	IotCardStatusActivated   = 3 // 已激活
	IotCardStatusSuspended   = 4 // 已停用
)

// IoT 卡业务类型
const (
	CardCategoryNormal   = "normal"   // 普通卡(需要实名认证)
	CardCategoryIndustry = "industry" // 行业卡(无需实名认证)
)

// 设备状态
const (
	DeviceStatusInStock     = 1 // 在库
	DeviceStatusDistributed = 2 // 已分销
	DeviceStatusActivated   = 3 // 已激活
	DeviceStatusSuspended   = 4 // 已停用
)

// 号卡状态
const (
	NumberCardStatusOnSale  = 1 // 在售
	NumberCardStatusOffSale = 2 // 下架
)

// IoT 卡激活状态
const (
	ActivationStatusInactive = 0 // 未激活
	ActivationStatusActive   = 1 // 已激活
)

// IoT 卡实名状态
const (
	RealNameStatusNotVerified = 0 // 未实名
	RealNameStatusVerified    = 1 // 已实名
)

// IoT 卡网络状态
const (
	NetworkStatusOffline = 0 // 停机
	NetworkStatusOnline  = 1 // 开机
)

// 套餐流量类型
const (
	DataTypeReal    = "real"    // 真流量
	DataTypeVirtual = "virtual" // 虚流量
)

// 套餐类型
const (
	PackageTypeFormal = "formal" // 正式套餐
	PackageTypeAddon  = "addon"  // 附加套餐
)

// 订单类型
const (
	OrderTypePackage    = 1 // 套餐订单
	OrderTypeNumberCard = 2 // 号卡订单
)

// 订单状态 (IoT 模块)
const (
	IotOrderStatusPending   = 1 // 待支付
	IotOrderStatusPaid      = 2 // 已支付
	IotOrderStatusCompleted = 3 // 已完成
	IotOrderStatusCancelled = 4 // 已取消
	IotOrderStatusRefunded  = 5 // 已退款
)

// 支付方式
const (
	PaymentMethodWallet  = "wallet"  // 钱包
	PaymentMethodOnline  = "online"  // 在线支付
	PaymentMethodCarrier = "carrier" // 运营商支付
)

// 所有者类型（统一枚举，仅支持 platform 和 shop）
const (
	OwnerTypePlatform = "platform" // 平台
	OwnerTypeShop     = "shop"     // 店铺（代理商）
)

// 企业卡授权状态
const (
	EnterpriseCardAuthStatusValid   = 1 // 有效
	EnterpriseCardAuthStatusRevoked = 0 // 已回收
)

// 资产分配类型
const (
	AssetAllocationTypeAllocate = "allocate" // 分配
	AssetAllocationTypeRecall   = "recall"   // 回收
)

// 资产类型
const (
	AssetTypeIotCard = "iot_card" // 物联网卡
	AssetTypeDevice  = "device"   // 设备
)

// 放款类型
const (
	PaymentTypeManual = "manual" // 人工打款
)

// 绑定状态
const (
	BindStatusBound   = 1 // 已绑定
	BindStatusUnbound = 2 // 已解绑
)

// ========================================
// 2. 套餐和轮询相关常量
// ========================================

// 套餐使用类型
const (
	PackageUsageTypeSingleCard = "single_card" // 单卡套餐
	PackageUsageTypeDevice     = "device"      // 设备级套餐
)

// 套餐使用状态
const (
	PackageUsageStatusActive    = 1 // 生效中
	PackageUsageStatusExhausted = 2 // 已用完
	PackageUsageStatusExpired   = 3 // 已过期
)

// 轮询配置卡条件
const (
	CardConditionNotRealName = "not_real_name" // 未实名
	CardConditionRealName    = "real_name"     // 已实名
	CardConditionActivated   = "activated"     // 已激活
	CardConditionSuspended   = "suspended"     // 已停用
)

// 流量使用记录来源
const (
	DataUsageSourcePolling = "polling" // 轮询
	DataUsageSourceManual  = "manual"  // 手动
	DataUsageSourceGateway = "gateway" // Gateway回调
)

// ========================================
// 3. 分佣相关常量
// ========================================

// 分佣类型
const (
	CommissionTypeOneTime  = "one_time"  // 一次性分佣
	CommissionTypeLongTerm = "long_term" // 长期分佣
	CommissionTypeCombined = "combined"  // 组合分佣
)

// 分佣模式
const (
	CommissionModeFixed   = "fixed"   // 固定金额
	CommissionModePercent = "percent" // 百分比
)

// 分佣状态
const (
	CommissionStatusFrozen     = 1 // 已冻结
	CommissionStatusUnfreezing = 2 // 解冻中
	CommissionStatusReleased   = 3 // 已发放
	CommissionStatusInvalid    = 4 // 已失效
)

// 阶梯类型
const (
	LadderTypeActivation = "activation" // 激活量
	LadderTypePickup     = "pickup"     // 提货量
	LadderTypeDeposit    = "deposit"    // 充值量
)

// 卡类型
const (
	CardTypeNumberCard = "number_card" // 号卡
	CardTypeIotCard    = "iot_card"    // IoT卡
)

// 审批类型
const (
	ApprovalTypeAuto   = "auto"   // 自动
	ApprovalTypeManual = "manual" // 人工
)

// 审批状态
const (
	ApprovalStatusPending  = 1 // 待审批
	ApprovalStatusApproved = 2 // 已通过
	ApprovalStatusRejected = 3 // 已拒绝
)

// ========================================
// 4. 财务管理常量
// ========================================

// 提现状态
const (
	WithdrawalStatusPending  = 1 // 待审核
	WithdrawalStatusApproved = 2 // 已通过
	WithdrawalStatusRejected = 3 // 已拒绝
	WithdrawalStatusPaid     = 4 // 已到账
)

// 提现方式
const (
	WithdrawalMethodAlipay = "alipay" // 支付宝
	WithdrawalMethodWechat = "wechat" // 微信
	WithdrawalMethodBank   = "bank"   // 银行卡
)

// 商户类型
const (
	MerchantTypeAlipay = "alipay" // 支付宝
	MerchantTypeWechat = "wechat" // 微信
	MerchantTypeBank   = "bank"   // 银行卡
)

// ========================================
// 5. 系统管理常量
// ========================================

// 换卡申请状态
const (
	ReplacementStatusPending   = 1 // 待处理
	ReplacementStatusApproved  = 2 // 已通过
	ReplacementStatusRejected  = 3 // 已拒绝
	ReplacementStatusCompleted = 4 // 已完成
)

// 开发能力配置状态
const (
	DevCapabilityStatusEnabled  = 1 // 启用
	DevCapabilityStatusDisabled = 2 // 禁用
)

// ========================================
// 运营商编码
// ========================================

const (
	CarrierCodeCMCC = "CMCC" // 中国移动
	CarrierCodeCUCC = "CUCC" // 中国联通
	CarrierCodeCTCC = "CTCC" // 中国电信
	CarrierCodeCBN  = "CBN"  // 广电
)

const (
	ReplacementReasonDamaged     = "damaged"
	ReplacementReasonLost        = "lost"
	ReplacementReasonMalfunction = "malfunction"
	ReplacementReasonUpgrade     = "upgrade"
	ReplacementReasonOther       = "other"
)
