package model import ( "time" core "git.yuntuo.hk/k2safe/orbit/model" ) // Wait 表示可恢复的信号或时间等待,不长期占用业务 Worker。 // 对应表 weave_waits;这是服务端持久化模型,不直接作为 API 响应。 type Wait struct { // Record 包含命名空间、记录标识、并发版本和 UTC 时间。 core.Record // WorkflowID 所属流程实例标识。 WorkflowID core.ID `db:"workflow_id"` // ActivationID 所属步骤激活,区分旧轮次和人工恢复后的新轮次。 ActivationID core.ID `db:"activation_id"` // Kind 节点或等待类型,决定由哪类推进规则处理。 Kind string `db:"kind"` // State 当前状态;只允许定义的状态转换并配合事务校验。 State WaitState `db:"state"` // SignalName 激活时冻结的信号名称;TIMER及待核实历史记录为空。 SignalName *string `db:"signal_name"` // PayloadVersion 激活时冻结的信号内容契约版本;TIMER及待核实历史记录为空。 PayloadVersion *string `db:"payload_version"` // WinnerSignalID 胜出的外部信号;时间或查询结果胜出时为空,须核对双向归属。 WinnerSignalID *core.ID `db:"winner_signal_id"` // CorrelationKey 精确UTF8业务关联且保留尾部空格;新受理最多512字节,历史兼容764字节,TIMER为空串。 CorrelationKey string `db:"correlation_key"` // DeadlineAt 等待截止时间,用可靠受理时间判断信号是否按时到达。 DeadlineAt time.Time `db:"deadline_at"` // WakeTaskID 内部定时唤醒任务;无需定时唤醒时为空。 WakeTaskID *core.ID `db:"wake_task_id"` // ResolvedAt 等待或查询节点结清的时间;尚未结清时为空。 ResolvedAt *time.Time `db:"resolved_at"` } func (Wait) TableName() string { return "weave_waits" }