feat: add persisted page insight platform

This commit is contained in:
2026-08-21 18:51:00 +08:00
parent 8507b5d017
commit 17e3f1a7d0
18 changed files with 1587 additions and 3 deletions

View File

@@ -104,6 +104,18 @@ func ValidateEvents(events []Event) error {
if event.LeadDays < 0 || event.LagDays < 0 || event.RelevanceBPS < 0 || event.RelevanceBPS > 10_000 || event.ConfidenceBPS < 0 || event.ConfidenceBPS > 10_000 {
return fmt.Errorf("event catalog: event %q has invalid impact metadata", event.ID)
}
if event.LeadDays > 90 || event.LagDays > 90 {
return fmt.Errorf("event catalog: event %q lead or lag window exceeds 90 days", event.ID)
}
if event.Recurrence != "" {
resolved, err := ResolveRecurrence(event.Recurrence, start.Year(), time.UTC)
if err != nil {
return fmt.Errorf("event catalog: event %q recurrence: %w", event.ID, err)
}
if !resolved.Equal(start) || !end.Equal(start) {
return fmt.Errorf("event catalog: event %q does not match its resolved recurrence", event.ID)
}
}
}
return nil
}