Select Git revision
mailbox.proto
mailbox.proto 2.00 KiB
syntax = "proto3";
import "google/protobuf/empty.proto";
import "common/common.proto";
import "google/protobuf/timestamp.proto";
option go_package = "git.perx.ru/perxis/perxis-go/proto/mailbox;mailbox";
package mailbox;
// Сообщение для уведомления
message Message {
string id = 1; // Уникальный идентификатор уведомления
string object = 2; // Идентификатор объекта события
string from = 3; // Идентификатор отправителя пользователя/сервиса/подсистемы
repeated string to = 4; // Идентификатор получателя пользователя/сервиса/подсистемы
string title = 5; // Заголовок уведомления
string message = 6; // Текст уведомления
google.protobuf.Timestamp created_at = 7; // Время создания
bool is_read = 8; // Статус прочтения
}
// Отправить уведомление
message SendRequest {
Message message = 1;
}
// Запрос на получение уведомлений
message ListRequest {
string recipient = 1;
common.FindOptions opts = 2;
}
// Ответ на получение уведомлений
message ListResponse {
repeated Message notifications = 1;
}
// Пометка уведомлений как прочитанных
message MarkAsReadRequest {
string recipient = 1;
repeated string notification_ids = 2;
}
// Сервис уведомлений
service Mailbox {
// Отправка уведомления
rpc Send(SendRequest) returns(google.protobuf.Empty) {};
// Получение уведомлений, поле recipients в Notification всегда содержит только получателя из запроса
rpc List(ListRequest) returns(ListResponse);
// Пометка уведомлений как прочитанных
rpc MarkAsRead(MarkAsReadRequest) returns(google.protobuf.Empty) {};
}