@in.pulse-crm/sdk 1.3.10 → 1.3.12

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.
package/dist/auth.d.ts CHANGED
@@ -16,6 +16,10 @@ export interface SessionData {
16
16
  * ID do usuário.
17
17
  */
18
18
  userId: number;
19
+ /**
20
+ * ID do setor do usuário.
21
+ */
22
+ sectorId: number;
19
23
  /**
20
24
  * Papel do usuário.
21
25
  */
package/dist/file.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
1
3
  import { AxiosInstance } from "axios";
2
4
  interface UploadFileOptions {
3
5
  /**
package/dist/index.d.ts CHANGED
@@ -3,7 +3,9 @@ import FileSDK, { File, FileDirType } from "./file";
3
3
  import InstanceSDK from "./instance";
4
4
  import UserSDK, { CreateUserDTO, UpdateUserDTO, User, UserRole } from "./user";
5
5
  import { DataResponse, ErrorResponse, PaginatedResponse, QueryResponse } from "./response";
6
- import ReportSDK, { ChatsReport, ChatsReportFileFormat, GenerateChatsReportOptions } from "./report";
7
- import SocketClientSDK, { JoinChatFunction, JoinRoomFunction, ListenEventFunction } from "./socket-client";
8
- import SocketServerSDK, { EmitFunction, InstanceName, SocketAdminRoom, SocketChatRoom, SocketMonitorRoom, SocketReportsRoom, SocketRoomType, SocketEventType } from "./socket-server";
9
- export { AuthSDK, LoginData, SessionData, FileSDK, File, FileDirType, InstanceSDK, UserSDK, CreateUserDTO, UpdateUserDTO, User, UserRole, DataResponse, ErrorResponse, PaginatedResponse, QueryResponse, ReportSDK, ChatsReport as ChatReport, ChatsReportFileFormat as ChatReportFileFormat, GenerateChatsReportOptions as GenerateChatReportOptions, SocketClientSDK, JoinChatFunction, JoinRoomFunction, ListenEventFunction, SocketServerSDK, EmitFunction, InstanceName, SocketAdminRoom, SocketReportsRoom, SocketChatRoom, SocketEventType, SocketMonitorRoom, SocketRoomType };
6
+ import ReportSDK, { ChatsReport, ChatsReportFormat, GenerateChatsReportOptions } from "./report";
7
+ import SocketClientSDK from "./socket-client";
8
+ import SocketServerSDK from "./socket-server";
9
+ import { EmitFunction, ChatsReportStatusData, SocketServerAdminRoom, SocketServerMonitorRoom, SocketServerReportsRoom, SocketServerRoom, ChatId, QRCode, SocketEventType } from "./types/socket-server.types";
10
+ import { SocketChatRoom, SocketClientAdminRoom, SocketClientMonitorRoom, SocketClientReportsRoom, SocketClientRoom } from "./types/socket-client.types";
11
+ export { AuthSDK, LoginData, SessionData, FileSDK, File, FileDirType, InstanceSDK, UserSDK, CreateUserDTO, UpdateUserDTO, User, UserRole, DataResponse, ErrorResponse, PaginatedResponse, QueryResponse, ReportSDK, ChatsReport, ChatsReportFormat as ChatsReportFileFormat, GenerateChatsReportOptions, SocketClientSDK, SocketChatRoom, SocketClientAdminRoom, SocketClientMonitorRoom, SocketClientReportsRoom, SocketClientRoom, SocketServerSDK, EmitFunction, SocketEventType, ChatsReportStatusData, SocketServerAdminRoom, SocketServerMonitorRoom, SocketServerReportsRoom, SocketServerRoom, ChatId, QRCode, };
package/dist/index.js CHANGED
@@ -15,28 +15,18 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
35
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
27
  };
38
28
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.SocketEventType = exports.SocketServerSDK = exports.SocketClientSDK = exports.ChatReportFileFormat = exports.ReportSDK = exports.UserRole = exports.UserSDK = exports.InstanceSDK = exports.FileDirType = exports.FileSDK = exports.AuthSDK = void 0;
29
+ exports.SocketServerSDK = exports.SocketClientSDK = exports.ReportSDK = exports.UserRole = exports.UserSDK = exports.InstanceSDK = exports.FileDirType = exports.FileSDK = exports.AuthSDK = void 0;
40
30
  const auth_1 = __importDefault(require("./auth"));
41
31
  exports.AuthSDK = auth_1.default;
42
32
  const file_1 = __importStar(require("./file"));
@@ -47,11 +37,9 @@ exports.InstanceSDK = instance_1.default;
47
37
  const user_1 = __importStar(require("./user"));
48
38
  exports.UserSDK = user_1.default;
49
39
  Object.defineProperty(exports, "UserRole", { enumerable: true, get: function () { return user_1.UserRole; } });
50
- const report_1 = __importStar(require("./report"));
40
+ const report_1 = __importDefault(require("./report"));
51
41
  exports.ReportSDK = report_1.default;
52
- Object.defineProperty(exports, "ChatReportFileFormat", { enumerable: true, get: function () { return report_1.ChatsReportFileFormat; } });
53
42
  const socket_client_1 = __importDefault(require("./socket-client"));
54
43
  exports.SocketClientSDK = socket_client_1.default;
55
- const socket_server_1 = __importStar(require("./socket-server"));
44
+ const socket_server_1 = __importDefault(require("./socket-server"));
56
45
  exports.SocketServerSDK = socket_server_1.default;
57
- Object.defineProperty(exports, "SocketEventType", { enumerable: true, get: function () { return socket_server_1.SocketEventType; } });
package/dist/report.d.ts CHANGED
@@ -1,35 +1,28 @@
1
1
  import { AxiosInstance } from "axios";
2
2
  import { DataResponse, MessageResponse } from "./response";
3
- export declare enum ChatsReportStatus {
4
- PENDING = "PENDING",
5
- COMPLETED = "COMPLETED",
6
- FAILED = "FAILED"
7
- }
3
+ export type ReportType = "chats";
4
+ export type ChatsReportFormat = "txt" | "csv" | "pdf";
5
+ export type ChatsReportStatus = "pending" | "completed" | "failed";
8
6
  export interface ChatsReport {
9
7
  id: number;
10
8
  userId: string;
11
9
  fileId: number;
12
10
  instance: string;
13
- format: string;
14
11
  startDate: string;
15
12
  endDate: string;
16
13
  exportDate: string;
17
14
  chats: number;
18
15
  messages: number;
16
+ format: ChatsReportFormat;
19
17
  status: ChatsReportStatus;
20
18
  }
21
19
  export interface GenerateChatsReportOptions {
22
20
  instance: string;
23
21
  userId: string;
24
- format: ChatsReportFileFormat;
22
+ format: ChatsReportFormat;
25
23
  startDate: string;
26
24
  endDate: string;
27
25
  }
28
- export declare enum ChatsReportFileFormat {
29
- TXT = "txt",
30
- CSV = "csv",
31
- PDF = "pdf"
32
- }
33
26
  export default class ReportSDK {
34
27
  private readonly httpClient;
35
28
  constructor(httpClient: AxiosInstance);
package/dist/report.js CHANGED
@@ -1,18 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChatsReportFileFormat = exports.ChatsReportStatus = void 0;
4
- var ChatsReportStatus;
5
- (function (ChatsReportStatus) {
6
- ChatsReportStatus["PENDING"] = "PENDING";
7
- ChatsReportStatus["COMPLETED"] = "COMPLETED";
8
- ChatsReportStatus["FAILED"] = "FAILED";
9
- })(ChatsReportStatus || (exports.ChatsReportStatus = ChatsReportStatus = {}));
10
- var ChatsReportFileFormat;
11
- (function (ChatsReportFileFormat) {
12
- ChatsReportFileFormat["TXT"] = "txt";
13
- ChatsReportFileFormat["CSV"] = "csv";
14
- ChatsReportFileFormat["PDF"] = "pdf";
15
- })(ChatsReportFileFormat || (exports.ChatsReportFileFormat = ChatsReportFileFormat = {}));
16
3
  class ReportSDK {
17
4
  httpClient;
18
5
  constructor(httpClient) {
@@ -1,74 +1,5 @@
1
1
  import { Socket } from "socket.io-client";
2
- import { PhoneNumber } from "@in.pulse-crm/utils";
3
- import { ChatId, NotImplemented, QRCode, ChatsReportStatusData, SocketEventType, SocketRoomType } from "./socket-server";
4
- /**
5
- * Função para entrar em uma sala de socket.
6
- */
7
- export type JoinRoomFunction = {
8
- (room: SocketRoomType): void;
9
- };
10
- /**
11
- * Função para entrar em um chat de socket.
12
- */
13
- export type JoinChatFunction = {
14
- (phone: PhoneNumber): void;
15
- };
16
- export type LeaveRoomFunction = {
17
- (room: SocketRoomType): void;
18
- };
19
- export type LeaveChatFunction = {
20
- (phone: PhoneNumber): void;
21
- };
22
- /**
23
- * Função para escutar eventos de socket.
24
- */
25
- export type ListenEventFunction = {
26
- /**
27
- * Escuta evento de mensagem
28
- * Ainda não implementado.
29
- */
30
- (event: SocketEventType.MESSAGE, listener: (data: NotImplemented) => void): void;
31
- /**
32
- * Escuta evento de edição de mensagem
33
- * Ainda não implementado.
34
- */
35
- (event: SocketEventType.MESSAGE_EDIT, listener: (data: NotImplemented) => void): void;
36
- /**
37
- * Escuta evento de status de mensagem
38
- * Ainda não implementado.
39
- */
40
- (event: SocketEventType.MESSAGE_STATUS, listener: (data: NotImplemented) => void): void;
41
- /**
42
- * Escuta evento de novo chat
43
- * Ainda não implementado.
44
- */
45
- (event: SocketEventType.NEW_CHAT, listener: (data: NotImplemented) => void): void;
46
- /**
47
- * Escuta evento de chat finalizado
48
- * @trigger Quando um chat é finalizado
49
- * @target Sala de monitoria e ao atendente do chat
50
- * @data Um número contendo o ID do chat finalizado
51
- */
52
- (event: SocketEventType.CHAT_FINISHED, listener: (chatId: ChatId) => void): void;
53
- /**
54
- * Escuta evento de notificação
55
- * @trigger Quando uma notificação é enviada
56
- * @target Sala de administração do setor
57
- */
58
- (event: SocketEventType.NOTIFICATION, listener: (notification: NotImplemented) => void): void;
59
- /**
60
- * Escuta evento de QR Code
61
- * @trigger Quando um QR Code é gerado
62
- * @target Sala de administração do setor
63
- */
64
- (event: SocketEventType.QR_CODE, listener: (qr: QRCode) => void): void;
65
- /**
66
- * Escuta evento de status de relatório
67
- * @trigger Quando o status de um relatório é atualizado
68
- * @target Sala de relatórios
69
- */
70
- (event: SocketEventType.REPORT_STATUS, listener: (data: ChatsReportStatusData) => void): void;
71
- };
2
+ import { JoinChatFunction, JoinRoomFunction, LeaveChatFunction, LeaveRoomFunction, ListenEventFunction } from "./types/socket-client.types";
72
3
  /**
73
4
  * Classe para consumo dos eventos de socket.
74
5
  */
@@ -82,6 +13,13 @@ export default class SocketClientSDK {
82
13
  * @param listener - A função a ser chamada quando o evento ocorrer.
83
14
  */
84
15
  on: ListenEventFunction;
16
+ /**
17
+ * Escuta eventos de socket.
18
+ *
19
+ * @param event - O tipo de evento a ser escutado.
20
+ * @param listener - A função a ser chamada quando o evento ocorrer.
21
+ */
22
+ off: ListenEventFunction;
85
23
  /**
86
24
  * Entra em uma sala de socket.
87
25
  *
@@ -96,18 +34,24 @@ export default class SocketClientSDK {
96
34
  joinChat: JoinChatFunction;
97
35
  /**
98
36
  * Sai de uma sala de socket.
99
- * @param room - O tipo de sala a ser deixada.
37
+ *
38
+ * @param room - O tipo de sala a ser deixada.
39
+ * @description Remove o cliente da sala especificada no servidor de socket.
100
40
  */
101
41
  leaveRoom: LeaveRoomFunction;
102
42
  /**
103
43
  * Sai de um chat.
104
- * @param phone - O número de telefone do chat a ser deixado.
44
+ *
45
+ * @param phone - O número de telefone do chat a ser deixado.
46
+ * @description Remove o cliente do chat especificado, utilizando o número de telefone.
105
47
  */
106
48
  leaveChat: LeaveChatFunction;
107
49
  /**
108
50
  * Define o token de autenticação para o socket.
109
51
  *
110
52
  * @param token - O token de autenticação.
53
+ * @description Configura o token de autenticação para ser enviado em todas as conexões de socket subsequentes.
54
+ * Se o token for nulo ou vazio, a autenticação será removida.
111
55
  */
112
56
  setAuth(token: string): void;
113
57
  }
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const socket_server_1 = require("./socket-server");
4
3
  /**
5
4
  * Classe para consumo dos eventos de socket.
6
5
  */
@@ -8,9 +7,6 @@ class SocketClientSDK {
8
7
  io;
9
8
  constructor(io) {
10
9
  this.io = io;
11
- this.on(socket_server_1.SocketEventType.CHAT_FINISHED, (chatId) => {
12
- console.log(`Chat ${chatId} finalizado.`);
13
- });
14
10
  }
15
11
  /**
16
12
  * Escuta eventos de socket.
@@ -21,6 +17,15 @@ class SocketClientSDK {
21
17
  on = (event, listener) => {
22
18
  this.io.on(event, listener);
23
19
  };
20
+ /**
21
+ * Escuta eventos de socket.
22
+ *
23
+ * @param event - O tipo de evento a ser escutado.
24
+ * @param listener - A função a ser chamada quando o evento ocorrer.
25
+ */
26
+ off = (event, listener) => {
27
+ this.io.off(event, listener);
28
+ };
24
29
  /**
25
30
  * Entra em uma sala de socket.
26
31
  *
@@ -39,14 +44,18 @@ class SocketClientSDK {
39
44
  };
40
45
  /**
41
46
  * Sai de uma sala de socket.
42
- * @param room - O tipo de sala a ser deixada.
47
+ *
48
+ * @param room - O tipo de sala a ser deixada.
49
+ * @description Remove o cliente da sala especificada no servidor de socket.
43
50
  */
44
51
  leaveRoom = (room) => {
45
52
  this.io.emit("leave-room", `${room}`);
46
53
  };
47
54
  /**
48
55
  * Sai de um chat.
49
- * @param phone - O número de telefone do chat a ser deixado.
56
+ *
57
+ * @param phone - O número de telefone do chat a ser deixado.
58
+ * @description Remove o cliente do chat especificado, utilizando o número de telefone.
50
59
  */
51
60
  leaveChat = (phone) => {
52
61
  this.leaveRoom(`chat:${phone}`);
@@ -55,6 +64,8 @@ class SocketClientSDK {
55
64
  * Define o token de autenticação para o socket.
56
65
  *
57
66
  * @param token - O token de autenticação.
67
+ * @description Configura o token de autenticação para ser enviado em todas as conexões de socket subsequentes.
68
+ * Se o token for nulo ou vazio, a autenticação será removida.
58
69
  */
59
70
  setAuth(token) {
60
71
  this.io.auth = { token: token ? `Bearer ${token}` : null };
@@ -1,155 +1,5 @@
1
- import { PhoneNumber } from "@in.pulse-crm/utils";
2
1
  import { AxiosInstance } from "axios";
3
- /**
4
- * Tipos de eventos de socket.
5
- */
6
- export declare enum SocketEventType {
7
- MESSAGE = "message",
8
- MESSAGE_EDIT = "message_edit",
9
- MESSAGE_STATUS = "message_status",
10
- NEW_CHAT = "new_chat",
11
- CHAT_FINISHED = "chat_finished",
12
- NOTIFICATION = "notification",
13
- QR_CODE = "qr_code",
14
- REPORT_STATUS = "report_status"
15
- }
16
- /**
17
- * Sala de chat, recebe todos eventos de um chat específico.
18
- */
19
- export type SocketChatRoom = `chat:${PhoneNumber}`;
20
- /**
21
- * Sala de administrador, recebe eventos de adminstrador de um setor específico.
22
- */
23
- export type SocketAdminRoom = `sector:${SectorId}:admin`;
24
- /**
25
- * Sala de monitoria, recebe eventos de monitoria de um setor específico.
26
- */
27
- export type SocketMonitorRoom = `sector:${SectorId}:monitor`;
28
- /**
29
- * Sala de relatórios, recebe eventos de um tipo relatório específico de um setor específico.
30
- */
31
- export type SocketReportsRoom = `sector:${number}:reports:${string}`;
32
- /**
33
- * Tipo de sala de socket.
34
- */
35
- export type SocketRoomType = SocketChatRoom | SocketAdminRoom | SocketReportsRoom | SocketMonitorRoom;
36
- /**
37
- * Ainda não implementado.
38
- */
39
- export type NotImplemented = unknown;
40
- /**
41
- * Dados de status de um relatório de conversas.
42
- */
43
- export type ChatsReportStatusData = {
44
- id: number;
45
- type: "chats-report";
46
- isCompleted: false;
47
- isFailed: false;
48
- progress: number;
49
- } | {
50
- id: number;
51
- type: "chats-report";
52
- isCompleted: true;
53
- isFailed: false;
54
- fileId: number;
55
- chats: number;
56
- messages: number;
57
- } | {
58
- id: number;
59
- type: "chats-report";
60
- isCompleted: false;
61
- isFailed: true;
62
- error: string;
63
- };
64
- /**
65
- * String representando um QR Code.
66
- */
67
- export type QRCode = string;
68
- /**
69
- * Id de um chat.
70
- */
71
- export type ChatId = number;
72
- /**
73
- * Id de um setor.
74
- */
75
- export type SectorId = number;
76
- /**
77
- * Nome de uma instância.
78
- */
79
- export type InstanceName = string;
80
- /**
81
- * Represents a function type for emitting events to specific rooms in a socket server.
82
- * This function type supports multiple overloads, each corresponding to a specific
83
- * combination of room type, event type, and value type.
84
- *
85
- * @typedef EmitFunction
86
- *
87
- * @overload
88
- * Emits a `NEW_CHAT` event to a chat or monitor room.
89
- * @param instanceName - The name of the instance emitting the event.
90
- * @param room - The target room, either a `SocketChatRoom` or `SocketMonitorRoom`.
91
- * @param event - The event type, `SocketEventType.NEW_CHAT`.
92
- * @param value - The value associated with the event (type not yet implemented).
93
- *
94
- * @overload
95
- * Emits a `CHAT_FINISHED` event to a chat or monitor room.
96
- * @param instanceName - The name of the instance emitting the event.
97
- * @param room - The target room, either a `SocketChatRoom` or `SocketMonitorRoom`.
98
- * @param event - The event type, `SocketEventType.CHAT_FINISHED`.
99
- * @param value - The ID of the finished chat.
100
- *
101
- * @overload
102
- * Emits a `QR_CODE` event to an admin room.
103
- * @param instanceName - The name of the instance emitting the event.
104
- * @param room - The target room, a `SocketAdminRoom`.
105
- * @param event - The event type, `SocketEventType.QR_CODE`.
106
- * @param value - The QR code data.
107
- *
108
- * @overload
109
- * Emits a `MESSAGE` event to a chat room.
110
- * @param instanceName - The name of the instance emitting the event.
111
- * @param room - The target room, a `SocketChatRoom`.
112
- * @param event - The event type, `SocketEventType.MESSAGE`.
113
- * @param value - The value associated with the event (type not yet implemented).
114
- *
115
- * @overload
116
- * Emits a `NOTIFICATION` event to an admin room.
117
- * @param instanceName - The name of the instance emitting the event.
118
- * @param room - The target room, a `SocketAdminRoom`.
119
- * @param event - The event type, `SocketEventType.NOTIFICATION`.
120
- * @param value - The value associated with the event (type not yet implemented).
121
- *
122
- * @overload
123
- * Emits a `MESSAGE_EDIT` event to a chat room.
124
- * @param instanceName - The name of the instance emitting the event.
125
- * @param room - The target room, a `SocketChatRoom`.
126
- * @param event - The event type, `SocketEventType.MESSAGE_EDIT`.
127
- * @param value - The value associated with the event (type not yet implemented).
128
- *
129
- * @overload
130
- * Emits a `MESSAGE_STATUS` event to a chat room.
131
- * @param instanceName - The name of the instance emitting the event.
132
- * @param room - The target room, a `SocketChatRoom`.
133
- * @param event - The event type, `SocketEventType.MESSAGE_STATUS`.
134
- * @param value - The value associated with the event (type not yet implemented).
135
- *
136
- * @overload
137
- * Emits a `REPORT_STATUS` event to an admin room.
138
- * @param instanceName - The name of the instance emitting the event.
139
- * @param room - The target room, a `SocketAdminRoom`.
140
- * @param event - The event type, `SocketEventType.REPORT_STATUS`.
141
- * @param value - The report status data.
142
- */
143
- export type EmitFunction = {
144
- (instanceName: string, room: SocketChatRoom | SocketMonitorRoom, event: SocketEventType.NEW_CHAT, value: NotImplemented): void;
145
- (instanceName: string, room: SocketChatRoom | SocketMonitorRoom, event: SocketEventType.CHAT_FINISHED, value: ChatId): void;
146
- (instanceName: string, room: SocketAdminRoom, event: SocketEventType.QR_CODE, value: QRCode): void;
147
- (instanceName: string, room: SocketChatRoom, event: SocketEventType.MESSAGE, value: NotImplemented): void;
148
- (instanceName: string, room: SocketAdminRoom, event: SocketEventType.NOTIFICATION, value: NotImplemented): void;
149
- (instanceName: string, room: SocketChatRoom, event: SocketEventType.MESSAGE_EDIT, value: NotImplemented): void;
150
- (instanceName: string, room: SocketChatRoom, event: SocketEventType.MESSAGE_STATUS, value: NotImplemented): void;
151
- (instanceName: string, room: SocketReportsRoom, event: SocketEventType.REPORT_STATUS, value: ChatsReportStatusData): void;
152
- };
2
+ import { EmitFunction } from "./types/socket-server.types";
153
3
  /**
154
4
  * Classe para manipulação de eventos de socket.
155
5
  */
@@ -1,20 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SocketEventType = void 0;
4
- /**
5
- * Tipos de eventos de socket.
6
- */
7
- var SocketEventType;
8
- (function (SocketEventType) {
9
- SocketEventType["MESSAGE"] = "message";
10
- SocketEventType["MESSAGE_EDIT"] = "message_edit";
11
- SocketEventType["MESSAGE_STATUS"] = "message_status";
12
- SocketEventType["NEW_CHAT"] = "new_chat";
13
- SocketEventType["CHAT_FINISHED"] = "chat_finished";
14
- SocketEventType["NOTIFICATION"] = "notification";
15
- SocketEventType["QR_CODE"] = "qr_code";
16
- SocketEventType["REPORT_STATUS"] = "report_status";
17
- })(SocketEventType || (exports.SocketEventType = SocketEventType = {}));
18
3
  /**
19
4
  * Classe para manipulação de eventos de socket.
20
5
  */
@@ -0,0 +1,97 @@
1
+ import { PhoneNumber } from "@in.pulse-crm/utils";
2
+ import { ReportType } from "../report";
3
+ import type { ChatsReportStatusData, QRCode } from "./socket-server.types";
4
+ /**
5
+ * Representa uma sala de chat identificada por um número de telefone.
6
+ */
7
+ export type SocketChatRoom = `chat:${PhoneNumber}`;
8
+ /**
9
+ * Representa a sala de administração.
10
+ */
11
+ export type SocketClientAdminRoom = "admin";
12
+ /**
13
+ * Representa a sala de monitoramento.
14
+ */
15
+ export type SocketClientMonitorRoom = `monitor`;
16
+ /**
17
+ * Representa uma sala de relatórios identificada por um tipo de relatório.
18
+ */
19
+ export type SocketClientReportsRoom = `reports:${ReportType}`;
20
+ /**
21
+ * Representa as salas disponíveis para clientes, incluindo chat, administração, relatórios e monitoramento.
22
+ */
23
+ export type SocketClientRoom = SocketChatRoom | SocketClientAdminRoom | SocketClientReportsRoom | SocketClientMonitorRoom;
24
+ /**
25
+ * Função para entrar em uma sala de socket.
26
+ */
27
+ export type JoinRoomFunction = {
28
+ (room: SocketClientRoom): void;
29
+ };
30
+ /**
31
+ * Função para entrar em um chat de socket.
32
+ */
33
+ export type JoinChatFunction = {
34
+ (phone: PhoneNumber): void;
35
+ };
36
+ /**
37
+ * Função para sair de uma sala de socket.
38
+ */
39
+ export type LeaveRoomFunction = {
40
+ (room: SocketClientRoom): void;
41
+ };
42
+ /**
43
+ * Função para sair de um chat de socket.
44
+ */
45
+ export type LeaveChatFunction = {
46
+ (phone: PhoneNumber): void;
47
+ };
48
+ /**
49
+ * Função para escutar eventos de socket.
50
+ */
51
+ export type ListenEventFunction = {
52
+ /**
53
+ * Escuta evento de mensagem
54
+ * Ainda não implementado.
55
+ */
56
+ (event: "message", listener: (data: unknown) => void): void;
57
+ /**
58
+ * Escuta evento de edição de mensagem
59
+ * Ainda não implementado.
60
+ */
61
+ (event: "message_edit", listener: (data: unknown) => void): void;
62
+ /**
63
+ * Escuta evento de status de mensagem
64
+ * Ainda não implementado.
65
+ */
66
+ (event: "message_status", listener: (data: unknown) => void): void;
67
+ /**
68
+ * Escuta evento de novo chat
69
+ * Ainda não implementado.
70
+ */
71
+ (event: "new_chat", listener: (data: unknown) => void): void;
72
+ /**
73
+ * Escuta evento de chat finalizado
74
+ * @trigger Quando um chat é finalizado
75
+ * @target Sala de monitoria e ao atendente do chat
76
+ * @data Um número contendo o ID do chat finalizado
77
+ */
78
+ (event: "chat_finished", listener: (chatId: number) => void): void;
79
+ /**
80
+ * Escuta evento de notificação
81
+ * @trigger Quando uma notificação é enviada
82
+ * @target Sala de administração do setor
83
+ */
84
+ (event: "notification", listener: (notification: unknown) => void): void;
85
+ /**
86
+ * Escuta evento de QR Code
87
+ * @trigger Quando um QR Code é gerado
88
+ * @target Sala de administração do setor
89
+ */
90
+ (event: "qr_code", listener: (qr: QRCode) => void): void;
91
+ /**
92
+ * Escuta evento de status de relatório
93
+ * @trigger Quando o status de um relatório é atualizado
94
+ * @target Sala de relatórios
95
+ */
96
+ (event: "report_status", listener: (data: ChatsReportStatusData) => void): void;
97
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });