package tidbcloudnative

import (
	"context"
	"net/http"

	"github.com/mem9-ai/drive9/pkg/logger"
	"go.uber.org/zap"
)

func logTiDBCloudAPIResult(ctx context.Context, api, operation, result string, status int, fields ...zap.Field) {
	fields = append([]zap.Field{
		zap.String("mode", "openapi"),
		zap.String("api", api),
		zap.String("operation", operation),
		zap.String("result", result),
	}, fields...)
	switch {
	case result == tidbCloudResultOK:
		logger.Info(ctx, "tidbcloud_api_result", fields...)
	case result == "denied" || status == http.StatusUnauthorized || status == http.StatusForbidden:
		logger.Warn(ctx, "tidbcloud_api_result", fields...)
	default:
		logger.Error(ctx, "tidbcloud_api_result", fields...)
	}
}
