package model import "time" // BinanceRechargeConfig stores Binance API credentials per app origin. type BinanceRechargeConfig struct { ID int64 `gorm:"column:id;primaryKey;autoIncrement"` SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_binance_recharge_config_origin"` APIKey string `gorm:"column:api_key;size:255"` APISecret string `gorm:"column:api_secret;size:255"` Enabled bool `gorm:"column:enabled"` CreateTime time.Time `gorm:"column:create_time"` UpdateTime time.Time `gorm:"column:update_time"` } func (BinanceRechargeConfig) TableName() string { return "binance_recharge_config" } // BinanceRechargeRate maps a verified USDT amount range to gold per USD. type BinanceRechargeRate struct { ID int64 `gorm:"column:id;primaryKey;autoIncrement"` ConfigID int64 `gorm:"column:config_id;index:idx_binance_recharge_rate_config"` MinAmount string `gorm:"column:min_amount;type:decimal(20,8)"` MaxAmount string `gorm:"column:max_amount;type:decimal(20,8)"` GoldPerUSD string `gorm:"column:gold_per_usd;type:decimal(20,8)"` SortOrder int `gorm:"column:sort_order"` CreateTime time.Time `gorm:"column:create_time"` UpdateTime time.Time `gorm:"column:update_time"` } func (BinanceRechargeRate) TableName() string { return "binance_recharge_rate" } // BinanceRechargeVerifyRecord is the local idempotency ledger for auto recharge verification. type BinanceRechargeVerifyRecord struct { ID int64 `gorm:"column:id;primaryKey;autoIncrement"` SysOrigin string `gorm:"column:sys_origin;size:32;index:idx_binance_recharge_verify_origin;uniqueIndex:uk_binance_recharge_verify_order,priority:1;uniqueIndex:uk_binance_recharge_verify_bill,priority:1"` DealerUserID int64 `gorm:"column:dealer_user_id;index:idx_binance_recharge_verify_dealer"` TargetUserID int64 `gorm:"column:target_user_id;index:idx_binance_recharge_verify_target"` OrderNo string `gorm:"column:order_no;size:128;uniqueIndex:uk_binance_recharge_verify_order,priority:2"` TransferType string `gorm:"column:transfer_type;size:32;uniqueIndex:uk_binance_recharge_verify_bill,priority:2"` BillNo string `gorm:"column:bill_no;size:160;uniqueIndex:uk_binance_recharge_verify_bill,priority:3"` AmountUSDT string `gorm:"column:amount_usdt;type:decimal(20,8)"` GoldAmount int64 `gorm:"column:gold_amount"` RateGoldPerUSD string `gorm:"column:rate_gold_per_usd;type:decimal(20,8)"` BinanceTransactionID string `gorm:"column:binance_transaction_id;size:180"` BinanceOrderType string `gorm:"column:binance_order_type;size:64"` BinanceRawJSON string `gorm:"column:binance_raw_json;type:text"` Status string `gorm:"column:status;size:24;index:idx_binance_recharge_verify_status"` FailReason string `gorm:"column:fail_reason;size:500"` Remark string `gorm:"column:remark;size:500"` CreateTime time.Time `gorm:"column:create_time"` UpdateTime time.Time `gorm:"column:update_time"` } func (BinanceRechargeVerifyRecord) TableName() string { return "binance_recharge_verify_record" }