45 lines
1.2 KiB
Protocol Buffer
45 lines
1.2 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package communities.v1;
|
|
|
|
import "communities/v1/chat_message.proto";
|
|
import "communities/v1/emoji_reaction.proto";
|
|
|
|
message MembershipUpdateEvent {
|
|
// Lamport timestamp of the event
|
|
uint64 clock = 1;
|
|
// List of public keys of objects of the action
|
|
repeated string members = 2;
|
|
// Name of the chat for the CHAT_CREATED/NAME_CHANGED event types
|
|
string name = 3;
|
|
// The type of the event
|
|
EventType type = 4;
|
|
|
|
enum EventType {
|
|
UNKNOWN = 0;
|
|
CHAT_CREATED = 1;
|
|
NAME_CHANGED = 2;
|
|
MEMBERS_ADDED = 3;
|
|
MEMBER_JOINED = 4;
|
|
MEMBER_REMOVED = 5;
|
|
ADMINS_ADDED = 6;
|
|
ADMIN_REMOVED = 7;
|
|
}
|
|
}
|
|
|
|
// MembershipUpdateMessage is a message used to propagate information
|
|
// about group membership changes.
|
|
// For more information, see https://github.com/status-im/specs/blob/master/status-group-chats-spec.md.
|
|
message MembershipUpdateMessage {
|
|
// The chat id of the private group chat
|
|
string chat_id = 1;
|
|
// A list of events for this group chat, first x bytes are the signature, then is a
|
|
// protobuf encoded MembershipUpdateEvent
|
|
repeated bytes events = 2;
|
|
|
|
// An optional chat message
|
|
oneof chat_entity {
|
|
ChatMessage message = 3;
|
|
EmojiReaction emoji_reaction = 4;
|
|
}
|
|
} |