From 8606df02e0df6807e503bf22471a295020a47fba Mon Sep 17 00:00:00 2001
From: Alena Petraki <alena.petraki@gmail.com>
Date: Thu, 25 May 2023 12:20:19 +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=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20Move=20=D0=B4=D0=BB?=
 =?UTF-8?q?=D1=8F=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=D1=81=D0=B0=20?=
 =?UTF-8?q?=D0=BF=D1=80=D0=BE=D1=81=D1=82=D1=80=D0=B0=D0=BD=D1=81=D1=82?=
 =?UTF-8?q?=D0=B2=D0=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 proto/spaces/spaces.proto | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/proto/spaces/spaces.proto b/proto/spaces/spaces.proto
index 0e58ed2..5a216fb 100644
--- a/proto/spaces/spaces.proto
+++ b/proto/spaces/spaces.proto
@@ -72,12 +72,12 @@ message DeleteRequest {
 }
 
 message TransferRequest {
-  string space_id = 1;
-  string transfer_to_org = 2;
+  string space_id = 1; // Идентификатор перемещаемого пространства
+  string transfer_to_org = 2; // Идентификатор организации, в которую пространство должно быть перемещено
 }
 
 message AbortTransferRequest {
-  string space_id = 1;
+  string space_id = 1; // Идентификатор перемещаемого пространства
 }
 
 message ListTransfersRequest {
@@ -88,8 +88,9 @@ message ListTransfersResponse {
   repeated Space spaces = 1;
 }
 
-message AcceptTransferRequest {
-  string space_id = 1;
+message MoveRequest {
+  string space_id = 1; // Идентификатор перемещаемого пространства
+  string org_id = 2; // Идентификатор организации, в которую пространство должно быть перемещено. Обязателен для заполнения только в случае запросов с системным уровнем доступа, в остальных случаях опционален
 }
 
 service Spaces {
@@ -104,16 +105,20 @@ service Spaces {
   // будет отображаться в списке входящих запросов на перемещение в организации `orgID` (запрос ListIncoming)
   // С пространством можно продолжать работу в текущей организации, пока запрос на перемещение не будет
   // принят в целевой организации
+  // Перенос может быть инициирован только владельцем организации, которой принадлежит пространство
   rpc Transfer(TransferRequest) returns(google.protobuf.Empty) {}
 
-  // AbortTransfer - отменить перемещение пространства в другую организацию
+  // AbortTransfer - отменить перемещение пространства в другую организацию. Может быть вызван как
+  // владельцем пространства-инициатора, там и владельцем принимающего пространства
   rpc AbortTransfer(AbortTransferRequest) returns(google.protobuf.Empty) {}
 
   // ListTransfers возвращает список пространств, перемещение которых было запрошено в текущую организацию
   rpc ListTransfers(ListTransfersRequest) returns(ListTransfersResponse) {}
 
-  // AcceptTransfer - принять запрос на перемещение пространства. Оно будет перемещено в текущую организацию со
+  // Move - перенести пространство в организацию, установленную в Space.TransferToOrg. Пространство переносится со
   // всеми входящими в него данными: ролями, участниками, контентом, пр. и более не будет доступно в
-  // старой организации
-  rpc AcceptTransfer(AcceptTransferRequest) returns(google.protobuf.Empty) {}
+  // исходной организации.
+  // В случае, если запрос осуществляется с системным уровнем доступа и передан параметр `org_id`, то перенос будет
+  // осуществлен вне зависимости от того, был он инициирован через метод `Transfer` или нет
+  rpc Move(MoveRequest) returns(google.protobuf.Empty) {}
 }
-- 
GitLab