From 22347c28db32b04090954b0aae320e9c073d2261 Mon Sep 17 00:00:00 2001 From: Pavel Antonov <antonov@perx.ru> Date: Fri, 7 Jul 2023 14:20:45 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B8=20=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D1=84=D0=B5=D0=B9=D1=81?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=B4=D0=BB=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D1=8B=20=D1=81=D0=BE=20=D1=81=D0=B2=D1=8F=D0=B7=D1=8F?= =?UTF-8?q?=D0=BC=D0=B8=20=D0=B2=20Perxis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proto/references/references.proto | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/proto/references/references.proto b/proto/references/references.proto index 589d4fd..692e25d 100644 --- a/proto/references/references.proto +++ b/proto/references/references.proto @@ -9,8 +9,9 @@ option go_package = "git.perx.ru/perxis/perxis-go/proto/references;references"; package content.references; - -// Reference - ссылка РЅР° запись +// Reference - ссылка РЅР° объект. +// Ссылка может быть РЅР° запись РІ текущем пространстве, окружении или РІ РґСЂСѓРіРѕРј пространстве. Если РЅРµ указано, +// то считается, что ссылка РЅР° запись РІ текущем пространстве Рё окружении объекта, РІ котором находится ссылка. message Reference { string id = 1; // ID записи string collection_id = 2; // ID коллекции @@ -18,13 +19,20 @@ message Reference { string space_id = 4; // ID пространства, РІ котором находится запись (опционально, если РЅРµ указано, то текущее пространство) string env_id = 5; // ID окружения, РІ котором находится запись (опционально, если РЅРµ указано, то текущее окружение) items.Item item = 6; // Запись, РЅР° которую ссылается ссылка + string error = 7; // Ошибка, если запись РЅРµ найдена (возвращается вместо записи) } -// Relation - СЃРІСЏР·СЊ между РґРІСѓРјСЏ объектами указанными РІ ссылках +// Relation - СЃРІСЏР·СЊ между РґРІСѓРјСЏ объектами указанными РІ ссылках. +// РўРёРї СЃРІСЏР·Рё может быть любым, РЅРѕ есть зарезервированные типы, которые используются РІ системе: +// - "ref" - используется для связей установленных через поля ссылок РІ объектах +// - "tag" - используется для связей установленных через поля тегов РІ объектах, используется РІ таксономии +// Расширения РјРѕРіСѓС‚ использовать СЃРІРѕРё типы связей для СЃРІРѕРёС… целей. message Relation { Reference to = 1; // Ссылка РЅР° объект, РЅР° который указывает СЃРІСЏР·СЊ Reference from = 2; // Ссылка РЅР° объект, РѕС‚ которого РёСЃС…РѕРґРёС‚ СЃРІСЏР·СЊ string type = 3; // РўРёРї СЃРІСЏР·Рё + bool weak = 4; // Если true, то СЃРІСЏР·СЊ слабая Рё позволяет удалять записи, РЅР° которые РѕРЅР° указывает + // int32 weight = 4; // Вес СЃРІСЏР·Рё // uint32 epoch = 5; // Рспользуется РІ процессе перестроения связей // bool bidirectional = 6; // Если true, то СЃРІСЏР·СЊ двунаправленная @@ -44,9 +52,9 @@ message GetResponse { repeated Reference notfound = 2; } -// SetRelationRequest принимает массив отношений для установки +// SetRelationRequest принимает массив связей для установки message SetRelationsRequest { - repeated Relation relation = 1; + repeated Relation relation = 1; // РЎРїРёСЃРѕРє связей для установки bool skip_verify = 2; // Если true, то РЅРµ проверять существование записей } @@ -93,6 +101,7 @@ message RebuildRelationsRequest { string space_id = 1; // Если указано, то перестраиваются только СЃРІСЏР·Рё РІ указанном пространстве string env_id = 2; // Если указано, то перестраиваются только СЃРІСЏР·Рё РІ указанном окружении repeated string collection_ids = 3; // Если указано, то перестраиваются только СЃРІСЏР·Рё РІ указанных коллекциях + repeated Reference from = 4; // Если указано, то перестраиваются только СЃРІСЏР·Рё РѕС‚ указанной записи } // RebuildRelationsResponse возвращает токен, РїРѕ которому РјРѕР¶РЅРѕ получить статус перестроения связей @@ -135,7 +144,7 @@ service References { rpc RemoveRelations(RemoveRelationsRequest) returns(RemoveRelationsResponse) {} // Перестраивает СЃРІСЏР·Рё - // Может быть долгим, поэтому выполняется асинхронно, возвращает пустой ответ + // Может быть долгим, поэтому возвращает токен, РїРѕ которому РјРѕР¶РЅРѕ получить статус перестроения связей rpc RebuildRelations(RebuildRelationsRequest) returns(RebuildRelationsResponse) {} // Возвращает статус перестроения связей -- GitLab