package dto // LiveEvents 是 GET /api/display/live 的线上结构:大屏「实时赛况」页的当前项目及其成绩。 // // 为什么单开一个接口而不是塞进 snapshot:当前项目的判定依赖「当前时间 + 排期 + 最近一次发布」, // 是随时间变化的量;快照只在变更时推送,装不下一个会自己过期的结论。 // 两个设置键(display.live_events / display.live_source)仍然随 snapshot.settings 下发, // 大屏也可以只用 events / latestResults 自行推导。 type LiveEvents struct { // Source 是本次生效的判定方式:manual 或 auto(来自 display.live_source)。 Source string `json:"source"` // EventIDs 是判定出的当前项目 id,最多 MaxLiveEvents 个,按重要程度排序;空表示没有。 EventIDs []int64 `json:"eventIds"` // Events 与 EventIDs 一一对应,带上小项信息与已发布成绩(名次已由发布时回写)。 Events []LiveEvent `json:"events"` } // LiveEvent 是一个当前项目。 type LiveEvent struct { Event Event `json:"event"` // Reason 说明它为什么被选中:manual(人工指定)/ scheduled(排期命中)/ recent(最近发布)。 Reason string `json:"reason"` // Groups 是该小项已发布成绩按「小项 + 组别」分好的组;还没发布过任何成绩时为空数组。 Groups []EventResultGroup `json:"groups"` }