package process

import (
	"fmt"
	"os"
	"path/filepath"

	"github.com/pingcap/log"
	"go.uber.org/zap"
)

// CleanupTempFiles cleans up temporary parquet and sqlite files.
func CleanupTempFiles(path string) error {
	dataDirs, err := filepath.Glob(filepath.Join(path, "*"))
	if err != nil {
		return fmt.Errorf("failed to list data directories: %v", err)
	}

	for _, dir := range dataDirs {
		patterns := []string{
			filepath.Join(dir, "parquet", "*", "*.parquet"),
			filepath.Join(dir, "log-stats", "1h", "*.db"),
		}
		for _, pattern := range patterns {
			matches, err := filepath.Glob(pattern)
			if err != nil {
				log.Error("failed to find temp files", zap.String("pattern", pattern), zap.Error(err))
				continue
			}
			for _, f := range matches {
				if err := os.Remove(f); err != nil {
					log.Error("failed to remove temp file", zap.String("file", f), zap.Error(err))
				} else {
					log.Info("remove temp files", zap.String("file", f))
				}
			}
		}
	}
	return nil
}
