package ai import ( "github.com/rcourtman/pulse-go-rewrite/internal/ai/baseline" ) // BaselineStoreAdapter adapts baseline.Store to the context.BaselineProvider interface type BaselineStoreAdapter struct { store *baseline.Store } // NewBaselineStoreAdapter creates an adapter for baseline.Store func NewBaselineStoreAdapter(store *baseline.Store) *BaselineStoreAdapter { if store == nil { return nil } return &BaselineStoreAdapter{store: store} } // CheckAnomaly implements context.BaselineProvider func (a *BaselineStoreAdapter) CheckAnomaly(resourceID, metric string, value float64) (severity string, zScore float64, mean float64, stddev float64, ok bool) { if a.store == nil { return "", 0, 0, 0, false } s, z, b := a.store.CheckAnomaly(resourceID, metric, value) if b == nil { return "", 0, 0, 0, false } return string(s), z, b.Mean, b.StdDev, true } // GetBaseline implements context.BaselineProvider func (a *BaselineStoreAdapter) GetBaseline(resourceID, metric string) (mean float64, stddev float64, sampleCount int, ok bool) { if a.store == nil { return 0, 0, 0, false } b, exists := a.store.GetBaseline(resourceID, metric) if !exists || b == nil { return 0, 0, 0, false } return b.Mean, b.StdDev, b.SampleCount, true }