package model import "time" type WalletAccount struct { ID uint64 `gorm:"primaryKey" json:"id"` UserID uint64 `gorm:"not null;uniqueIndex" json:"user_id"` AvailableBalance float64 `gorm:"type:decimal(12,2);not null;default:0" json:"available_balance"` FrozenBalance float64 `gorm:"type:decimal(12,2);not null;default:0" json:"frozen_balance"` Status string `gorm:"size:32;not null;default:'active'" json:"status"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } func (WalletAccount) TableName() string { return "wallet_accounts" } type WalletLedger struct { ID uint64 `gorm:"primaryKey" json:"id"` LedgerNo string `gorm:"size:64;not null;uniqueIndex" json:"ledger_no"` UserID uint64 `gorm:"not null;index" json:"user_id"` OrderID *uint64 `json:"order_id"` Direction string `gorm:"size:16;not null" json:"direction"` Amount float64 `gorm:"type:decimal(12,2);not null" json:"amount"` BalanceAfter float64 `gorm:"type:decimal(12,2);not null" json:"balance_after"` BalanceType string `gorm:"size:32;not null" json:"balance_type"` BizType string `gorm:"size:32;not null" json:"biz_type"` BizNo string `gorm:"size:64;not null" json:"biz_no"` Remark string `gorm:"size:255;not null;default:''" json:"remark"` CreatedAt time.Time `json:"created_at"` } func (WalletLedger) TableName() string { return "wallet_ledger" }