@sigmatech/pergamo 0.1.13 → 0.1.14

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.
@@ -66,4 +66,5 @@ export * from "./bot/bot-session.entity";
66
66
  export * from "./bot/bot-command-log.entity";
67
67
  export * from "./bot/bot-search-request.entity";
68
68
  export * from "./bot/bot-location-request.entity";
69
+ export * from "./telegram";
69
70
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AAGpD,cAAc,0BAA0B,CAAC;AAGzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,wBAAwB,CAAC;AACvC,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AAGvD,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAGlD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,6BAA6B,CAAC;AAG5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,qCAAqC,CAAC;AAGpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,yCAAyC,CAAC;AAGxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+CAA+C,CAAC;AAG9D,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAG1D,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AAGvD,cAAc,eAAe,CAAC;AAG9B,cAAc,QAAQ,CAAC;AAGvB,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AAGvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AAGpD,cAAc,0BAA0B,CAAC;AAGzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,wBAAwB,CAAC;AACvC,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AAGvD,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAGlD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,6BAA6B,CAAC;AAG5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,qCAAqC,CAAC;AAGpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,yCAAyC,CAAC;AAGxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+CAA+C,CAAC;AAG9D,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAG1D,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AAGvD,cAAc,eAAe,CAAC;AAG9B,cAAc,QAAQ,CAAC;AAGvB,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AAGvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,YAAY,CAAC"}
@@ -105,4 +105,6 @@ __exportStar(require("./bot/bot-session.entity"), exports);
105
105
  __exportStar(require("./bot/bot-command-log.entity"), exports);
106
106
  __exportStar(require("./bot/bot-search-request.entity"), exports);
107
107
  __exportStar(require("./bot/bot-location-request.entity"), exports);
