package service import ( "pc-monitor-server/model" "pc-monitor-server/repository" "time" ) type MetricsService struct { repo *repository.MetricsRepository } func NewMetricsService(repo *repository.MetricsRepository) *MetricsService { return &MetricsService{repo: repo} } func (s *MetricsService) Save(m *model.Metrics) error { return s.repo.Save(m) } func (s *MetricsService) GetLatest(deviceID string) (*model.Metrics, error) { return s.repo.GetLatest(deviceID) } func (s *MetricsService) GetHistory(deviceID string, start, end time.Time, limit int) ([]model.Metrics, error) { if limit <= 0 { limit = 1000 } return s.repo.GetHistory(deviceID, start, end, limit) } func (s *MetricsService) Cleanup(retentionDays int) error { before := time.Now().AddDate(0, 0, -retentionDays) return s.repo.Cleanup(before) }