feat: establish Orbit models, migrations and development baseline

This commit is contained in:
2026-09-17 07:04:21 +08:00
commit 4f2935e36f
84 changed files with 4915 additions and 0 deletions

44
weave/model/instance.go Normal file
View File

@@ -0,0 +1,44 @@
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" }