package model import ( "time" "github.com/lib/pq" ) // CommissionWithdrawalRequest 佣金提现申请模型 // 代理佣金提现申请、审批流程、提现记录查询 type CommissionWithdrawalRequest struct { ID uint `gorm:"column:id;primaryKey;comment:提现申请ID" json:"id"` AgentID uint `gorm:"column:agent_id;type:bigint;not null;comment:代理用户ID" json:"agent_id"` Amount float64 `gorm:"column:amount;type:decimal(18,2);not null;comment:提现金额(元)" json:"amount"` Fee float64 `gorm:"column:fee;type:decimal(18,2);default:0;comment:手续费(元)" json:"fee"` ActualAmount float64 `gorm:"column:actual_amount;type:decimal(18,2);comment:实际到账金额(元)" json:"actual_amount"` WithdrawalMethod string `gorm:"column:withdrawal_method;type:varchar(20);comment:提现方式 alipay-支付宝 wechat-微信 bank-银行卡" json:"withdrawal_method"` AccountInfo pq.StringArray `gorm:"column:account_info;type:jsonb;comment:收款账户信息(姓名、账号等)" json:"account_info"` Status int `gorm:"column:status;type:int;default:1;comment:状态 1-待审核 2-已通过 3-已拒绝 4-已到账" json:"status"` ApprovedBy uint `gorm:"column:approved_by;type:bigint;comment:审批人用户ID" json:"approved_by"` ApprovedAt *time.Time `gorm:"column:approved_at;comment:审批时间" json:"approved_at"` PaidAt *time.Time `gorm:"column:paid_at;comment:到账时间" json:"paid_at"` RejectReason string `gorm:"column:reject_reason;type:text;comment:拒绝原因" json:"reject_reason"` CreatedAt time.Time `gorm:"column:created_at;autoCreateTime;comment:创建时间" json:"created_at"` UpdatedAt time.Time `gorm:"column:updated_at;autoUpdateTime;comment:更新时间" json:"updated_at"` } // TableName 指定表名 func (CommissionWithdrawalRequest) TableName() string { return "commission_withdrawal_requests" } // CommissionWithdrawalSetting 佣金提现设置模型 // 提现参数配置(最低金额、手续费率、到账时间等) type CommissionWithdrawalSetting struct { ID uint `gorm:"column:id;primaryKey;comment:提现设置ID" json:"id"` MinWithdrawalAmount float64 `gorm:"column:min_withdrawal_amount;type:decimal(10,2);comment:最低提现金额(元)" json:"min_withdrawal_amount"` FeeRate float64 `gorm:"column:fee_rate;type:decimal(5,4);comment:手续费率(如 0.01 表示 1%)" json:"fee_rate"` ArrivalDays int `gorm:"column:arrival_days;type:int;comment:到账天数" json:"arrival_days"` IsActive bool `gorm:"column:is_active;type:boolean;default:true;comment:是否生效(最新一条)" json:"is_active"` CreatedAt time.Time `gorm:"column:created_at;autoCreateTime;comment:创建时间" json:"created_at"` UpdatedAt time.Time `gorm:"column:updated_at;autoUpdateTime;comment:更新时间" json:"updated_at"` } // TableName 指定表名 func (CommissionWithdrawalSetting) TableName() string { return "commission_withdrawal_settings" } // PaymentMerchantSetting 收款商户设置模型 // 配置支付参数(支付宝、微信等收款账户) type PaymentMerchantSetting struct { ID uint `gorm:"column:id;primaryKey;comment:收款商户ID" json:"id"` UserID uint `gorm:"column:user_id;type:bigint;not null;comment:用户ID" json:"user_id"` MerchantType string `gorm:"column:merchant_type;type:varchar(20);comment:商户类型 alipay-支付宝 wechat-微信 bank-银行卡" json:"merchant_type"` AccountName string `gorm:"column:account_name;type:varchar(255);comment:账户名称" json:"account_name"` AccountNumber string `gorm:"column:account_number;type:varchar(255);comment:账号" json:"account_number"` BankName string `gorm:"column:bank_name;type:varchar(255);comment:银行名称(仅银行卡)" json:"bank_name"` BankBranch string `gorm:"column:bank_branch;type:varchar(255);comment:开户行(仅银行卡)" json:"bank_branch"` IsVerified bool `gorm:"column:is_verified;type:boolean;default:false;comment:是否已验证" json:"is_verified"` IsDefault bool `gorm:"column:is_default;type:boolean;default:false;comment:是否默认账户" json:"is_default"` Status int `gorm:"column:status;type:int;default:1;comment:状态 1-启用 2-禁用" json:"status"` CreatedAt time.Time `gorm:"column:created_at;autoCreateTime;comment:创建时间" json:"created_at"` UpdatedAt time.Time `gorm:"column:updated_at;autoUpdateTime;comment:更新时间" json:"updated_at"` } // TableName 指定表名 func (PaymentMerchantSetting) TableName() string { return "payment_merchant_settings" }