syntax = "proto3";

package ccim.protocol;

option csharp_namespace = "CCIM.Protocol";

enum NetStatus {
    NET_STATUS_ONLINE = 0;
    NET_STATUS_OFFLINE = 1;
}

message Contact {
    int64 contact_user_id = 1;      // 联系人用户id
    string contact_user_name = 2;   // 联系人用户名字
    int64 contact_group_id = 3;     // 联系人群组id
    int64 private_id = 4;           // 私聊对话id
    int64 read_msg_id = 5;          // 已读消息id
    NetStatus net_status = 6;       // 网络状态
    string ext_data = 7;            // 扩展数据
}

message Dialog {
    enum DialogType {
        FRIEND = 0;
        STRANGER = 1;
    }
    int64 contact_user_id = 1;      // 联系人用户id
    string contact_user_name = 2;   // 联系人用户名字
    int64 contact_group_id = 3;     // 联系人群组id
    int64 private_id = 4;           // 私聊对话id
    int64 pushed_msg_id = 5;        // 已读消息id
    DialogType dialog_type = 6;     // 对话类型
    NetStatus net_status = 7;       // 网络状态
    string ext_data = 8;            // 扩展数据

    int64 read_msg_id = 9;          // 已读消息id
}

/**
 * 联系人申请
 */
message ContactReqData {
    int64 user_id = 1;
    string username = 2;
    string ext_data = 3;
}

message AddContactResponse {
    enum AddResult {
        SUCCESS = 0;
        ALREADY_SENT = 1;
        NO_AUTHORITY = 2;
        ALREADY_CONTACT = 3;
        ACCEPT_REQ = 4;         // 接受对方的好友申请(对方已经发送申请，自己不必申请直接同意)
    }
    AddResult result = 1;
    Contact new_contact = 2;
}

message DeleteContactGroupRequest {
    int64 contact_group_id = 1;
}

message DeleteContactGroupResponse {}