package log

import (
	"github.com/tidbcloud/dataflow-service/pkg/redact"
	"go.uber.org/zap"
)

// WithRedactedRequest attaches a JSON-encoded request after replacing known fields.
func WithRedactedRequest(logger *zap.Logger, req interface{}) *zap.Logger {
	payload, err := redact.RedactKeysToJSON(redact.PasswordFields, req)
	if err != nil {
		logger.Warn("prepare request context error", zap.Error(err))
		return logger
	}
	return logger.With(zap.ByteString("req", payload))
}
