yumi-golang/internal/model/binance_recharge_models.go
2026-05-12 14:08:46 +08:00

61 lines
3.2 KiB
Go

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"
}