From 707a4347efc431c4ad23b193d9ab3a746dd38ebb Mon Sep 17 00:00:00 2001
From: Pavel Antonov <antonov@perx.ru>
Date: Tue, 29 Oct 2024 17:47:25 +0400
Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?=
 =?UTF-8?q?=D0=BD=D1=8B=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8?=
 =?UTF-8?q?=D1=8F=20=D0=A1=D0=BE=D0=B1=D1=8B=D1=82=D0=B8=D0=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 proto/common/common.proto | 29 -----------------------------
 proto/common/event.proto  | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+), 29 deletions(-)
 create mode 100644 proto/common/event.proto

diff --git a/proto/common/common.proto b/proto/common/common.proto
index ccec161..374e6d9 100644
--- a/proto/common/common.proto
+++ b/proto/common/common.proto
@@ -73,33 +73,4 @@ message Version {
   string build_time = 3;
   string commit = 4;
   int32 build_number = 5;
-}
-
-// Определение типов событий
-enum EventType {
-  EVENT_UNKNOWN = 0;
-  EVENT_CREATE = 1;
-  EVENT_UPDATE = 2;
-  EVENT_DELETE = 3;
-  EVENT_PUBLISH = 4;
-  EVENT_UNPUBLISH = 5;
-  // Добавляем события по необходимости
-}
-
-// Структура события
-message Event {
-  // Тип события
-  EventType type = 1;
-  // Время события
-  google.protobuf.Timestamp timestamp = 2;
-  // Идентификатор oid, вызвавшего событие
-  string caller = 3;
-  // Тип сущности (например, "Item", "User", "Spaces")
-  string entity_type = 4;
-  // Идентификатор затронутой сущности
-  string entity_id = 5;
-  // Данные до изменения (для событий обновления и удаления)
-  google.protobuf.Struct old_data = 6;
-  // Новые данные (для событий создания и обновления)
-  google.protobuf.Struct new_data = 7;
 }
\ No newline at end of file
diff --git a/proto/common/event.proto b/proto/common/event.proto
new file mode 100644
index 0000000..27592cd
--- /dev/null
+++ b/proto/common/event.proto
@@ -0,0 +1,35 @@
+syntax = "proto3";
+
+package events;
+
+option go_package = "git.perx.ru/perxis/perxis-go/proto/events";
+
+import "google/protobuf/struct.proto";
+import "google/protobuf/timestamp.proto";
+import "spaces/spaces.proto";
+import "users/users.proto";
+
+message EventMetadata {
+
+}
+
+// Event описывает все события передаваемые в системе
+message Event {
+
+  // Идентификатор события
+  string id = 1;
+
+  // Время наступления события
+  google.protobuf.Timestamp time = 2;
+
+  // Идентификатор инициатора события
+  string principal = 5;
+
+  EventMetadata metadata = 10;
+
+  oneof event {
+    //    UserEvent user_event = 100;
+    //    OrganizationEvent organization_event = 200;
+    content.spaces.SpaceEvent space = 300;
+  }
+}
\ No newline at end of file
-- 
GitLab