45 lines
2.2 KiB
Go
45 lines
2.2 KiB
Go
package model
|
||
|
||
import (
|
||
"time"
|
||
|
||
core "git.yuntuo.hk/k2safe/orbit/model"
|
||
)
|
||
|
||
// Instance 表示流程运行实例,固定定义版本,暂停与执行状态分别保存。
|
||
// 对应表 weave_instances;这是服务端持久化模型,不直接作为 API 响应。
|
||
type Instance struct {
|
||
// Record 包含命名空间、记录标识、并发版本和 UTC 时间。
|
||
core.Record
|
||
// DefinitionID 稳定流程定义标识。
|
||
DefinitionID core.ID `db:"definition_id"`
|
||
// DefinitionVersionID 实例固定使用的定义版本记录,不能随新版本发布而变化。
|
||
DefinitionVersionID core.ID `db:"definition_version_id"`
|
||
// GateID 执行门控标识,用于检查是否允许新的领取与开始。
|
||
GateID core.ID `db:"gate_id"`
|
||
// State 流程执行状态,与独立的暂停标记同时展示。
|
||
State InstanceState `db:"state"`
|
||
// Paused 暂停标记;停止新的受控工作,不表示在途请求已停止。
|
||
Paused bool `db:"paused"`
|
||
// ControlRevision 暂停、继续等控制操作的版本,避免旧操作覆盖新决定。
|
||
ControlRevision uint64 `db:"control_revision"`
|
||
// Input 本次实例或步骤激活的输入快照 JSON。
|
||
Input core.JSON `db:"input"`
|
||
// Output 已保存的输出 JSON;未完成时可以为空。
|
||
Output core.JSON `db:"output"`
|
||
// PolicySnapshot 受理时冻结的实际生效策略 JSON。
|
||
PolicySnapshot core.JSON `db:"policy_snapshot"`
|
||
// BusinessKey 业务侧关联键,用于检索追踪,不自动提供业务幂等;可为空,表示尚未设置该关联或值。
|
||
BusinessKey *string `db:"business_key"`
|
||
// DeadlineAt 流程总截止时间,暂停默认不延长此业务边界。
|
||
DeadlineAt time.Time `db:"deadline_at"`
|
||
// CancelRequestedAt 取消意图的持久化时间;不等于取消已完成;可为空,表示尚未设置该关联或值。
|
||
CancelRequestedAt *time.Time `db:"cancel_requested_at"`
|
||
// CompletedAt 终结时间;非终态为空,进入终态时必须写入。
|
||
CompletedAt *time.Time `db:"completed_at"`
|
||
// RetryOf 来源记录标识,人工重新发起时用于保留历史关联;可为空,表示尚未设置该关联或值。
|
||
RetryOf *core.ID `db:"retry_of"`
|
||
}
|
||
|
||
func (Instance) TableName() string { return "weave_instances" }
|