package cmn

// RespCode 返回结果码
type RespCode int16

// resp code
const (
	REST_CODE_OK                       RespCode = 200 // 成功
	REST_CODE_FAIL                     RespCode = 500 // 失败
	REST_CODE_VER_LOWER                RespCode = 501 // 版本号较低
	REST_CODE_KEY_NULL                 RespCode = 502 // key为空
	REST_CODE_PARAM_ERR                RespCode = 503 // 参数类型错误
	REST_CODE_NOT_EXIST                RespCode = 504 // 数据不存在
	REST_CODE_REQ_FREQ                 RespCode = 505 // 请求过于频繁
	REST_CODE_DECRYPT_FAIL             RespCode = 506 // 解密错误
	REST_CODE_RPCINFO_NIL              RespCode = 507 // 没有配置rpc账号信息
	REST_CODE_USER_NIL                 RespCode = 508 // 用户信息不存在
	REST_CODE_VERSION_ERR              RespCode = 509 // 数据版本错误
	REST_CODE_VER_UNEQUAL              RespCode = 510 // 版本号不相等
	REST_CODE_DATA_OP_ERR              RespCode = 511 // 数据操作失败
	REST_CODE_DATA_PARSE_ERR           RespCode = 512 // 数据解析失败
	REST_CODE_CONTACT_NOT_EXIST        RespCode = 513 // 联系人信息不存在
	REST_CODE_GET_CONTACT_ERR          RespCode = 514 // 获取联系人信息失败
	REST_CODE_GET_CONTACT_REQ_ERR      RespCode = 515 // 获取联系人申请信息失败
	REST_CODE_GET_CONTACT_REQ_CHAT_ERR RespCode = 516 // 获取联系人申请聊天信息失败
	REST_CODE_GET_DEV_ERR              RespCode = 517 // 获取设备信息失败
	REST_CODE_DEV_NOT_EXIST            RespCode = 518 // 设备信息不存在
	REST_CODE_PROXY_EMPTY              RespCode = 519 // 代理信息为空
	REST_CODE_GET_DEV_VER_ERR          RespCode = 520 // 获取设备版本号失败
	REST_CODE_GET_GROUP_ERR            RespCode = 521 // 获取群信息失败
	REST_CODE_PERMISSION_DENIED        RespCode = 522 // 权限不足
	REST_CODE_BEEN_BLACKED             RespCode = 523 // 被拉黑了
	REST_CODE_NOT_IN_CONTACT           RespCode = 524 // 不在对方通讯录中
	REST_CODE_GET_GROUP_MEM_ERR        RespCode = 525 // 获取群成员信息失败
	REST_CODE_USER_NOT_IN_GROUP        RespCode = 526 // 用户不是群成员
	REST_CODE_IN_GROUP_BLACK_LIST      RespCode = 527 // 用户在群的黑名单中
	REST_CODE_GET_GROUP_MSG_ERR        RespCode = 528 // 获取群消息失败
	REST_CODE_CONTACT_IS_FRIEND        RespCode = 529 // 已经是联系人无需申请
	REST_CODE_CONTACT_IS_BLOCK         RespCode = 530 // 已经被拉黑不能申请
	REST_CODE_NOT_GROUP_MGR            RespCode = 531 // 非管理员或群主不能修改群信息
	REST_CODE_NOT_GROUP_OWNER          RespCode = 532 // 非群主不能解散群
	REST_CODE_ONLY_OPERATE_SELF        RespCode = 533 // 只能操作自己的信息
	REST_CODE_GROUP_IS_DISS            RespCode = 534 // 群已解散无法操作
	REST_CODE_BAD_OPRATE               RespCode = 535 // 非法操作
	REST_CODE_CANNOT_VOICE             RespCode = 536 // 不能拨打音视频
	REST_CODE_CANNOT_CHAT              RespCode = 537 // 不能发送消息
	REST_CODE_REFUSE_CHAT              RespCode = 538 // 对方拒收了你的消息！
	REST_CODE_REFUSE_VOICE             RespCode = 539 // 对方拒绝了你的通话请求！
	REST_CODE_CONTACT_IS_STRAGNER      RespCode = 540 // 对方是陌生人
	REST_CODE_CONTACT_APPLY_HAVE_ONE   RespCode = 541 // 已经有一条申请记录了，且处于申请状态，不能再发起申请
	REST_CODE_GROUP_IS_INGROUP         RespCode = 542 // 已经是群成员，不能重复发起申请
	REST_CODE_DEVICE_CANNOTONLINE      RespCode = 543 // 已经被挤下线，需要下线处理
	REST_CODE_VERIFY_FAILED            RespCode = 544 // 验签失败
	REST_CODE_DATA_MARSHAL_FAILED      RespCode = 545 // 数据Marshal失败
	REST_CODE_FAVORITE_FLODER_UNIQUE   RespCode = 546 // 收藏夹已存在，操作失败
	REST_CODE_USER_INVAILD             RespCode = 547 // 该用户已注销

	REST_CODE_SECRE_ROOM_PWD        RespCode = 1001 // 密室密码不正确，操作失败
	REST_CODE_SECRE_ROOM_PWD_UNIQUE RespCode = 1002 // 密室密码已存在，操作失败
	REST_CODE_SECRE_ROOM_IS_NULL    RespCode = 1003 // 密室不存在
	REST_CODE_SECRE_ROOM_UNIQUE     RespCode = 1004 // 密室已存在，操作失败
	REST_CODE_SECRE_ROOM_MAX_COUNT  RespCode = 1005 // 密室数量过多，操作失败

	REST_CODE_DISABLE_REVOKE RespCode = 2000 // 不允许撤回
	REST_CODE_REVOKE_TIMEOUT RespCode = 2001 // 撤回超时

	REST_CODE_LIMIT_AREA RespCode = 3000 // 限制区域

	REST_CODE_FORBIDDEN_AREA RespCode = 3001 // 受限制区域

	REST_CODE_GROUP_OWNER_CLOSE_ACCOUNT RespCode = 4001 // 群主不能注销帐户

)

