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" }