package errors

import (
	"net/http"

	"github.com/tidbcloud/tiinf/errs"

	"github.com/tidbcloud/aipower/idl/pbgen/proto/api"
)

const (
	ErrCodeGenSqlFailed        = int64(api.ErrCodes_ERR_CODES_GEN_SQL_FAILED)
	ErrCodeGuessDatabaseFailed = int64(api.ErrCodes_ERR_CODES_GUESS_DATABASE_FAILED)
	ErrCodeTooManyTablesFailed = int64(api.ErrCodes_ERR_CODES_TOO_MANY_TABLES_FAILED)
	ErrCodeInvalidParams       = int64(api.ErrCodes_ERR_CODES_INVALID_PARAMA)
	ErrCodeRequestOpenaiError  = int64(api.ErrCodes_ERR_CODES_REQUEST_OPENAI_ERROR)
	ErrCodeGetDbMetasError     = int64(api.ErrCodes_ERR_CODES_GET_DB_METAS_ERROR)
	ErrCodeGetDbMetasEmpty     = int64(api.ErrCodes_ERR_CODES_GET_DB_METAS_EMPTY)
)

var (
	ErrCompletionGenSQLFailed        = errs.RegisterErrorType(errs.ErrBadRequest, http.StatusBadRequest, ErrCodeGenSqlFailed)
	ErrCompletionGuessDatabaseFailed = errs.RegisterErrorType(errs.ErrBadRequest, http.StatusBadRequest, ErrCodeGuessDatabaseFailed)
	ErrCompletionTooManyTables       = errs.RegisterErrorType(errs.ErrBadRequest, http.StatusBadRequest, ErrCodeTooManyTablesFailed)
	ErrCompletionInvalidParams       = errs.RegisterErrorType(errs.ErrBadRequest, http.StatusBadRequest, ErrCodeInvalidParams)
	ErrCompletionGetDBMetasEmpty     = errs.RegisterErrorType(errs.ErrBadRequest, http.StatusBadRequest, ErrCodeGetDbMetasEmpty)
	ErrCompletionRequestOpenAIFailed = errs.RegisterErrorType(errs.ErrBadRequest, http.StatusInternalServerError, ErrCodeRequestOpenaiError)
	ErrCompletionGetDBMetasFailed    = errs.RegisterErrorType(errs.ErrBadRequest, http.StatusInternalServerError, ErrCodeGetDbMetasError)
)
