package errorcode

import (
	"context"

	"github.com/tidbcloud/pkgv2/bizerr"
	"github.com/tidbcloud/pkgv2/svcid"
)

var (
	ErrCodeGreaterThanDMTaskNumbersLimit = NewDMBusinessErrCode(1, "ErrCodeGreaterThanDMTaskNumbersLimit")
	ErrCodeSourceNetworkUnreachable      = NewDMBusinessErrCode(2, "ErrNetworkUnreachable")
)

var DMErrorMessages = map[bizerr.ErrCode]string{
	ErrCodeSourceNetworkUnreachable: "Unable to connect to the source. Please verify that the provided endpoint service is accessible and try again. If the issue persists after retrying, please contact technical support.",
}

func NewDMBusinessErrCode(offset int, memo string) bizerr.ErrCode {
	return bizerr.NewBusinessErrCode(svcid.ServerlessService, offset+DMErrorOffSet, memo)
}

func PrepareDMErrorMessage(ctx context.Context, err error) bizerr.BizError {
	return PrepareErrorMessage(ctx, err, DMErrorMessages)
}
