package util

import (
	"github.com/tidbcloud/pkgv2/bizerr"
	"go.uber.org/zap/zapcore"
)

func ErrorOrInfo(err error) zapcore.Level {
	return getLogLevel(err, zapcore.ErrorLevel, zapcore.InfoLevel)
}

func WarnOrInfo(err error) zapcore.Level {
	return getLogLevel(err, zapcore.WarnLevel, zapcore.InfoLevel)
}

func getLogLevel(err error, errLevel, defLevel zapcore.Level) zapcore.Level {
	if err == nil {
		return defLevel
	}

	if e, ok := err.(bizerr.BizError); ok && e.IsError() {
		return defLevel
	}
	return errLevel
}