// String function get the type relation describe.
func (rc RespCode) String() string {
	switch rc {
	case REST_CODE_OK:
		return "success"
	case REST_CODE_FAIL:
		return "failed"
	case REST_CODE_VER_LOWER:
		return "input version is lower than record"
	case REST_CODE_KEY_NULL:
		return "please input valid param: key"
	case REST_CODE_PARAM_ERR:
		return "input param err"
	case REST_CODE_NOT_EXIST:
		return "value not exist"
	case REST_CODE_REQ_FREQ:
		return "request too frequent"
	case REST_CODE_DECRYPT_FAIL:
		return "decrypt fail"
	case REST_CODE_RPCINFO_NIL:
		return "don't config improto connect account"
	case REST_CODE_USER_NIL:
		return "user info not exist"
	case REST_CODE_VERSION_ERR:
		return "data versions are inconsistent"
	case REST_CODE_VER_UNEQUAL:
		return "input version is unequal with record"
	case REST_CODE_DATA_OP_ERR:
		return "data operation failed"
	case REST_CODE_DATA_PARSE_ERR:
		return "data parse err"
	case REST_CODE_CONTACT_NOT_EXIST:
		return "contact not exist"
	case REST_CODE_GET_CONTACT_ERR:
		return "get contact failed"
	case REST_CODE_GET_CONTACT_REQ_ERR:
		return "get contact request info failed"
	case REST_CODE_GET_CONTACT_REQ_CHAT_ERR:
		return "get contact request chat info failed"
	case REST_CODE_GET_DEV_ERR:
		return "get device info failed"
	case REST_CODE_DEV_NOT_EXIST:
		return "device info not exist"
	case REST_CODE_PROXY_EMPTY:
		return "proxy id is empty"
	case REST_CODE_GET_DEV_VER_ERR:
		return "get device version failed"
	case REST_CODE_GET_GROUP_ERR:
		return "get group info failed"
	case REST_CODE_PERMISSION_DENIED:
		return "operate permission denied"
	case REST_CODE_BEEN_BLACKED:
		return "you are been blacked"
	case REST_CODE_NOT_IN_CONTACT:
		return "not in target contact list"
	case REST_CODE_GET_GROUP_MEM_ERR:
		return "get group member failed"
	case REST_CODE_USER_NOT_IN_GROUP:
		return "user is not a group member"
	case REST_CODE_IN_GROUP_BLACK_LIST:
		return "user is in group black list"
	case REST_CODE_GET_GROUP_MSG_ERR:
		return "get group msg failed"
	case REST_CODE_CONTACT_IS_FRIEND:
		return "is in your contact cannot add"
	case REST_CODE_CONTACT_IS_BLOCK:
		return "is blocked cannot add"
	case REST_CODE_NOT_GROUP_MGR:
		return "you are not a group admin or owner"
	case REST_CODE_NOT_GROUP_OWNER:
		return "you are not a group owner cannot Dissolve"
	case REST_CODE_ONLY_OPERATE_SELF:
		return "you can not operate others info"
	case REST_CODE_GROUP_IS_DISS:
		return "group is dissolve cannot operate"
	case REST_CODE_BAD_OPRATE:
		return "bad operate"
	case REST_CODE_CANNOT_VOICE:
		return "can not voice"
	case REST_CODE_CANNOT_CHAT:
		return "can not contact you"
	case REST_CODE_REFUSE_CHAT:
		return "user refuse chat"
	case REST_CODE_REFUSE_VOICE:
		return "user refuse voice"
	case REST_CODE_CONTACT_APPLY_HAVE_ONE:
		return "is have one apply,can not add"
	case REST_CODE_GROUP_IS_INGROUP:
		return "is in group cannot add"
	case REST_CODE_DEVICE_CANNOTONLINE:
		return "another online new device can not online"
	case REST_CODE_DATA_MARSHAL_FAILED:
		return "data parse failed"
	case REST_CODE_LIMIT_AREA:
		return "limit area"
	case REST_CODE_FORBIDDEN_AREA:
		return "forbidden"
	case REST_CODE_GROUP_OWNER_CLOSE_ACCOUNT:
		return "group owner close account"
	case REST_CODE_USER_INVAILD:
		return "user invaild"
	}
	return "unknown"
}
