diff --git a/proto/references/references.proto b/proto/references/references.proto index 589d4fd8f3cae7db8a508f41a653910cb003f072..692e25d4564c64dc811baefa073cfcbdc0790eb5 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) {} // Возвращает статус перестроения связей