From 047ef51659690b802c0321b605c3a8aea27d0ec0 Mon Sep 17 00:00:00 2001
From: Alena Petraki <alena.petraki@gmail.com>
Date: Wed, 24 May 2023 11:53:59 +0300
Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?=
 =?UTF-8?q?=D0=BD=D0=B0=20=D1=81=D0=BF=D0=B5=D1=86=D0=B8=D1=84=D0=B8=D0=BA?=
 =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BF=D0=BE=20=D0=BF=D0=B5=D1=80?=
 =?UTF-8?q?=D0=B5=D0=BD=D0=BE=D1=81=D1=83=20=D0=BF=D1=80=D0=BE=D1=81=D1=82?=
 =?UTF-8?q?=D1=80=D0=B0=D0=BD=D1=81=D1=82=D0=B2=20=D0=BC=D0=B5=D0=B6=D0=B4?=
 =?UTF-8?q?=D1=83=20=D0=BE=D1=80=D0=B3=D0=B0=D0=BD=D0=B8=D0=B7=D0=B0=D1=86?=
 =?UTF-8?q?=D0=B8=D1=8F=D0=BC=D0=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 proto/spaces/spaces.proto | 42 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/proto/spaces/spaces.proto b/proto/spaces/spaces.proto
index 87cbef9..0e58ed2 100644
--- a/proto/spaces/spaces.proto
+++ b/proto/spaces/spaces.proto
@@ -12,6 +12,10 @@ message Space {
   string name = 3;
   string description = 4;
   State state = 5;
+
+
+  string transfer_to_org = 6; // идентификатор организации, в которую запрошен перенос пространства
+
   Config config = 10;
 }
 
@@ -67,6 +71,27 @@ message DeleteRequest {
   string space_id = 1;
 }
 
+message TransferRequest {
+  string space_id = 1;
+  string transfer_to_org = 2;
+}
+
+message AbortTransferRequest {
+  string space_id = 1;
+}
+
+message ListTransfersRequest {
+  string org_id = 1;
+}
+
+message ListTransfersResponse {
+  repeated Space spaces = 1;
+}
+
+message AcceptTransferRequest {
+  string space_id = 1;
+}
+
 service Spaces {
   rpc Create(CreateRequest) returns(CreateResponse) {}
   rpc Get(GetRequest) returns(GetResponse) {}
@@ -74,4 +99,21 @@ service Spaces {
   rpc Update(UpdateRequest) returns(google.protobuf.Empty) {}
   rpc UpdateConfig(UpdateConfigRequest) returns(google.protobuf.Empty) {}
   rpc Delete(DeleteRequest) returns(google.protobuf.Empty) {}
+
+  // Transfer устанавливает для пространства значение поля RequestedMoveTo. После этого пространство
+  // будет отображаться в списке входящих запросов на перемещение в организации `orgID` (запрос ListIncoming)
+  // С пространством можно продолжать работу в текущей организации, пока запрос на перемещение не будет
+  // принят в целевой организации
+  rpc Transfer(TransferRequest) returns(google.protobuf.Empty) {}
+
+  // AbortTransfer - отменить перемещение пространства в другую организацию
+  rpc AbortTransfer(AbortTransferRequest) returns(google.protobuf.Empty) {}
+
+  // ListTransfers возвращает список пространств, перемещение которых было запрошено в текущую организацию
+  rpc ListTransfers(ListTransfersRequest) returns(ListTransfersResponse) {}
+
+  // AcceptTransfer - принять запрос на перемещение пространства. Оно будет перемещено в текущую организацию со
+  // всеми входящими в него данными: ролями, участниками, контентом, пр. и более не будет доступно в
+  // старой организации
+  rpc AcceptTransfer(AcceptTransferRequest) returns(google.protobuf.Empty) {}
 }
-- 
GitLab