package utils

import (
	"context"
	"fmt"
	"regexp"

	"github.com/pingcap-inc/clinic/clinic_data_service/pkg/common"
	"github.com/pingcap-inc/clinic/clinic_data_service/pkg/log"
	"go.uber.org/zap"
)

func GetDuckDBDeltaScan(clusterId string) string {
	// cluster := config.GetClusterByID(clusterId)

	cluster, err := common.GetCluster(context.Background(), clusterId)
	if err != nil {
		log.PlainError("Failed to get cluster", zap.String("cluster", clusterId), zap.Error(err))
		return ""
	}
	// org := config.GetOrgByClusterID(clusterId)
	deltaScan := `'s3://o11y-prod-shared-%s/deltalake/%s/%s/slowlogs'`
	return fmt.Sprintf(deltaScan, cluster.Region, cluster.OrgID, cluster.MetricsRouting)
}

func ReplaceDeltaScanWithParquet(sql string) string {
	//  delta_scan('...')
	re := regexp.MustCompile(`delta_scan\(\s*'[^']+'\s*\)`)

	newPart := `read_parquet('/Users/wlt/Downloads/slow-query/1.parquet')`
	newSQL := re.ReplaceAllString(sql, newPart)
	return newSQL
}
