package codes

// 系统
const (
	Fail    = 0   // 失败
	Success = 200 // 成功
)

// 业务代码 常规类
const (
	OK                 uint32 = 200   // 成功
	Canceled           uint32 = 10001 // 操作被取消。
	Unknown            uint32 = 10002 // 未知错误。
	InvalidArgument    uint32 = 10003 // 客户端指定了无效参数。
	DeadlineExceeded   uint32 = 10004 // 操作超时。
	NotFound           uint32 = 10005 // 未找到请求的实体。
	AlreadyExists      uint32 = 10006 // 创建实体失败，因为实体已经存在。
	ResourceExhausted  uint32 = 10008 // 某个资源已耗尽。
	FailedPrecondition uint32 = 10009 // 操作被拒绝，因为系统不处于所需状态。
	Aborted            uint32 = 10010 // 操作被中止，通常是由于并发问题。
	OutOfRange         uint32 = 10011 // 操作超出有效范围。
	Unimplemented      uint32 = 10012 // 操作未实现或不支持。
	Internal           uint32 = 10013 // 内部错误。
	Unavailable        uint32 = 10014 // 服务当前不可用。
	DataLoss           uint32 = 10015 // 不可恢复的数据丢失或损坏。
	RequestExceeded    uint32 = 10016 // 请求调用次数超过限制
	RPCError           uint32 = 10017 // Error 后台服务系统错误，一般为 RPC 调用错误
	CodeError          uint32 = 10018 // Error 后台服务系统错误，一般为编解码错误
	ContentTypeError   uint32 = 10019 // Content-Type 错误
	DomainInvalid      uint32 = 10020 // 域名不合法
	CacheError         uint32 = 10021 // 后台缓存读取错误
	RouteError         uint32 = 10022 // 路由解析失败
)

// 业务代码 身份鉴权类
const (
	Unauthenticated           uint32 = 20001 //	身份校验失败
	PermissionDenied          uint32 = 20002 //	调用方无权限执行指定的操作。
	OperationPermissionDenied uint32 = 20003 //	操作权限不足
	NonsupportOperation       uint32 = 20004 //	不支持的权限设置操作
	UserNoPermission          uint32 = 20005 //	用户无操作权限
	XsrfFailure               uint32 = 20006 //	xsrf 校验失败
	AccountCancellation       uint32 = 20007 //	账号注销
)

// 错误信息
const (
	SuccessMsg  string = "success"
	InternalMsg string = "internal error"
)

// EmptyJson json空字符串
const (
	EmptyJson string = `[]`
)

// 环境
const (
	EnvProduction string = "production"
	EnvTest       string = "test"

	VersionRelease string = "release"
	VersionTrial   string = "trial"
)
