package workflow

import (
	"context"

	"github.com/pingcap/log"
	"github.com/tidbcloud/pkgv2/logid"
	"github.com/tidbcloud/tiinf/monitor/tilog"
	"go.uber.org/zap"
)

func GetBaseLogger(ctx context.Context) *zap.Logger {
	newCtx := WithLogID(ctx)
	legacyLogID := logid.GetLogid(newCtx)
	return log.L().Named("metrics-integration").
		With(zap.String("legacy_log_id", legacyLogID)).
		With(tilog.TraceIDFromContext(ctx)...)
}

func WithLogID(ctx context.Context) context.Context {
	logId := logid.GetLogid(ctx)
	if logId == "" {
		logId = logid.GenLogid()
		return logid.WithLogid(ctx, logId)
	}
	return ctx
}
