package workbench type resourceListSummary struct { Resource Summary bool `json:"summary"` } // Lists carry selection metadata; editing always loads the complete resource. func summarizeResource(resource Resource) resourceListSummary { data := JSON{} for _, key := range []string{"agent_id", "flow_id", "days_count"} { if value, ok := resource.Data[key]; ok { data[key] = value } } if resource.Data["legacy_import"] != nil { data["legacy_import"] = JSON{"imported": true} } if activation, err := decode[struct { Configured bool `json:"configured"` }](asJSON(resource.Data["legacy_activation"])); err == nil && resource.Data["legacy_activation"] != nil { data["legacy_activation"] = JSON{"configured": activation.Configured} } if resource.Kind == "training-maps" { if plan, err := decode[MapData](resource.Data); err == nil { days := make([]JSON, 0, len(plan.Days)) for _, day := range plan.Days { days = append(days, JSON{"day": day.Day, "title": day.Title}) } data["days"] = days } } resource.Data = data return resourceListSummary{Resource: resource, Summary: true} }