53 lines
1.4 KiB
Protocol Buffer
53 lines
1.4 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
option go_package = "./;protobuf";
|
|
package protobuf;
|
|
|
|
import "chat_message.proto";
|
|
import "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;
|
|
// Color of the chat for the CHAT_CREATED/COLOR_CHANGED event types
|
|
string color = 5;
|
|
// Chat image
|
|
bytes image = 6;
|
|
|
|
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;
|
|
COLOR_CHANGED = 8;
|
|
IMAGE_CHANGED = 9;
|
|
}
|
|
}
|
|
|
|
// 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;
|
|
}
|
|
}
|