package model import ( "time" core "git.yuntuo.hk/k2safe/orbit/model" ) // ScheduleVersion 表示已发布的不可变计划版本,记录规则与任务模板。 // 对应表 pulse_schedule_versions;这是服务端持久化模型,不直接作为 API 响应。 type ScheduleVersion struct { // Record 包含命名空间、记录标识、并发版本和 UTC 时间。 core.Record // ScheduleID 所属调度计划标识。 ScheduleID core.ID `db:"schedule_id"` // Version 不可变发布版本;同版本不同内容必须拒绝。 Version uint64 `db:"version"` // EffectiveAt 该计划版本开始生效的时间。 EffectiveAt time.Time `db:"effective_at"` // Timezone 计划计算使用的 IANA 时区名称。 Timezone string `db:"timezone"` // Specification 版本化规则定义 JSON;发布后禁止原地修改。 Specification core.JSON `db:"specification"` // TaskTemplate 每次触发创建任务时采用的输入与策略模板。 TaskTemplate core.JSON `db:"task_template"` // MisfirePolicy 漏跑策略:跳过、合并或有界补跑。 MisfirePolicy string `db:"misfire_policy"` // OverlapPolicy 上次未完成时的策略:并行、串行或跳过。 OverlapPolicy string `db:"overlap_policy"` // CatchupLimit 每批生成任务数量上限,所有策略均要求 1–100。 CatchupLimit uint32 `db:"catchup_limit"` // CatchupWindowMS 未处理触发点最多保留的毫秒数,过旧范围记录跳过。 CatchupWindowMS uint64 `db:"catchup_window_ms"` // GraceMS 正常派发允许延迟的毫秒数,超出后按漏跑策略处理。 GraceMS uint64 `db:"grace_ms"` } func (ScheduleVersion) TableName() string { return "pulse_schedule_versions" }