@barumetric/contracts 1.4.16 → 1.4.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import type { MessageType } from './message-types';
1
+ import type { MessageType } from "./message-types";
2
2
  export interface MessageDto {
3
3
  id: string;
4
4
  conversationId: string;
@@ -12,8 +12,6 @@ export interface MessageDto {
12
12
  mimeType?: string | null;
13
13
  read: boolean;
14
14
  readAt?: string | null;
15
- delivered: boolean;
16
- deliveredAt?: string | null;
17
15
  replyToIds: string[];
18
16
  createdAt: string;
19
17
  updatedAt: string;
@@ -7,87 +7,111 @@
7
7
  /* eslint-disable */
8
8
  import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
9
9
  import { Observable } from "rxjs";
10
- import { Timestamp } from "./google/protobuf/timestamp";
11
10
 
12
11
  export const protobufPackage = "presence.v1";
13
12
 
14
- export interface GetUserStatusRequest {
13
+ export interface SetUserSocketRequest {
15
14
  userId: string;
16
- /** WebSocket connection ID */
17
- connectionId?: string | undefined;
15
+ socketId: string;
18
16
  }
19
17
 
20
- export interface GetUserStatusResponse {
21
- /** "online" | "away" | "offline" */
22
- status: string;
23
- /** timestamp */
24
- lastSeen: Timestamp | undefined;
18
+ export interface SetUserSocketResponse {
19
+ ok: boolean;
25
20
  }
26
21
 
27
- export interface UpdateStatusRequest {
22
+ export interface GetUserSocketRequest {
28
23
  userId: string;
29
- /** WebSocket connection ID */
30
- connectionId: string;
31
- /** "web" | "mobile" */
32
- device: string;
33
24
  }
34
25
 
35
- export interface UpdateStatusResponse {
36
- ok: boolean;
37
- /** текущий статус */
38
- status: string;
26
+ export interface GetUserSocketResponse {
27
+ socketId: string;
39
28
  }
40
29
 
41
- export interface RemoveConnectionRequest {
30
+ export interface GetAllUserSocketsRequest {
42
31
  userId: string;
43
- connectionId: string;
44
32
  }
45
33
 
46
- export interface RemoveConnectionResponse {
34
+ export interface GetAllUserSocketsResponse {
35
+ socketIds: string[];
36
+ }
37
+
38
+ export interface RemoveUserSocketRequest {
39
+ userId: string;
40
+ socketId: string;
41
+ }
42
+
43
+ export interface RemoveUserSocketResponse {
47
44
  ok: boolean;
48
- /** текущий статус после удаления */
49
- status: string;
45
+ }
46
+
47
+ export interface GetUserBySocketRequest {
48
+ socketId: string;
49
+ }
50
+
51
+ export interface GetUserBySocketResponse {
52
+ userId: string;
53
+ }
54
+
55
+ export interface IsUserOnlineRequest {
56
+ userId: string;
57
+ }
58
+
59
+ export interface IsUserOnlineResponse {
60
+ isOnline: boolean;
50
61
  }
51
62
 
52
63
  export const PRESENCE_V1_PACKAGE_NAME = "presence.v1";
53
64
 
54
65
  export interface PresenceServiceClient {
55
- /** Получить статус пользователя */
66
+ setUserSocket(request: SetUserSocketRequest): Observable<SetUserSocketResponse>;
56
67
 
57
- getUserStatus(request: GetUserStatusRequest): Observable<GetUserStatusResponse>;
68
+ getUserSocket(request: GetUserSocketRequest): Observable<GetUserSocketResponse>;
58
69
 
59
- /** Обновить статус пользователя (heartbeat) */
70
+ getAllUserSockets(request: GetAllUserSocketsRequest): Observable<GetAllUserSocketsResponse>;
60
71
 
61
- updateStatus(request: UpdateStatusRequest): Observable<UpdateStatusResponse>;
72
+ removeUserSocket(request: RemoveUserSocketRequest): Observable<RemoveUserSocketResponse>;
62
73
 
63
- /** Удалить соединение пользователя (при отключении) */
74
+ getUserBySocket(request: GetUserBySocketRequest): Observable<GetUserBySocketResponse>;
64
75
 
65
- removeConnection(request: RemoveConnectionRequest): Observable<RemoveConnectionResponse>;
76
+ isUserOnline(request: IsUserOnlineRequest): Observable<IsUserOnlineResponse>;
66
77
  }
67
78
 
68
79
  export interface PresenceServiceController {
69
- /** Получить статус пользователя */
80
+ setUserSocket(
81
+ request: SetUserSocketRequest,
82
+ ): Promise<SetUserSocketResponse> | Observable<SetUserSocketResponse> | SetUserSocketResponse;
70
83
 
71
- getUserStatus(
72
- request: GetUserStatusRequest,
73
- ): Promise<GetUserStatusResponse> | Observable<GetUserStatusResponse> | GetUserStatusResponse;
84
+ getUserSocket(
85
+ request: GetUserSocketRequest,
86
+ ): Promise<GetUserSocketResponse> | Observable<GetUserSocketResponse> | GetUserSocketResponse;
74
87
 
75
- /** Обновить статус пользователя (heartbeat) */
88
+ getAllUserSockets(
89
+ request: GetAllUserSocketsRequest,
90
+ ): Promise<GetAllUserSocketsResponse> | Observable<GetAllUserSocketsResponse> | GetAllUserSocketsResponse;
76
91
 
77
- updateStatus(
78
- request: UpdateStatusRequest,
79
- ): Promise<UpdateStatusResponse> | Observable<UpdateStatusResponse> | UpdateStatusResponse;
92
+ removeUserSocket(
93
+ request: RemoveUserSocketRequest,
94
+ ): Promise<RemoveUserSocketResponse> | Observable<RemoveUserSocketResponse> | RemoveUserSocketResponse;
80
95
 
81
- /** Удалить соединение пользователя (при отключении) */
96
+ getUserBySocket(
97
+ request: GetUserBySocketRequest,
98
+ ): Promise<GetUserBySocketResponse> | Observable<GetUserBySocketResponse> | GetUserBySocketResponse;
82
99
 
83
- removeConnection(
84
- request: RemoveConnectionRequest,
85
- ): Promise<RemoveConnectionResponse> | Observable<RemoveConnectionResponse> | RemoveConnectionResponse;
100
+ isUserOnline(
101
+ request: IsUserOnlineRequest,
102
+ ): Promise<IsUserOnlineResponse> | Observable<IsUserOnlineResponse> | IsUserOnlineResponse;
86
103
  }
87
104
 
88
105
  export function PresenceServiceControllerMethods() {
89
106
  return function (constructor: Function) {
90
- const grpcMethods: string[] = ["getUserStatus", "updateStatus", "removeConnection"];
107
+ const grpcMethods: string[] = [
108
+ "setUserSocket",
109
+ "getUserSocket",
110
+ "getAllUserSockets",
111
+ "removeUserSocket",
112
+ "getUserBySocket",
113
+ "isUserOnline",
114
+ ];
91
115
  for (const method of grpcMethods) {
92
116
  const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
93
117
  GrpcMethod("PresenceService", method)(constructor.prototype[method], method, descriptor);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barumetric/contracts",
3
- "version": "1.4.16",
3
+ "version": "1.4.18",
4
4
  "description": "Protobuf definitions and generated TypeScript types",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -5,44 +5,61 @@ package presence.v1;
5
5
  import "google/protobuf/timestamp.proto";
6
6
 
7
7
  service PresenceService {
8
- // Получить статус пользователя
9
- rpc GetUserStatus (GetUserStatusRequest) returns (GetUserStatusResponse);
10
-
11
- // Обновить статус пользователя (heartbeat)
12
- rpc UpdateStatus (UpdateStatusRequest) returns (UpdateStatusResponse);
13
-
14
- // Удалить соединение пользователя (при отключении)
15
- rpc RemoveConnection (RemoveConnectionRequest) returns (RemoveConnectionResponse);
8
+ rpc SetUserSocket (SetUserSocketRequest) returns (SetUserSocketResponse);
9
+ rpc GetUserSocket (GetUserSocketRequest) returns (GetUserSocketResponse);
10
+ rpc GetAllUserSockets (GetAllUserSocketsRequest) returns (GetAllUserSocketsResponse);
11
+ rpc RemoveUserSocket (RemoveUserSocketRequest) returns (RemoveUserSocketResponse);
12
+ rpc GetUserBySocket (GetUserBySocketRequest) returns (GetUserBySocketResponse);
13
+ rpc IsUserOnline (IsUserOnlineRequest) returns (IsUserOnlineResponse);
16
14
 
17
15
  }
18
16
 
19
- message GetUserStatusRequest {
17
+ message SetUserSocketRequest {
20
18
  string user_id = 1;
21
- optional string connection_id = 2; // WebSocket connection ID
19
+ string socket_id = 2;
22
20
  }
23
21
 
24
- message GetUserStatusResponse {
25
- string status = 1; // "online" | "away" | "offline"
26
- google.protobuf.Timestamp last_seen = 2; // timestamp
22
+ message SetUserSocketResponse {
23
+ bool ok = 1;
27
24
  }
28
25
 
29
- message UpdateStatusRequest {
26
+ message GetUserSocketRequest {
30
27
  string user_id = 1;
31
- string connection_id = 2; // WebSocket connection ID
32
- string device = 3; // "web" | "mobile"
33
28
  }
34
29
 
35
- message UpdateStatusResponse {
36
- bool ok = 1;
37
- string status = 2; // текущий статус
30
+ message GetUserSocketResponse {
31
+ string socket_id = 1;
32
+ }
33
+
34
+ message GetAllUserSocketsRequest {
35
+ string user_id = 1;
36
+ }
37
+
38
+ message GetAllUserSocketsResponse {
39
+ repeated string socket_ids = 1;
38
40
  }
39
41
 
40
- message RemoveConnectionRequest {
42
+ message RemoveUserSocketRequest {
41
43
  string user_id = 1;
42
- string connection_id = 2;
44
+ string socket_id = 2;
43
45
  }
44
46
 
45
- message RemoveConnectionResponse {
47
+ message RemoveUserSocketResponse {
46
48
  bool ok = 1;
47
- string status = 2; // текущий статус после удаления
48
49
  }
50
+
51
+ message GetUserBySocketRequest {
52
+ string socket_id = 1;
53
+ }
54
+
55
+ message GetUserBySocketResponse {
56
+ string user_id = 1;
57
+ }
58
+
59
+ message IsUserOnlineRequest {
60
+ string user_id = 1;
61
+ }
62
+
63
+ message IsUserOnlineResponse {
64
+ bool is_online = 1;
65
+ }