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

30
pulse/model/occurrence.go Normal file
View File

@@ -0,0 +1,30 @@
package model
import (
"time"
core "git.yuntuo.hk/k2safe/orbit/model"
)
// Occurrence 表示一个原计划触发点的处理记录,包含触发、跳过或合并决定。
// 对应表 pulse_schedule_occurrences;这是服务端持久化模型,不直接作为 API 响应。
type Occurrence struct {
// Record 包含命名空间、记录标识、并发版本和 UTC 时间。
core.Record
// ScheduleID 所属调度计划标识。
ScheduleID core.ID `db:"schedule_id"`
// ScheduleVersion 该触发点采用的计划版本号。
ScheduleVersion uint64 `db:"schedule_version"`
// ScheduledAt 原计划触发时间,统一 UTC;参与触发去重。
ScheduledAt time.Time `db:"scheduled_at"`
// Decision 触发处理决定:已触发、已跳过或已合并。
Decision string `db:"decision"`
// TaskID 关联的 Pulse 任务标识;可为空,表示尚未设置该关联或值。
TaskID *core.ID `db:"task_id"`
// CoveredUntil 合并触发覆盖的结束边界;没有合并范围时为空。
CoveredUntil *time.Time `db:"covered_until"`
// Reason 操作原因或处理说明,需要保留审计信息;可为空,表示尚未设置该关联或值。
Reason *string `db:"reason"`
}
func (Occurrence) TableName() string { return "pulse_schedule_occurrences" }