108
+ // Telegram module
109
+ __exportStar(require("./telegram"), exports);
108
110
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,gBAAgB;AAChB,+CAA6B;AAC7B,sDAAoC;AAEpC,gBAAgB;AAChB,yDAAuC;AACvC,wEAAsD;AACtD,mEAAiD;AACjD,qEAAmD;AACnD,6DAA2C;AAC3C,wEAAsD;AACtD,+DAA6C;AAC7C,wDAAsC;AACtC,uEAAqD;AACrD,oEAAkD;AAClD,qEAAmD;AACnD,qEAAmD;AACnD,sEAAoD;AAEpD,iBAAiB;AACjB,2DAAyC;AAEzC,mBAAmB;AACnB,+DAA6C;AAC7C,yEAAuD;AACvD,yDAAuC;AACvC,sEAAoD;AACpD,uEAAqD;AACrD,oEAAkD;AAClD,oEAAkD;AAClD,2EAAyD;AAEzD,kBAAkB;AAClB,6DAA2C;AAC3C,yEAAuD;AAEvD,cAAc;AACd,qDAAmC;AACnC,2DAAyC;AACzC,0DAAwC;AACxC,4DAA0C;AAE1C,eAAe;AACf,uDAAqC;AAErC,cAAc;AACd,yDAAuC;AACvC,yDAAuC;AAEvC,cAAc;AACd,4DAA0C;AAC1C,6DAA2C;AAC3C,iEAA+C;AAC/C,oEAAkD;AAElD,sBAAsB;AACtB,8EAA4D;AAC5D,gFAA8D;AAC9D,8DAA4C;AAE5C,uBAAuB;AACvB,yDAAuC;AACvC,6DAA2C;AAE3C,kBAAkB;AAClB,sEAAoD;AAEpD,sBAAsB;AACtB,iEAA+C;AAC/C,wEAAsD;AACtD,oEAAkD;AAElD,qBAAqB;AACrB,0EAAwD;AAExD,uBAAuB;AACvB,6EAA2D;AAC3D,gFAA8D;AAE9D,mBAAmB;AACnB,qEAAmD;AACnD,4EAA0D;AAE1D,sBAAsB;AACtB,2EAAyD;AACzD,wEAAsD;AACtD,yEAAuD;AAEvD,cAAc;AACd,gDAA8B;AAE9B,cAAc;AACd,yCAAuB;AAEvB,aAAa;AACb,sDAAoC;AAEpC,YAAY;AACZ,qDAAmC;AAEnC,yBAAyB;AACzB,gEAA8C;AAC9C,yDAAuC;AAEvC,aAAa;AACb,2DAAyC;AACzC,+DAA6C;AAC7C,kEAAgD;AAChD,oEAAkD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,gBAAgB;AAChB,+CAA6B;AAC7B,sDAAoC;AAEpC,gBAAgB;AAChB,yDAAuC;AACvC,wEAAsD;AACtD,mEAAiD;AACjD,qEAAmD;AACnD,6DAA2C;AAC3C,wEAAsD;AACtD,+DAA6C;AAC7C,wDAAsC;AACtC,uEAAqD;AACrD,oEAAkD;AAClD,qEAAmD;AACnD,qEAAmD;AACnD,sEAAoD;AAEpD,iBAAiB;AACjB,2DAAyC;AAEzC,mBAAmB;AACnB,+DAA6C;AAC7C,yEAAuD;AACvD,yDAAuC;AACvC,sEAAoD;AACpD,uEAAqD;AACrD,oEAAkD;AAClD,oEAAkD;AAClD,2EAAyD;AAEzD,kBAAkB;AAClB,6DAA2C;AAC3C,yEAAuD;AAEvD,cAAc;AACd,qDAAmC;AACnC,2DAAyC;AACzC,0DAAwC;AACxC,4DAA0C;AAE1C,eAAe;AACf,uDAAqC;AAErC,cAAc;AACd,yDAAuC;AACvC,yDAAuC;AAEvC,cAAc;AACd,4DAA0C;AAC1C,6DAA2C;AAC3C,iEAA+C;AAC/C,oEAAkD;AAElD,sBAAsB;AACtB,8EAA4D;AAC5D,gFAA8D;AAC9D,8DAA4C;AAE5C,uBAAuB;AACvB,yDAAuC;AACvC,6DAA2C;AAE3C,kBAAkB;AAClB,sEAAoD;AAEpD,sBAAsB;AACtB,iEAA+C;AAC/C,wEAAsD;AACtD,oEAAkD;AAElD,qBAAqB;AACrB,0EAAwD;AAExD,uBAAuB;AACvB,6EAA2D;AAC3D,gFAA8D;AAE9D,mBAAmB;AACnB,qEAAmD;AACnD,4EAA0D;AAE1D,sBAAsB;AACtB,2EAAyD;AACzD,wEAAsD;AACtD,yEAAuD;AAEvD,cAAc;AACd,gDAA8B;AAE9B,cAAc;AACd,yCAAuB;AAEvB,aAAa;AACb,sDAAoC;AAEpC,YAAY;AACZ,qDAAmC;AAEnC,yBAAyB;AACzB,gEAA8C;AAC9C,yDAAuC;AAEvC,aAAa;AACb,2DAAyC;AACzC,+DAA6C;AAC7C,kEAAgD;AAChD,oEAAkD;AAElD,kBAAkB;AAClB,6CAA2B"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Telegram module entities
3
+ */
4
+ export * from './telegram-user.entity';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/entities/telegram/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * Telegram module entities
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./telegram-user.entity"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/entities/telegram/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,yDAAuC"}
@@ -0,0 +1,98 @@
1
+ import { User } from '../user.entity';
2
+ /**
3
+ * TelegramUser - Maps Telegram accounts to ARGOS users
4
+ *
5
+ * This entity creates a bridge between Telegram accounts and ARGOS user accounts.
6
+ * It stores Telegram-specific data while referencing the main User entity.
7
+ */
8
+ export declare class TelegramUser {
9
+ id: string;
10
+ /**
11
+ * Reference to ARGOS User ID (from User entity)
12
+ * This links the Telegram account to the ARGOS user
13
+ */
14
+ userId: string;
15
+ user: User;
16
+ /**
17
+ * Tenant ID - for multi-tenant support
18
+ * Synced from ARGOS User
19
+ */
20
+ tenantId?: string;
21
+ /**
22
+ * Telegram chat ID - unique identifier for the conversation
23
+ */
24
+ chatId: number;
25
+ /**
26
+ * Telegram user ID - unique identifier for the user on Telegram
27
+ * This is different from chatId (chatId can be a group, userId is always individual)
28
+ */
29
+ telegramUserId: number;
30
+ /**
31
+ * Telegram username (without @)
32
+ */
33
+ username?: string;
34
+ /**
35
+ * Telegram first name
36
+ */
37
+ firstName?: string;
38
+ /**
39
+ * Telegram last name
40
+ */
41
+ lastName?: string;
42
+ /**
43
+ * Telegram language code (e.g., 'es', 'en')
44
+ */
45
+ languageCode?: string;
46
+ /**
47
+ * Active status - can be used to soft-disable users
48
+ */
49
+ isActive: boolean;
50
+ /**
51
+ * Notifications enabled for this user
52
+ */
53
+ notificationsEnabled: boolean;
54
+ /**
55
+ * Notification preferences
56
+ */
57
+ preferences?: {
58
+ searchResults?: boolean;
59
+ batchSearchComplete?: boolean;
60
+ casesUpdates?: boolean;
61
+ systemAlerts?: boolean;
62
+ securityAlerts?: boolean;
63
+ profileMatches?: boolean;
64
+ commanderBotNotifications?: boolean;
65
+ quietHours?: {
66
+ enabled: boolean;
67
+ startTime: string;
68
+ endTime: string;
69
+ };
70
+ frequency?: 'immediate' | 'hourly' | 'daily';
71
+ };
72
+ /**
73
+ * Last notification sent timestamp
74
+ */
75
+ lastNotificationAt?: Date;
76
+ /**
77
+ * Total notifications sent to this user
78
+ */
79
+ totalNotificationsSent: number;
80
+ /**
81
+ * Last activity timestamp
82
+ */
83
+ lastActivityAt?: Date;
84
+ /**
85
+ * Total messages received from this user
86
+ */
87
+ totalMessages: number;
88
+ createdAt: Date;
89
+ updatedAt: Date;
90
+ getFullName(): string;
91
+ getDisplayName(): string;
92
+ canReceiveNotifications(): boolean;
93
+ isInQuietHours(): boolean;
94
+ incrementNotificationCount(): void;
95
+ updateActivity(): void;
96
+ isRecentlyActive(minutesThreshold?: number): boolean;
97
+ }
98
+ //# sourceMappingURL=telegram-user.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram-user.entity.d.ts","sourceRoot":"","sources":["../../../src/entities/telegram/telegram-user.entity.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC;;;;;GAKG;AACH,qBAKa,YAAY;IAEvB,EAAE,EAAG,MAAM,CAAC;IAEZ;;;OAGG;IAEH,MAAM,EAAG,MAAM,CAAC;IAIhB,IAAI,EAAG,IAAI,CAAC;IAEZ;;;OAGG;IAEH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IAEH,MAAM,EAAG,MAAM,CAAC;IAEhB;;;OAGG;IAEH,cAAc,EAAG,MAAM,CAAC;IAExB;;OAEG;IAEH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IAEH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IAEH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IAEH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IAEH,QAAQ,EAAG,OAAO,CAAC;IAEnB;;OAEG;IAEH,oBAAoB,EAAG,OAAO,CAAC;IAE/B;;OAEG;IAEH,WAAW,CAAC,EAAE;QACZ,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;QACpC,UAAU,CAAC,EAAE;YACX,OAAO,EAAE,OAAO,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,SAAS,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;KAC9C,CAAC;IAEF;;OAEG;IAEH,kBAAkB,CAAC,EAAE,IAAI,CAAC;IAE1B;;OAEG;IAEH,sBAAsB,EAAG,MAAM,CAAC;IAEhC;;OAEG;IAEH,cAAc,CAAC,EAAE,IAAI,CAAC;IAEtB;;OAEG;IAEH,aAAa,EAAG,MAAM,CAAC;IAGvB,SAAS,EAAG,IAAI,CAAC;IAGjB,SAAS,EAAG,IAAI,CAAC;IAGjB,WAAW,IAAI,MAAM;IAOrB,cAAc,IAAI,MAAM;IAIxB,uBAAuB,IAAI,OAAO;IAIlC,cAAc,IAAI,OAAO;IAuBzB,0BAA0B,IAAI,IAAI;IAKlC,cAAc,IAAI,IAAI;IAKtB,gBAAgB,CAAC,gBAAgB,GAAE,MAAW,GAAG,OAAO;CAKzD"}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TelegramUser = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const user_entity_1 = require("../user.entity");
15
+ /**
16
+ * TelegramUser - Maps Telegram accounts to ARGOS users
17
+ *
18
+ * This entity creates a bridge between Telegram accounts and ARGOS user accounts.
19
+ * It stores Telegram-specific data while referencing the main User entity.
20
+ */
21
+ let TelegramUser = class TelegramUser {
22
+ // Helper methods
23
+ getFullName() {
24
+ if (this.firstName && this.lastName) {
25
+ return `${this.firstName} ${this.lastName}`;
26
+ }
27
+ return this.firstName || this.username || 'Unknown User';
28
+ }
29
+ getDisplayName() {
30
+ return this.username ? `@${this.username}` : this.getFullName();
31
+ }
32
+ canReceiveNotifications() {
33
+ return this.isActive && this.notificationsEnabled;
34
+ }
35
+ isInQuietHours() {
36
+ if (!this.preferences?.quietHours?.enabled) {
37
+ return false;
38
+ }
39
+ const now = new Date();
40
+ const currentTime = now.getHours() * 100 + now.getMinutes();
41
+ const startTime = parseInt(this.preferences.quietHours.startTime.replace(':', ''));
42
+ const endTime = parseInt(this.preferences.quietHours.endTime.replace(':', ''));
43
+ if (startTime < endTime) {
44
+ return currentTime >= startTime && currentTime <= endTime;
45
+ }
46
+ else {
47
+ // Quiet hours cross midnight
48
+ return currentTime >= startTime || currentTime <= endTime;
49
+ }
50
+ }
51
+ incrementNotificationCount() {
52
+ this.totalNotificationsSent++;
53
+ this.lastNotificationAt = new Date();
54
+ }
55
+ updateActivity() {
56
+ this.lastActivityAt = new Date();
57
+ this.totalMessages++;
58
+ }
59
+ isRecentlyActive(minutesThreshold = 30) {
60
+ if (!this.lastActivityAt)
61
+ return false;
62
+ const threshold = new Date(Date.now() - minutesThreshold * 60 * 1000);
63
+ return this.lastActivityAt > threshold;
64
+ }
65
+ };
66
+ exports.TelegramUser = TelegramUser;
67
+ __decorate([
68
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
69
+ __metadata("design:type", String)
70
+ ], TelegramUser.prototype, "id", void 0);
71
+ __decorate([
72
+ (0, typeorm_1.Column)({ type: 'uuid', unique: true, name: 'user_id' }),
73
+ __metadata("design:type", String)
74
+ ], TelegramUser.prototype, "userId", void 0);
75
+ __decorate([
76
+ (0, typeorm_1.ManyToOne)(() => user_entity_1.User),
77
+ (0, typeorm_1.JoinColumn)({ name: 'user_id' }),
78
+ __metadata("design:type", user_entity_1.User)
79
+ ], TelegramUser.prototype, "user", void 0);
80
+ __decorate([
81
+ (0, typeorm_1.Column)({ name: 'tenant_id', length: 50, default: 'sp3', nullable: true }),
82
+ __metadata("design:type", String)
83
+ ], TelegramUser.prototype, "tenantId", void 0);
84
+ __decorate([
85
+ (0, typeorm_1.Column)({ type: 'bigint', unique: true, name: 'chat_id' }),
86
+ __metadata("design:type", Number)
87
+ ], TelegramUser.prototype, "chatId", void 0);
88
+ __decorate([
89
+ (0, typeorm_1.Column)({ type: 'bigint', unique: true, name: 'telegram_user_id' }),
90
+ __metadata("design:type", Number)
91
+ ], TelegramUser.prototype, "telegramUserId", void 0);
92
+ __decorate([
93
+ (0, typeorm_1.Column)({ type: 'varchar', length: 100, nullable: true }),
94
+ __metadata("design:type", String)
95
+ ], TelegramUser.prototype, "username", void 0);
96
+ __decorate([
97
+ (0, typeorm_1.Column)({ type: 'varchar', length: 100, nullable: true, name: 'first_name' }),
98
+ __metadata("design:type", String)
99
+ ], TelegramUser.prototype, "firstName", void 0);
100
+ __decorate([
101
+ (0, typeorm_1.Column)({ type: 'varchar', length: 100, nullable: true, name: 'last_name' }),
102
+ __metadata("design:type", String)
103
+ ], TelegramUser.prototype, "lastName", void 0);
104
+ __decorate([
105
+ (0, typeorm_1.Column)({ type: 'varchar', length: 10, nullable: true, name: 'language_code' }),
106
+ __metadata("design:type", String)
107
+ ], TelegramUser.prototype, "languageCode", void 0);
108
+ __decorate([
109
+ (0, typeorm_1.Column)({ type: 'boolean', default: true, name: 'is_active' }),
110
+ __metadata("design:type", Boolean)
111
+ ], TelegramUser.prototype, "isActive", void 0);
112
+ __decorate([
113
+ (0, typeorm_1.Column)({ type: 'boolean', default: true, name: 'notifications_enabled' }),
114
+ __metadata("design:type", Boolean)
115
+ ], TelegramUser.prototype, "notificationsEnabled", void 0);
116
+ __decorate([
117
+ (0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
118
+ __metadata("design:type", Object)
119
+ ], TelegramUser.prototype, "preferences", void 0);
120
+ __decorate([
121
+ (0, typeorm_1.Column)({ type: 'timestamp', nullable: true, name: 'last_notification_at' }),
122
+ __metadata("design:type", Date)
123
+ ], TelegramUser.prototype, "lastNotificationAt", void 0);
124
+ __decorate([
125
+ (0, typeorm_1.Column)({ type: 'int', default: 0, name: 'total_notifications_sent' }),
126
+ __metadata("design:type", Number)
127
+ ], TelegramUser.prototype, "totalNotificationsSent", void 0);
128
+ __decorate([
129
+ (0, typeorm_1.Column)({ type: 'timestamp', nullable: true, name: 'last_activity_at' }),
130
+ __metadata("design:type", Date)
131
+ ], TelegramUser.prototype, "lastActivityAt", void 0);
132
+ __decorate([
133
+ (0, typeorm_1.Column)({ type: 'int', default: 0, name: 'total_messages' }),
134
+ __metadata("design:type", Number)
135
+ ], TelegramUser.prototype, "totalMessages", void 0);
136
+ __decorate([
137
+ (0, typeorm_1.CreateDateColumn)({ name: 'created_at' }),
138
+ __metadata("design:type", Date)
139
+ ], TelegramUser.prototype, "createdAt", void 0);
140
+ __decorate([
141
+ (0, typeorm_1.UpdateDateColumn)({ name: 'updated_at' }),
142
+ __metadata("design:type", Date)
143
+ ], TelegramUser.prototype, "updatedAt", void 0);
144
+ exports.TelegramUser = TelegramUser = __decorate([
145
+ (0, typeorm_1.Entity)({ name: 'telegram_users' }),
146
+ (0, typeorm_1.Index)(['userId'], { unique: true }),
147
+ (0, typeorm_1.Index)(['chatId'], { unique: true }),
148
+ (0, typeorm_1.Index)(['telegramUserId'], { unique: true }),
149
+ (0, typeorm_1.Index)(['tenantId'])
150
+ ], TelegramUser);
151
+ //# sourceMappingURL=telegram-user.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram-user.entity.js","sourceRoot":"","sources":["../../../src/entities/telegram/telegram-user.entity.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sigmatech/pergamo",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "description": "Shared TypeORM entities and utilities for Dataven intelligence system - Named after the ancient library of Pergamon",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",