37 lines
1.4 KiB
Go
37 lines
1.4 KiB
Go
|
|
package entities
|
||
|
|
|
||
|
|
import (
|
||
|
|
"time"
|
||
|
|
|
||
|
|
"github.com/google/uuid"
|
||
|
|
"github.com/shopspring/decimal"
|
||
|
|
"gorm.io/gorm"
|
||
|
|
)
|
||
|
|
|
||
|
|
// SubordinateWalletAllocation 主账号向下属余额划拨记录
|
||
|
|
type SubordinateWalletAllocation struct {
|
||
|
|
ID string `gorm:"primaryKey;type:varchar(36)" json:"id" comment:"唯一标识"`
|
||
|
|
FromUserID string `gorm:"type:varchar(36);not null;index" json:"from_user_id" comment:"主账号用户ID"`
|
||
|
|
ToUserID string `gorm:"type:varchar(36);not null;index" json:"to_user_id" comment:"子账号用户ID"`
|
||
|
|
Amount decimal.Decimal `gorm:"type:decimal(20,8);not null" json:"amount" comment:"金额"`
|
||
|
|
BusinessRef string `gorm:"type:varchar(64);not null;index" json:"business_ref" comment:"业务单号(幂等/对账)"`
|
||
|
|
OperatorUserID string `gorm:"type:varchar(36);not null" json:"operator_user_id" comment:"操作者(一般同主账号)"`
|
||
|
|
|
||
|
|
CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"`
|
||
|
|
UpdatedAt time.Time `gorm:"autoUpdateTime" json:"updated_at"`
|
||
|
|
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// TableName 表名
|
||
|
|
func (SubordinateWalletAllocation) TableName() string {
|
||
|
|
return "subordinate_wallet_allocations"
|
||
|
|
}
|
||
|
|
|
||
|
|
// BeforeCreate 生成ID
|
||
|
|
func (a *SubordinateWalletAllocation) BeforeCreate(tx *gorm.DB) error {
|
||
|
|
if a.ID == "" {
|
||
|
|
a.ID = uuid.New().String()
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}
|