package utils

import (
	"context"

	"github.com/spf13/viper"
	"github.com/tidbcloud/aipower/commons/config"
	"github.com/tidbcloud/tiinf/monitor/tilog"
	"go.uber.org/zap"
)

func SetSQLModeEnable(ctx context.Context, botType string) bool {
	// set to false default
	enable := false
	if !viper.GetBool(config.SetSQLModeEnable) {
		tilog.Info(ctx, "SetSQLModeEnable = false")
		return enable
	}
	tilog.Info(ctx, "SetSQLModeEnable = true")
	enableChannels := viper.GetStringSlice(config.SetSQLModeEnableChannels)
	tilog.Info(ctx, "set SQL mode enable channels", zap.Any("enableChannels", enableChannels))
	if len(enableChannels) == 0 {
		return enable
	}
	for _, channel := range enableChannels {
		if channel == "all" || channel == botType {
			enable = true
			break
		}
	}
	return enable
}

func GetInformationSchemaEnable(ctx context.Context, botType string) bool {
	// set to false default
	enable := false
	if !viper.GetBool(config.GetInformationSchemaEnable) {
		tilog.Info(ctx, "GetInformationSchemaEnable = false")
		return enable
	}
	tilog.Info(ctx, "GetInformationSchemaEnable = true")
	enableChannels := viper.GetStringSlice(config.GetInformationSchemaEnableChannels)
	tilog.Info(ctx, "get information schema enable channels", zap.Any("enableChannels", enableChannels))
	if len(enableChannels) == 0 {
		return enable
	}
	for _, channel := range enableChannels {
		if channel == "all" || channel == botType {
			enable = true
			break
		}
	}
	return enable
}
