syntax = "proto3";

package ccim.protocol;

enum StatusCode {
    STATUS_CODE_OK = 0;                                             // 正常

    STATUS_CODE_NO_RESPONSE = 10;                                   // 无响应

    STATUS_CODE_SERVER_INTERNAL_ERROR = 10000;                      // 服务器内部未知错误
    STATUS_CODE_TOO_FREQUENTLY_ERROR = 10001;                       // 调用过于频繁
    STATUS_CODE_UNKNOWN_REQUEST_ERROR = 10002;                      // 未知请求
    STATUS_CODE_INVALID_ARGUMENTS_ERROR = 10003;                    // 无效参数

    // AUTH_ERROR = 20000;
    STATUS_CODE_AUTH_INCORRECT_INPUT_ERROR = 20001;                 // 认证无效输入
    STATUS_CODE_NO_AUTH_ERROR = 20002;                              // 未认证
    STATUS_CODE_INVALID_APP_KEY = 20003;                            // 无效app_key
    STATUS_CODE_SIGN_EXPIRED = 20004;                               // 签名过期
    STATUS_CODE_INVALID_SIGN = 20005;                               // 无效签名
    STATUS_CODE_EXT_DATA_TOO_LARGE = 20006;                         // 扩展数据过大
    STATUS_CODE_SENSITIVE_ERROR = 20007;                            // 包含敏感信息，被禁止发送

    // CHAT_SERVICE_ERROR = 30000;
    STATUS_CODE_CHECK_CONTACT_UPDATED_ERROR = 30001;                // 好友请求已同意或拒绝
    STATUS_CODE_CONTACT_GROUP_EXCEEDED_LIMIT_ERROR = 30002;         // 群组成员到达上限
    STATUS_CODE_CONTACT_EXCEEDED_LIMIT_ERROR = 30003;               // 联系人达到上限

    STATUS_CODE_NOT_CONTACT_ERROR = 30101;                          // 非好友不能调用该api
    STATUS_CODE_USER_MUTED_ERROR = 30102;                           // 用户被禁言
    STATUS_CODE_SEND_TO_BLOCKED_ERROR = 30103;                      // 向被拉黑的人发送消息

    //    STATUS_CODE_GROUP_NOT_MEMBER_ERROR = 30201;
    //    STATUS_CODE_GROUP_MUTED_ME_ERROR = 30202;

    STATUS_CODE_CHANNEL_NOT_MEMBER_ERROR = 30302;                   // 非频道成员不能调用该api
    STATUS_CODE_CHANNEL_MUTED_ME_ERROR = 30303;                     // 频道对我禁言
    STATUS_CODE_CHANNEL_NOT_EXISTS = 30304;                         // 频道不存在
    STATUS_CODE_CHANNEL_NOT_PERMITTED = 30305;                      // 频道不允许该用户加入
    STATUS_CODE_CHANNEL_LIMIT_EXCEEDED = 30306;                     // 频道加入时人数达到限制
}

message RequestMessageHeader {
    int32 version = 1;
    int32 seq = 2;
}

message ResponseMessageHeader {
    int32 version = 1;
    int32 seq = 2;
    StatusCode code = 3;
}