76 lines
1.4 KiB
Protocol Buffer
76 lines
1.4 KiB
Protocol Buffer
|
syntax = "proto3";
|
||
|
|
||
|
package torchat;
|
||
|
|
||
|
import "user.proto";
|
||
|
|
||
|
option java_package = "org.torchat.proto";
|
||
|
option java_multiple_files = true;
|
||
|
|
||
|
message GroupId {
|
||
|
string value = 1;
|
||
|
}
|
||
|
|
||
|
message GroupProfile {
|
||
|
GroupId group_id = 1;
|
||
|
string display_name = 2;
|
||
|
string description = 3;
|
||
|
repeated user.UserId members = 4;
|
||
|
user.UserId creator = 5;
|
||
|
int64 created_at = 6;
|
||
|
string avatar_url = 7;
|
||
|
repeated string tags = 8;
|
||
|
string rules = 9;
|
||
|
}
|
||
|
|
||
|
message GroupMember {
|
||
|
user.UserId user_id = 1;
|
||
|
bool is_admin = 2;
|
||
|
bool is_muted = 3;
|
||
|
int64 joined_at = 4;
|
||
|
}
|
||
|
|
||
|
message GroupMessage {
|
||
|
GroupId group_id = 1;
|
||
|
user.UserId sender = 2;
|
||
|
string content = 3;
|
||
|
int64 timestamp = 4;
|
||
|
string message_id = 5;
|
||
|
}
|
||
|
|
||
|
message CreateGroupRequest {
|
||
|
GroupProfile profile = 1;
|
||
|
}
|
||
|
|
||
|
message CreateGroupReply {
|
||
|
GroupId group_id = 1;
|
||
|
}
|
||
|
|
||
|
message GetGroupRequest {
|
||
|
GroupId group_id = 1;
|
||
|
}
|
||
|
|
||
|
message GetGroupReply {
|
||
|
GroupProfile profile = 1;
|
||
|
repeated GroupMember members = 2;
|
||
|
}
|
||
|
|
||
|
message SendGroupMessageRequest {
|
||
|
GroupMessage message = 1;
|
||
|
}
|
||
|
|
||
|
message SendGroupMessageReply {
|
||
|
bool success = 1;
|
||
|
}
|
||
|
|
||
|
message StreamGroupMessagesRequest {
|
||
|
GroupId group_id = 1;
|
||
|
}
|
||
|
|
||
|
service GroupService {
|
||
|
rpc CreateGroup(CreateGroupRequest) returns (CreateGroupReply);
|
||
|
rpc GetGroup(GetGroupRequest) returns (GetGroupReply);
|
||
|
rpc SendMessage(SendGroupMessageRequest) returns (SendGroupMessageReply);
|
||
|
rpc StreamMessages(StreamGroupMessagesRequest) returns (stream GroupMessage);
|
||
|
}
|