Files
yms-daemon/internal/transaction/model.go
T

77 lines
1.7 KiB
Go
Raw Normal View History

2026-08-15 02:30:36 +08:00
package transaction
import (
"encoding/json"
"time"
)
// Transaction 是一次更新请求的服务端持久化快照。
type Transaction struct {
ID string
IdempotencyKey string
Source string
Service string
Request json.RawMessage
State State
Version int64
CreatedAt time.Time
UpdatedAt time.Time
}
2026-08-17 02:10:10 +08:00
// ListFilter limits the history query used by the ymsctl list command.
type ListFilter struct {
Limit int
Service string
State State
}
2026-08-15 02:30:36 +08:00
// CreateRequest 包含创建事务所需的不可变请求信息。
type CreateRequest struct {
ID string
IdempotencyKey string
Source string
Service string
Request json.RawMessage
}
// StepStatus 是外部步骤的持久化执行状态。
type StepStatus string
const (
StepIntentRecorded StepStatus = "INTENT_RECORDED"
StepSucceeded StepStatus = "SUCCEEDED"
StepFailed StepStatus = "FAILED"
)
// Step 记录一次外部副作用的意图和最终核对结果。
type Step struct {
TransactionID string
Key string
Name string
Status StepStatus
Intent json.RawMessage
Result json.RawMessage
Error string
CreatedAt time.Time
UpdatedAt time.Time
}
// StepIntent 是执行外部操作前必须先持久化的内容。
type StepIntent struct {
Key string
Name string
Intent json.RawMessage
}
// Event 是供查询和 WSS 断联恢复使用的顺序事件。
type Event struct {
Sequence int64
TransactionID string
StepKey string
Kind string
FromState State
ToState State
Message string
CreatedAt time.Time
}