package errorcode

import (
	"context"

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

var (
	ErrCodeInvalidDate               = NewAuditLogBusinessErrCode(1, "ErrCodeInvalidFileType")
	ErrCodeDownloadExceedMaxNumber   = NewAuditLogBusinessErrCode(2, "ErrCodeDownloadExceedMaxNumber")
	ErrCodeFilterRuleNotFind         = NewAuditLogBusinessErrCode(3, "ErrCodeFilterRuleNotFind")
	ErrCodeFilterRuleExceedMaxNumber = NewAuditLogBusinessErrCode(5, "ErrCodeFilterRuleExceedMaxNumber")
)

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

var AuditLogErrorMessages = map[bizerr.ErrCode]string{
	ErrCodeFilterRuleNotFind:         "filter rule not find, please check the filter rule name.",
	bizerr.ErrCodeParams:             "invalid params",
	bizerr.ErrCodeRecordNotFound:     "record not find",
	bizerr.ErrCodeRecordExist:        "record already exist",
	ErrCodeInvalidDate:               "Invalid date, please check your date.",
	ErrCodeDownloadExceedMaxNumber:   "Exceed the maximum number 100, please reduce the number of audit log files.",
	ErrCodeFilterRuleExceedMaxNumber: "You are only allowed to create up to 50 filter rules.",
}

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