feat(operations): add automated reconciliation center

This commit is contained in:
lingniu
2026-07-16 19:14:53 +08:00
parent bbab018d55
commit d67f42b4f4
25 changed files with 1697 additions and 39 deletions

View File

@@ -736,6 +736,92 @@ type AlertNotificationReadRequest struct {
Actor string `json:"actor"`
}
type ReconciliationQuery struct {
Keyword string `json:"keyword"`
RuleCode string `json:"ruleCode"`
Category string `json:"category"`
Severity string `json:"severity"`
Status string `json:"status"`
Limit int `json:"limit"`
Offset int `json:"offset"`
}
type ReconciliationIssue struct {
ID string `json:"id"`
RuleCode string `json:"ruleCode"`
Category string `json:"category"`
Severity string `json:"severity"`
Status string `json:"status"`
VIN string `json:"vin"`
Plate string `json:"plate"`
ProtocolA string `json:"protocolA"`
ProtocolB string `json:"protocolB"`
Title string `json:"title"`
Summary string `json:"summary"`
Evidence map[string]any `json:"evidence"`
FirstSeenAt string `json:"firstSeenAt"`
LastSeenAt string `json:"lastSeenAt"`
OccurrenceCount int64 `json:"occurrenceCount"`
RecoveredAt string `json:"recoveredAt"`
ResolutionNote string `json:"resolutionNote"`
ResolvedBy string `json:"resolvedBy"`
Version int `json:"version"`
Actions []ReconciliationAction `json:"actions,omitempty"`
}
type ReconciliationAction struct {
ID int64 `json:"id"`
Action string `json:"action"`
FromStatus string `json:"fromStatus"`
ToStatus string `json:"toStatus"`
Actor string `json:"actor"`
Note string `json:"note"`
CreatedAt string `json:"createdAt"`
}
type ReconciliationActionRequest struct {
Version int `json:"version"`
Status string `json:"status"`
Note string `json:"note"`
Actor string `json:"actor"`
}
type ReconciliationBucket struct {
Name string `json:"name"`
Count int `json:"count"`
}
type ReconciliationTrendPoint struct {
Date string `json:"date"`
Detected int `json:"detected"`
New int `json:"new"`
Active int `json:"active"`
Recovered int `json:"recovered"`
}
type ReconciliationSummary struct {
Active int `json:"active"`
Pending int `json:"pending"`
Confirmed int `json:"confirmed"`
Recovered int `json:"recovered"`
OverSLA int `json:"overSla"`
ByRule []ReconciliationBucket `json:"byRule"`
BySeverity []ReconciliationBucket `json:"bySeverity"`
Trend []ReconciliationTrendPoint `json:"trend"`
LastRunAt string `json:"lastRunAt"`
AsOf string `json:"asOf"`
}
type ReconciliationEvaluationResult struct {
RunID string `json:"runId"`
Detected int `json:"detected"`
New int `json:"new"`
Active int `json:"active"`
Recovered int `json:"recovered"`
RuleCounts map[string]int `json:"ruleCounts"`
AsOf string `json:"asOf"`
}
type AlertEvaluationResult struct {
RulesEvaluated int `json:"rulesEvaluated"`
VehiclesScanned int `json:"vehiclesScanned"`