package meteo import ( "context" "io" "log/slog" ) type Service struct { csv CSV repo Repository } func NewService(repo Repository) *Service { return &Service{ csv: CSV{}, repo: repo, } } func (s *Service) IngestCSV(ctx context.Context, r io.Reader, fs *FileStats) error { accepted, rejected, err := s.csv.Parse(r) if err != nil { return err } fs.RowsInserted, fs.RowsRejected, err = s.repo.InsertMeteoDataTX(ctx, accepted, rejected) if err != nil { slog.Error("error inserting meteo data", "err", err) return err } return nil }