From 795aeb65ee38447bbbdb176179139883be74ac9a Mon Sep 17 00:00:00 2001
From: Alex Petraky <petraky@perx.ru>
Date: Mon, 6 May 2024 12:39:44 +0000
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=20Find=20=D0=B4=D0=BB?=
 =?UTF-8?q?=D1=8F=20=D0=BF=D1=80=D0=BE=D1=81=D1=82=D1=80=D0=B0=D0=BD=D1=81?=
 =?UTF-8?q?=D1=82=D0=B2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 proto/common/common.proto |  3 +++
 proto/spaces/spaces.proto | 22 ++++++++++++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/proto/common/common.proto b/proto/common/common.proto
index ac9e243..96c102f 100644
--- a/proto/common/common.proto
+++ b/proto/common/common.proto
@@ -6,6 +6,9 @@ package common;
 
 import "google/protobuf/struct.proto";
 
+// Deprecated
+// Поддержка этой реализации фильтра осталась только в запросе поиска записей (Items.Find)
+// Возможно, его поддержка будет прекращена в следующих версиях системы
 message Filter {
   string op = 1;
   string field = 2;
diff --git a/proto/spaces/spaces.proto b/proto/spaces/spaces.proto
index 91d7716..4a3410f 100644
--- a/proto/spaces/spaces.proto
+++ b/proto/spaces/spaces.proto
@@ -6,6 +6,7 @@ package content.spaces;
 
 import "google/protobuf/empty.proto";
 import "google/protobuf/timestamp.proto";
+import "common/common.proto";
 
 message Space {
   string id = 1;
@@ -103,10 +104,31 @@ message MoveRequest {
   string org_id = 2; // Идентификатор организации, в которую пространство должно быть перемещено. Обязателен для заполнения только в случае запросов с системным уровнем доступа, в остальных случаях опционален
 }
 
+message Filter {
+  repeated string id = 1; // Список ID пространств
+  repeated string org_id = 2; // Список организаций
+  repeated string name = 3; // Список названий
+  repeated State state = 4; // Список состояний
+  repeated string transfer_to_org = 5; // Список организаций, в которые запрошен перенос пространства
+}
+
+message FindRequest {
+  // Фильтры для поиска
+  Filter filter = 1;
+  // Опции поиска
+  common.FindOptions options = 2;
+}
+
+message FindResponse {
+  repeated Space spaces = 1;
+  int32 total = 2;
+}
+
 service Spaces {
   rpc Create(CreateRequest) returns(CreateResponse) {}
   rpc Get(GetRequest) returns(GetResponse) {}
   rpc List(ListRequest) returns(ListResponse) {}
+  rpc Find(FindRequest) returns(FindResponse) {}
   rpc Update(UpdateRequest) returns(google.protobuf.Empty) {}
   rpc UpdateConfig(UpdateConfigRequest) returns(google.protobuf.Empty) {}
   rpc Delete(DeleteRequest) returns(google.protobuf.Empty) {}
-- 
GitLab