package recorder import ( "encoding/json" "os" "path/filepath" "time" "sdr-wideband-suite/internal/classifier" "sdr-wideband-suite/internal/detector" ) type Meta struct { EventID int64 `json:"event_id"` Start time.Time `json:"start"` End time.Time `json:"end"` CenterHz float64 `json:"center_hz"` BandwidthHz float64 `json:"bandwidth_hz"` SampleRate int `json:"sample_rate"` SNRDb float64 `json:"snr_db"` PeakDb float64 `json:"peak_db"` Class *classifier.Classification `json:"classification,omitempty"` DurationMs int64 `json:"duration_ms"` Files map[string]any `json:"files"` } func writeMeta(dir string, ev detector.Event, sampleRate int, files map[string]any) error { m := Meta{ EventID: ev.ID, Start: ev.Start, End: ev.End, CenterHz: ev.CenterHz, BandwidthHz: ev.Bandwidth, SampleRate: sampleRate, SNRDb: ev.SNRDb, PeakDb: ev.PeakDb, Class: ev.Class, DurationMs: ev.End.Sub(ev.Start).Milliseconds(), Files: files, } b, err := json.MarshalIndent(m, "", " ") if err != nil { return err } return os.WriteFile(filepath.Join(dir, "meta.json"), b, 0o644) }