Files
tyapi-server/internal/domains/subordinate/entities/wallet_allocation.go
2026-04-25 11:59:10 +08:00

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
}