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 }