Files
orbit/weave/model/instance.go

49 lines
2.5 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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"`
// StopKind 首次停止原因,CANCEL为用户取消、FAILURE为固定失败策略;进入核查后仍保留,为空表示未要求结清。
StopKind *string `db:"stop_kind"`
// StopRequestedAt 首次停止意图的数据库时间,重报或后续取消不覆盖;与StopKind同时为空。
StopRequestedAt *time.Time `db:"stop_requested_at"`
// CompletedAt 终结时间;非终态为空,进入终态时必须写入。
CompletedAt *time.Time `db:"completed_at"`
// RetryOf 来源记录标识,人工重新发起时用于保留历史关联;可为空,表示尚未设置该关联或值。
RetryOf *core.ID `db:"retry_of"`
}
func (Instance) TableName() string { return "weave_instances" }