add data Items

This commit is contained in:
xyz
2025-06-08 20:20:37 +08:00
parent 44a1452251
commit 030b5d6101
13 changed files with 810 additions and 13 deletions

82
proto/base.proto Normal file
View File

@ -0,0 +1,82 @@
syntax = "proto3";
package bite_im;
option cc_generic_services = true;
//用户信息结构
message UserInfo {
string user_id = 1;//用户ID
string nickname = 2;//昵称
string description = 3;//个人签名/描述
string phone = 4; //绑定手机号
bytes avatar = 5;//头像照片,文件内容使用二进制
}
//聊天会话信息
message ChatSessionInfo {
//群聊会话不需要设置单聊会话设置为对方用户ID
optional string single_chat_friend_id = 1;
string chat_session_id = 2; //会话ID
string chat_session_name = 3;//会话名称git
//会话上一条消息,新建的会话没有最新消息
optional MessageInfo prev_message = 4;
//会话头像 --群聊会话不需要,直接由前端固定渲染,单聊就是对方的头像
optional bytes avatar = 5;
}
//消息类型
enum MessageType {
STRING = 0;
IMAGE = 1;
FILE = 2;
SPEECH = 3;
}
message StringMessageInfo {
string content = 1;//文字聊天内容
}
message ImageMessageInfo {
//图片文件id,客户端发送的时候不用设置由transmit服务器进行设置后交给storage的时候设置
optional string file_id = 1;
//图片数据在ES中存储消息的时候只要id不要文件数据, 服务端转发的时候需要原样转发
optional bytes image_content = 2;
}
message FileMessageInfo {
optional string file_id = 1;//文件id,客户端发送的时候不用设置
optional int64 file_size = 2;//文件大小
optional string file_name = 3;//文件名称
//文件数据在ES中存储消息的时候只要id和元信息不要文件数据, 服务端转发的时候也不需要填充
optional bytes file_contents = 4;
}
message SpeechMessageInfo {
//语音文件id,客户端发送的时候不用设置
optional string file_id = 1;
//文件数据在ES中存储消息的时候只要id不要文件数据, 服务端转发的时候也不需要填充
optional bytes file_contents = 2;
}
message MessageContent {
MessageType message_type = 1; //消息类型
oneof msg_content {
StringMessageInfo string_message = 2;//文字消息
FileMessageInfo file_message = 3;//文件消息
SpeechMessageInfo speech_message = 4;//语音消息
ImageMessageInfo image_message = 5;//图片消息
};
}
//消息结构
message MessageInfo {
string message_id = 1;//消息ID
string chat_session_id = 2;//消息所属聊天会话ID
int64 timestamp = 3;//消息产生时间
UserInfo sender = 4;//消息发送者信息
MessageContent message = 5;
}
message FileDownloadData {
string file_id = 1;
bytes file_content = 2;
}
message FileUploadData {
string file_name = 1; //文件名称
int64 file_size = 2; //文件大小
bytes file_content = 3; //文件数据
}