35 lines
1.7 KiB
Go
35 lines
1.7 KiB
Go
package model
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gorm.io/datatypes"
|
|
)
|
|
|
|
// ProcessEvent 是订单、提号等交易流程的不可变操作留痕。
|
|
// 当前业务表仍保存当前状态;此表只追加,用于还原每一步由谁填写、修改和确认。
|
|
type ProcessEvent struct {
|
|
ID uint64 `gorm:"primaryKey" json:"id"`
|
|
BusinessType string `gorm:"size:32;not null;index:idx_process_event_business" json:"business_type"`
|
|
BusinessID uint64 `gorm:"not null;index:idx_process_event_business" json:"business_id"`
|
|
Stage string `gorm:"size:32;not null;default:''" json:"stage"`
|
|
Action string `gorm:"size:64;not null" json:"action"`
|
|
ActorType string `gorm:"size:16;not null" json:"actor_type"`
|
|
ActorID uint64 `gorm:"not null;default:0" json:"actor_id"`
|
|
ActorName string `gorm:"size:128;not null;default:''" json:"actor_name"`
|
|
TargetType string `gorm:"size:16;not null;default:''" json:"target_type"`
|
|
TargetID *uint64 `json:"target_id,omitempty"`
|
|
TargetName string `gorm:"size:128;not null;default:''" json:"target_name"`
|
|
Content string `gorm:"type:text" json:"content"`
|
|
Reason string `gorm:"type:text" json:"reason"`
|
|
Payload datatypes.JSON `gorm:"not null" json:"payload"`
|
|
AttachmentURLs datatypes.JSON `gorm:"column:attachment_urls;not null" json:"attachment_urls"`
|
|
StateBefore datatypes.JSON `gorm:"column:state_before;not null" json:"state_before"`
|
|
StateAfter datatypes.JSON `gorm:"column:state_after;not null" json:"state_after"`
|
|
CreatedAt time.Time `gorm:"index" json:"created_at"`
|
|
}
|
|
|
|
func (ProcessEvent) TableName() string {
|
|
return "process_events"
|
|
}
|