@sigmatech/pergamo 0.1.10 → 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.
Files changed (33) hide show
  1. package/dist/entities/bot/bot-command-log.entity.d.ts +34 -0
  2. package/dist/entities/bot/bot-command-log.entity.d.ts.map +1 -0
  3. package/dist/entities/bot/bot-command-log.entity.js +141 -0
  4. package/dist/entities/bot/bot-command-log.entity.js.map +1 -0
  5. package/dist/entities/bot/bot-location-request.entity.d.ts +39 -0
  6. package/dist/entities/bot/bot-location-request.entity.d.ts.map +1 -0
  7. package/dist/entities/bot/bot-location-request.entity.js +161 -0
  8. package/dist/entities/bot/bot-location-request.entity.js.map +1 -0
  9. package/dist/entities/bot/bot-search-request.entity.d.ts +41 -0
  10. package/dist/entities/bot/bot-search-request.entity.d.ts.map +1 -0
  11. package/dist/entities/bot/bot-search-request.entity.js +156 -0
  12. package/dist/entities/bot/bot-search-request.entity.js.map +1 -0
  13. package/dist/entities/bot/bot-session.entity.d.ts +33 -0
  14. package/dist/entities/bot/bot-session.entity.d.ts.map +1 -0
  15. package/dist/entities/bot/bot-session.entity.js +119 -0
  16. package/dist/entities/bot/bot-session.entity.js.map +1 -0
  17. package/dist/entities/index.d.ts +5 -0
  18. package/dist/entities/index.d.ts.map +1 -1
  19. package/dist/entities/index.js +7 -0
  20. package/dist/entities/index.js.map +1 -1
  21. package/dist/entities/telegram/index.d.ts +5 -0
  22. package/dist/entities/telegram/index.d.ts.map +1 -0
  23. package/dist/entities/telegram/index.js +21 -0
  24. package/dist/entities/telegram/index.js.map +1 -0
  25. package/dist/entities/telegram/telegram-user.entity.d.ts +98 -0
  26. package/dist/entities/telegram/telegram-user.entity.d.ts.map +1 -0
  27. package/dist/entities/telegram/telegram-user.entity.js +151 -0
  28. package/dist/entities/telegram/telegram-user.entity.js.map +1 -0
  29. package/dist/entities/user.entity.d.ts +15 -0
  30. package/dist/entities/user.entity.d.ts.map +1 -1
  31. package/dist/entities/user.entity.js +30 -0
  32. package/dist/entities/user.entity.js.map +1 -1
  33. package/package.json +1 -1
@@ -0,0 +1,34 @@
1
+ import { User } from '../user.entity';
2
+ import { BotType } from './bot-session.entity';
3
+ export declare enum CommandExecutionStatus {
4
+ PENDING = "pending",
5
+ PROCESSING = "processing",
6
+ COMPLETED = "completed",
7
+ FAILED = "failed"
8
+ }
9
+ export declare class BotCommandLog {
10
+ id: string;
11
+ userId: string;
12
+ user: User;
13
+ chatId: number;
14
+ tenantId: string;
15
+ botType: BotType;
16
+ command: string;
17
+ parameters?: Record<string, any>;
18
+ executionStatus: CommandExecutionStatus;
19
+ result?: Record<string, any>;
20
+ errorMessage?: string;
21
+ executionTimeMs?: number;
22
+ createdAt: Date;
23
+ completedAt?: Date;
24
+ markAsProcessing(): void;
25
+ markAsCompleted(result: Record<string, any>, executionTimeMs: number): void;
26
+ markAsFailed(errorMessage: string, executionTimeMs: number): void;
27
+ isPending(): boolean;
28
+ isProcessing(): boolean;
29
+ isCompleted(): boolean;
30
+ isFailed(): boolean;
31
+ getExecutionDuration(): number | null;
32
+ getCommandDescription(): string;
33
+ }
34
+ //# sourceMappingURL=bot-command-log.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-command-log.entity.d.ts","sourceRoot":"","sources":["../../../src/entities/bot/bot-command-log.entity.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,oBAAY,sBAAsB;IAChC,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED,qBAKa,aAAa;IAExB,EAAE,EAAG,MAAM,CAAC;IAGZ,MAAM,EAAG,MAAM,CAAC;IAIhB,IAAI,EAAG,IAAI,CAAC;IAGZ,MAAM,EAAG,MAAM,CAAC;IAGhB,QAAQ,EAAG,MAAM,CAAC;IAQlB,OAAO,EAAG,OAAO,CAAC;IAGlB,OAAO,EAAG,MAAM,CAAC;IAGjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAQjC,eAAe,EAAG,sBAAsB,CAAC;IAGzC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAG7B,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,SAAS,EAAG,IAAI,CAAC;IAGjB,WAAW,CAAC,EAAE,IAAI,CAAC;IAGnB,gBAAgB,IAAI,IAAI;IAIxB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAO3E,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAOjE,SAAS,IAAI,OAAO;IAIpB,YAAY,IAAI,OAAO;IAIvB,WAAW,IAAI,OAAO;IAItB,QAAQ,IAAI,OAAO;IAInB,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAKrC,qBAAqB,IAAI,MAAM;CAQhC"}
@@ -0,0 +1,141 @@
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.BotCommandLog = exports.CommandExecutionStatus = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const user_entity_1 = require("../user.entity");
15
+ const bot_session_entity_1 = require("./bot-session.entity");
16
+ var CommandExecutionStatus;
17
+ (function (CommandExecutionStatus) {
18
+ CommandExecutionStatus["PENDING"] = "pending";
19
+ CommandExecutionStatus["PROCESSING"] = "processing";
20
+ CommandExecutionStatus["COMPLETED"] = "completed";
21
+ CommandExecutionStatus["FAILED"] = "failed";
22
+ })(CommandExecutionStatus || (exports.CommandExecutionStatus = CommandExecutionStatus = {}));
23
+ let BotCommandLog = class BotCommandLog {
24
+ // Helper methods
25
+ markAsProcessing() {
26
+ this.executionStatus = CommandExecutionStatus.PROCESSING;
27
+ }
28
+ markAsCompleted(result, executionTimeMs) {
29
+ this.executionStatus = CommandExecutionStatus.COMPLETED;
30
+ this.result = result;
31
+ this.executionTimeMs = executionTimeMs;
32
+ this.completedAt = new Date();
33
+ }
34
+ markAsFailed(errorMessage, executionTimeMs) {
35
+ this.executionStatus = CommandExecutionStatus.FAILED;
36
+ this.errorMessage = errorMessage;
37
+ this.executionTimeMs = executionTimeMs;
38
+ this.completedAt = new Date();
39
+ }
40
+ isPending() {
41
+ return this.executionStatus === CommandExecutionStatus.PENDING;
42
+ }
43
+ isProcessing() {
44
+ return this.executionStatus === CommandExecutionStatus.PROCESSING;
45
+ }
46
+ isCompleted() {
47
+ return this.executionStatus === CommandExecutionStatus.COMPLETED;
48
+ }
49
+ isFailed() {
50
+ return this.executionStatus === CommandExecutionStatus.FAILED;
51
+ }
52
+ getExecutionDuration() {
53
+ if (!this.executionTimeMs)
54
+ return null;
55
+ return this.executionTimeMs;
56
+ }
57
+ getCommandDescription() {
58
+ const params = this.parameters
59
+ ? Object.entries(this.parameters)
60
+ .map(([key, value]) => `${key}=${value}`)
61
+ .join(', ')
62
+ : 'sin parámetros';
63
+ return `${this.command} (${params})`;
64
+ }
65
+ };
66
+ exports.BotCommandLog = BotCommandLog;
67
+ __decorate([
68
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
69
+ __metadata("design:type", String)
70
+ ], BotCommandLog.prototype, "id", void 0);
71
+ __decorate([
72
+ (0, typeorm_1.Column)({ type: 'uuid', name: 'user_id' }),
73
+ __metadata("design:type", String)
74
+ ], BotCommandLog.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
+ ], BotCommandLog.prototype, "user", void 0);
80
+ __decorate([
81
+ (0, typeorm_1.Column)({ type: 'bigint', name: 'chat_id' }),
82
+ __metadata("design:type", Number)
83
+ ], BotCommandLog.prototype, "chatId", void 0);
84
+ __decorate([
85
+ (0, typeorm_1.Column)({ name: 'tenant_id', length: 50, default: 'sp3' }),
86
+ __metadata("design:type", String)
87
+ ], BotCommandLog.prototype, "tenantId", void 0);
88
+ __decorate([
89
+ (0, typeorm_1.Column)({
90
+ type: 'enum',
91
+ enum: bot_session_entity_1.BotType,
92
+ name: 'bot_type',
93
+ default: bot_session_entity_1.BotType.COMMANDER,
94
+ }),
95
+ __metadata("design:type", String)
96
+ ], BotCommandLog.prototype, "botType", void 0);
97
+ __decorate([
98
+ (0, typeorm_1.Column)({ length: 100 }),
99
+ __metadata("design:type", String)
100
+ ], BotCommandLog.prototype, "command", void 0);
101
+ __decorate([
102
+ (0, typeorm_1.Column)({ type: 'jsonb', nullable: true, default: {} }),
103
+ __metadata("design:type", Object)
104
+ ], BotCommandLog.prototype, "parameters", void 0);
105
+ __decorate([
106
+ (0, typeorm_1.Column)({
107
+ type: 'enum',
108
+ enum: CommandExecutionStatus,
109
+ name: 'execution_status',
110
+ default: CommandExecutionStatus.PENDING,
111
+ }),
112
+ __metadata("design:type", String)
113
+ ], BotCommandLog.prototype, "executionStatus", void 0);
114
+ __decorate([
115
+ (0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
116
+ __metadata("design:type", Object)
117
+ ], BotCommandLog.prototype, "result", void 0);
118
+ __decorate([
119
+ (0, typeorm_1.Column)({ type: 'text', name: 'error_message', nullable: true }),
120
+ __metadata("design:type", String)
121
+ ], BotCommandLog.prototype, "errorMessage", void 0);
122
+ __decorate([
123
+ (0, typeorm_1.Column)({ type: 'integer', name: 'execution_time_ms', nullable: true }),
124
+ __metadata("design:type", Number)
125
+ ], BotCommandLog.prototype, "executionTimeMs", void 0);
126
+ __decorate([
127
+ (0, typeorm_1.CreateDateColumn)({ name: 'created_at' }),
128
+ __metadata("design:type", Date)
129
+ ], BotCommandLog.prototype, "createdAt", void 0);
130
+ __decorate([
131
+ (0, typeorm_1.Column)({ type: 'timestamp', name: 'completed_at', nullable: true }),
132
+ __metadata("design:type", Date)
133
+ ], BotCommandLog.prototype, "completedAt", void 0);
134
+ exports.BotCommandLog = BotCommandLog = __decorate([
135
+ (0, typeorm_1.Entity)({ name: 'bot_command_logs' }),
136
+ (0, typeorm_1.Index)(['userId', 'createdAt']),
137
+ (0, typeorm_1.Index)(['tenantId', 'createdAt']),
138
+ (0, typeorm_1.Index)(['botType', 'command']),
139
+ (0, typeorm_1.Index)(['executionStatus'])
140
+ ], BotCommandLog);
141
+ //# sourceMappingURL=bot-command-log.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-command-log.entity.js","sourceRoot":"","sources":["../../../src/entities/bot/bot-command-log.entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { User } from "../user.entity";
2
+ import { BotCommandLog } from "./bot-command-log.entity";
3
+ import { LocationRequestStatus } from "../telefonia/location-request.entity";
4
+ export declare enum LocationRequestType {
5
+ CURRENT = "current",
6
+ HISTORICAL = "historical"
7
+ }
8
+ export declare class BotLocationRequest {
9
+ id: string;
10
+ commandLogId: string;
11
+ commandLog: BotCommandLog;
12
+ userId: string;
13
+ user: User;
14
+ tenantId: string;
15
+ phoneNumber: string;
16
+ requestType: LocationRequestType;
17
+ status: LocationRequestStatus;
18
+ provider?: string;
19
+ locationData?: Record<string, any>;
20
+ createdAt: Date;
21
+ completedAt?: Date;
22
+ markAsProcessing(): void;
23
+ markAsCompleted(locationData: Record<string, any>, provider: string): void;
24
+ markAsFailed(): void;
25
+ markAsNoData(): void;
26
+ isPending(): boolean;
27
+ isProcessing(): boolean;
28
+ isCompleted(): boolean;
29
+ isFailed(): boolean;
30
+ hasData(): boolean;
31
+ getCoordinates(): {
32
+ lat: number;
33
+ lon: number;
34
+ } | null;
35
+ getGoogleMapsLink(): string | null;
36
+ getExecutionTime(): number | null;
37
+ getFormattedPhoneNumber(): string;
38
+ }
39
+ //# sourceMappingURL=bot-location-request.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-location-request.entity.d.ts","sourceRoot":"","sources":["../../../src/entities/bot/bot-location-request.entity.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;IACnB,UAAU,eAAe;CAC1B;AAED,qBAKa,kBAAkB;IAE7B,EAAE,EAAG,MAAM,CAAC;IAGZ,YAAY,EAAG,MAAM,CAAC;IAItB,UAAU,EAAG,aAAa,CAAC;IAG3B,MAAM,EAAG,MAAM,CAAC;IAIhB,IAAI,EAAG,IAAI,CAAC;IAGZ,QAAQ,EAAG,MAAM,CAAC;IAGlB,WAAW,EAAG,MAAM,CAAC;IAQrB,WAAW,EAAG,mBAAmB,CAAC;IAOlC,MAAM,EAAG,qBAAqB,CAAC;IAG/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAGnC,SAAS,EAAG,IAAI,CAAC;IAGjB,WAAW,CAAC,EAAE,IAAI,CAAC;IAGnB,gBAAgB,IAAI,IAAI;IAIxB,eAAe,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAO1E,YAAY,IAAI,IAAI;IAKpB,YAAY,IAAI,IAAI;IAKpB,SAAS,IAAI,OAAO;IAIpB,YAAY,IAAI,OAAO;IAIvB,WAAW,IAAI,OAAO;IAItB,QAAQ,IAAI,OAAO;IAInB,OAAO,IAAI,OAAO;IAQlB,cAAc,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAarD,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAMlC,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAKjC,uBAAuB,IAAI,MAAM;CAQlC"}
@@ -0,0 +1,161 @@
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.BotLocationRequest = exports.LocationRequestType = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const user_entity_1 = require("../user.entity");
15
+ const bot_command_log_entity_1 = require("./bot-command-log.entity");
16
+ const location_request_entity_1 = require("../telefonia/location-request.entity");
17
+ var LocationRequestType;
18
+ (function (LocationRequestType) {
19
+ LocationRequestType["CURRENT"] = "current";
20
+ LocationRequestType["HISTORICAL"] = "historical";
21
+ })(LocationRequestType || (exports.LocationRequestType = LocationRequestType = {}));
22
+ let BotLocationRequest = class BotLocationRequest {
23
+ // Helper methods
24
+ markAsProcessing() {
25
+ this.status = location_request_entity_1.LocationRequestStatus.SENT;
26
+ }
27
+ markAsCompleted(locationData, provider) {
28
+ this.status = location_request_entity_1.LocationRequestStatus.COMPLETED;
29
+ this.locationData = locationData;
30
+ this.provider = provider;
31
+ this.completedAt = new Date();
32
+ }
33
+ markAsFailed() {
34
+ this.status = location_request_entity_1.LocationRequestStatus.FAILED;
35
+ this.completedAt = new Date();
36
+ }
37
+ markAsNoData() {
38
+ this.status = location_request_entity_1.LocationRequestStatus.TIMEOUT;
39
+ this.completedAt = new Date();
40
+ }
41
+ isPending() {
42
+ return this.status === location_request_entity_1.LocationRequestStatus.PENDING;
43
+ }
44
+ isProcessing() {
45
+ return this.status === location_request_entity_1.LocationRequestStatus.SENT;
46
+ }
47
+ isCompleted() {
48
+ return this.status === location_request_entity_1.LocationRequestStatus.COMPLETED;
49
+ }
50
+ isFailed() {
51
+ return this.status === location_request_entity_1.LocationRequestStatus.FAILED;
52
+ }
53
+ hasData() {
54
+ return (this.isCompleted() &&
55
+ !!this.locationData &&
56
+ Object.keys(this.locationData).length > 0);
57
+ }
58
+ getCoordinates() {
59
+ if (!this.hasData())
60
+ return null;
61
+ const { latitude, longitude, lat, lon } = this.locationData || {};
62
+ if (latitude && longitude) {
63
+ return { lat: latitude, lon: longitude };
64
+ }
65
+ if (lat && lon) {
66
+ return { lat, lon };
67
+ }
68
+ return null;
69
+ }
70
+ getGoogleMapsLink() {
71
+ const coords = this.getCoordinates();
72
+ if (!coords)
73
+ return null;
74
+ return `https://www.google.com/maps?q=${coords.lat},${coords.lon}`;
75
+ }
76
+ getExecutionTime() {
77
+ if (!this.completedAt)
78
+ return null;
79
+ return this.completedAt.getTime() - this.createdAt.getTime();
80
+ }
81
+ getFormattedPhoneNumber() {
82
+ // Format phone number (e.g., 04141234567 -> 0414-1234567)
83
+ const cleaned = this.phoneNumber.replace(/\D/g, "");
84
+ if (cleaned.length === 11 && cleaned.startsWith("0")) {
85
+ return `${cleaned.slice(0, 4)}-${cleaned.slice(4)}`;
86
+ }
87
+ return this.phoneNumber;
88
+ }
89
+ };
90
+ exports.BotLocationRequest = BotLocationRequest;
91
+ __decorate([
92
+ (0, typeorm_1.PrimaryGeneratedColumn)("uuid"),
93
+ __metadata("design:type", String)
94
+ ], BotLocationRequest.prototype, "id", void 0);
95
+ __decorate([
96
+ (0, typeorm_1.Column)({ type: "uuid", name: "command_log_id" }),
97
+ __metadata("design:type", String)
98
+ ], BotLocationRequest.prototype, "commandLogId", void 0);
99
+ __decorate([
100
+ (0, typeorm_1.ManyToOne)(() => bot_command_log_entity_1.BotCommandLog),
101
+ (0, typeorm_1.JoinColumn)({ name: "command_log_id" }),
102
+ __metadata("design:type", bot_command_log_entity_1.BotCommandLog)
103
+ ], BotLocationRequest.prototype, "commandLog", void 0);
104
+ __decorate([
105
+ (0, typeorm_1.Column)({ type: "uuid", name: "user_id" }),
106
+ __metadata("design:type", String)
107
+ ], BotLocationRequest.prototype, "userId", void 0);
108
+ __decorate([
109
+ (0, typeorm_1.ManyToOne)(() => user_entity_1.User),
110
+ (0, typeorm_1.JoinColumn)({ name: "user_id" }),
111
+ __metadata("design:type", user_entity_1.User)
112
+ ], BotLocationRequest.prototype, "user", void 0);
113
+ __decorate([
114
+ (0, typeorm_1.Column)({ name: "tenant_id", length: 50, default: "sp3" }),
115
+ __metadata("design:type", String)
116
+ ], BotLocationRequest.prototype, "tenantId", void 0);
117
+ __decorate([
118
+ (0, typeorm_1.Column)({ name: "phone_number", length: 20 }),
119
+ __metadata("design:type", String)
120
+ ], BotLocationRequest.prototype, "phoneNumber", void 0);
121
+ __decorate([
122
+ (0, typeorm_1.Column)({
123
+ type: "enum",
124
+ enum: LocationRequestType,
125
+ name: "request_type",
126
+ default: LocationRequestType.CURRENT,
127
+ }),
128
+ __metadata("design:type", String)
129
+ ], BotLocationRequest.prototype, "requestType", void 0);
130
+ __decorate([
131
+ (0, typeorm_1.Column)({
132
+ type: "enum",
133
+ enum: location_request_entity_1.LocationRequestStatus,
134
+ default: location_request_entity_1.LocationRequestStatus.PENDING,
135
+ }),
136
+ __metadata("design:type", String)
137
+ ], BotLocationRequest.prototype, "status", void 0);
138
+ __decorate([
139
+ (0, typeorm_1.Column)({ length: 50, nullable: true }),
140
+ __metadata("design:type", String)
141
+ ], BotLocationRequest.prototype, "provider", void 0);
142
+ __decorate([
143
+ (0, typeorm_1.Column)({ type: "jsonb", name: "location_data", nullable: true }),
144
+ __metadata("design:type", Object)
145
+ ], BotLocationRequest.prototype, "locationData", void 0);
146
+ __decorate([
147
+ (0, typeorm_1.CreateDateColumn)({ name: "created_at" }),
148
+ __metadata("design:type", Date)
149
+ ], BotLocationRequest.prototype, "createdAt", void 0);
150
+ __decorate([
151
+ (0, typeorm_1.Column)({ type: "timestamp", name: "completed_at", nullable: true }),
152
+ __metadata("design:type", Date)
153
+ ], BotLocationRequest.prototype, "completedAt", void 0);
154
+ exports.BotLocationRequest = BotLocationRequest = __decorate([
155
+ (0, typeorm_1.Entity)({ name: "bot_location_requests" }),
156
+ (0, typeorm_1.Index)(["userId", "createdAt"]),
157
+ (0, typeorm_1.Index)(["tenantId", "phoneNumber"]),
158
+ (0, typeorm_1.Index)(["status"]),
159
+ (0, typeorm_1.Index)(["commandLogId"])
160
+ ], BotLocationRequest);
161
+ //# sourceMappingURL=bot-location-request.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-location-request.entity.js","sourceRoot":"","sources":["../../../src/entities/bot/bot-location-request.entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { User } from "../user.entity";
2
+ import { BotCommandLog } from "./bot-command-log.entity";
3
+ export declare enum LocationSearchType {
4
+ PERSON = "person",
5
+ VEHICLE = "vehicle",
6
+ PHONE = "phone",
7
+ CEDULA = "cedula"
8
+ }
9
+ export declare enum LocationSearchStatus {
10
+ QUEUED = "queued",
11
+ PROCESSING = "processing",
12
+ COMPLETED = "completed",
13
+ FAILED = "failed"
14
+ }
15
+ export declare class BotSearchRequest {
16
+ id: string;
17
+ commandLogId: string;
18
+ commandLog: BotCommandLog;
19
+ userId: string;
20
+ user: User;
21
+ tenantId: string;
22
+ locationSearchType: LocationSearchType;
23
+ searchQuery: string;
24
+ status: LocationSearchStatus;
25
+ dataSources?: string[];
26
+ results?: Record<string, any>;
27
+ resultsSummary?: string;
28
+ createdAt: Date;
29
+ completedAt?: Date;
30
+ markAsProcessing(): void;
31
+ markAsCompleted(results: Record<string, any>, summary: string, dataSources: string[]): void;
32
+ markAsFailed(): void;
33
+ isQueued(): boolean;
34
+ isProcessing(): boolean;
35
+ isCompleted(): boolean;
36
+ isFailed(): boolean;
37
+ getFormattedQuery(): string;
38
+ hasResults(): boolean;
39
+ getExecutionTime(): number | null;
40
+ }
41
+ //# sourceMappingURL=bot-search-request.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-search-request.entity.d.ts","sourceRoot":"","sources":["../../../src/entities/bot/bot-search-request.entity.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,oBAAY,oBAAoB;IAC9B,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED,qBAKa,gBAAgB;IAE3B,EAAE,EAAG,MAAM,CAAC;IAGZ,YAAY,EAAG,MAAM,CAAC;IAItB,UAAU,EAAG,aAAa,CAAC;IAG3B,MAAM,EAAG,MAAM,CAAC;IAIhB,IAAI,EAAG,IAAI,CAAC;IAGZ,QAAQ,EAAG,MAAM,CAAC;IAOlB,kBAAkB,EAAG,kBAAkB,CAAC;IAGxC,WAAW,EAAG,MAAM,CAAC;IAOrB,MAAM,EAAG,oBAAoB,CAAC;IAG9B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAGvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAG9B,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,SAAS,EAAG,IAAI,CAAC;IAGjB,WAAW,CAAC,EAAE,IAAI,CAAC;IAGnB,gBAAgB,IAAI,IAAI;IAIxB,eAAe,CACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EAAE,GACpB,IAAI;IAQP,YAAY,IAAI,IAAI;IAKpB,QAAQ,IAAI,OAAO;IAInB,YAAY,IAAI,OAAO;IAIvB,WAAW,IAAI,OAAO;IAItB,QAAQ,IAAI,OAAO;IAInB,iBAAiB,IAAI,MAAM;IAc3B,UAAU,IAAI,OAAO;IAQrB,gBAAgB,IAAI,MAAM,GAAG,IAAI;CAIlC"}
@@ -0,0 +1,156 @@
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.BotSearchRequest = exports.LocationSearchStatus = exports.LocationSearchType = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const user_entity_1 = require("../user.entity");
15
+ const bot_command_log_entity_1 = require("./bot-command-log.entity");
16
+ var LocationSearchType;
17
+ (function (LocationSearchType) {
18
+ LocationSearchType["PERSON"] = "person";
19
+ LocationSearchType["VEHICLE"] = "vehicle";
20
+ LocationSearchType["PHONE"] = "phone";
21
+ LocationSearchType["CEDULA"] = "cedula";
22
+ })(LocationSearchType || (exports.LocationSearchType = LocationSearchType = {}));
23
+ var LocationSearchStatus;
24
+ (function (LocationSearchStatus) {
25
+ LocationSearchStatus["QUEUED"] = "queued";
26
+ LocationSearchStatus["PROCESSING"] = "processing";
27
+ LocationSearchStatus["COMPLETED"] = "completed";
28
+ LocationSearchStatus["FAILED"] = "failed";
29
+ })(LocationSearchStatus || (exports.LocationSearchStatus = LocationSearchStatus = {}));
30
+ let BotSearchRequest = class BotSearchRequest {
31
+ // Helper methods
32
+ markAsProcessing() {
33
+ this.status = LocationSearchStatus.PROCESSING;
34
+ }
35
+ markAsCompleted(results, summary, dataSources) {
36
+ this.status = LocationSearchStatus.COMPLETED;
37
+ this.results = results;
38
+ this.resultsSummary = summary;
39
+ this.dataSources = dataSources;
40
+ this.completedAt = new Date();
41
+ }
42
+ markAsFailed() {
43
+ this.status = LocationSearchStatus.FAILED;
44
+ this.completedAt = new Date();
45
+ }
46
+ isQueued() {
47
+ return this.status === LocationSearchStatus.QUEUED;
48
+ }
49
+ isProcessing() {
50
+ return this.status === LocationSearchStatus.PROCESSING;
51
+ }
52
+ isCompleted() {
53
+ return this.status === LocationSearchStatus.COMPLETED;
54
+ }
55
+ isFailed() {
56
+ return this.status === LocationSearchStatus.FAILED;
57
+ }
58
+ getFormattedQuery() {
59
+ switch (this.locationSearchType) {
60
+ case LocationSearchType.CEDULA:
61
+ case LocationSearchType.PERSON:
62
+ return `Cédula: ${this.searchQuery}`;
63
+ case LocationSearchType.VEHICLE:
64
+ return `Placa: ${this.searchQuery}`;
65
+ case LocationSearchType.PHONE:
66
+ return `Teléfono: ${this.searchQuery}`;
67
+ default:
68
+ return this.searchQuery;
69
+ }
70
+ }
71
+ hasResults() {
72
+ return (this.isCompleted() &&
73
+ !!this.results &&
74
+ Object.keys(this.results).length > 0);
75
+ }
76
+ getExecutionTime() {
77
+ if (!this.completedAt)
78
+ return null;
79
+ return this.completedAt.getTime() - this.createdAt.getTime();
80
+ }
81
+ };
82
+ exports.BotSearchRequest = BotSearchRequest;
83
+ __decorate([
84
+ (0, typeorm_1.PrimaryGeneratedColumn)("uuid"),
85
+ __metadata("design:type", String)
86
+ ], BotSearchRequest.prototype, "id", void 0);
87
+ __decorate([
88
+ (0, typeorm_1.Column)({ type: "uuid", name: "command_log_id" }),
89
+ __metadata("design:type", String)
90
+ ], BotSearchRequest.prototype, "commandLogId", void 0);
91
+ __decorate([
92
+ (0, typeorm_1.ManyToOne)(() => bot_command_log_entity_1.BotCommandLog),
93
+ (0, typeorm_1.JoinColumn)({ name: "command_log_id" }),
94
+ __metadata("design:type", bot_command_log_entity_1.BotCommandLog)
95
+ ], BotSearchRequest.prototype, "commandLog", void 0);
96
+ __decorate([
97
+ (0, typeorm_1.Column)({ type: "uuid", name: "user_id" }),
98
+ __metadata("design:type", String)
99
+ ], BotSearchRequest.prototype, "userId", void 0);
100
+ __decorate([
101
+ (0, typeorm_1.ManyToOne)(() => user_entity_1.User),
102
+ (0, typeorm_1.JoinColumn)({ name: "user_id" }),
103
+ __metadata("design:type", user_entity_1.User)
104
+ ], BotSearchRequest.prototype, "user", void 0);
105
+ __decorate([
106
+ (0, typeorm_1.Column)({ name: "tenant_id", length: 50, default: "sp3" }),
107
+ __metadata("design:type", String)
108
+ ], BotSearchRequest.prototype, "tenantId", void 0);
109
+ __decorate([
110
+ (0, typeorm_1.Column)({
111
+ type: "enum",
112
+ enum: LocationSearchType,
113
+ name: "search_type",
114
+ }),
115
+ __metadata("design:type", String)
116
+ ], BotSearchRequest.prototype, "locationSearchType", void 0);
117
+ __decorate([
118
+ (0, typeorm_1.Column)({ name: "search_query", length: 255 }),
119
+ __metadata("design:type", String)
120
+ ], BotSearchRequest.prototype, "searchQuery", void 0);
121
+ __decorate([
122
+ (0, typeorm_1.Column)({
123
+ type: "enum",
124
+ enum: LocationSearchStatus,
125
+ default: LocationSearchStatus.QUEUED,
126
+ }),
127
+ __metadata("design:type", String)
128
+ ], BotSearchRequest.prototype, "status", void 0);
129
+ __decorate([
130
+ (0, typeorm_1.Column)({ type: "simple-array", name: "data_sources", nullable: true }),
131
+ __metadata("design:type", Array)
132
+ ], BotSearchRequest.prototype, "dataSources", void 0);
133
+ __decorate([
134
+ (0, typeorm_1.Column)({ type: "jsonb", nullable: true }),
135
+ __metadata("design:type", Object)
136
+ ], BotSearchRequest.prototype, "results", void 0);
137
+ __decorate([
138
+ (0, typeorm_1.Column)({ type: "text", name: "results_summary", nullable: true }),
139
+ __metadata("design:type", String)
140
+ ], BotSearchRequest.prototype, "resultsSummary", void 0);
141
+ __decorate([
142
+ (0, typeorm_1.CreateDateColumn)({ name: "created_at" }),
143
+ __metadata("design:type", Date)
144
+ ], BotSearchRequest.prototype, "createdAt", void 0);
145
+ __decorate([
146
+ (0, typeorm_1.Column)({ type: "timestamp", name: "completed_at", nullable: true }),
147
+ __metadata("design:type", Date)
148
+ ], BotSearchRequest.prototype, "completedAt", void 0);
149
+ exports.BotSearchRequest = BotSearchRequest = __decorate([
150
+ (0, typeorm_1.Entity)({ name: "bot_search_requests" }),
151
+ (0, typeorm_1.Index)(["userId", "createdAt"]),
152
+ (0, typeorm_1.Index)(["tenantId", "searchType"]),
153
+ (0, typeorm_1.Index)(["status"]),
154
+ (0, typeorm_1.Index)(["commandLogId"])
155
+ ], BotSearchRequest);
156
+ //# sourceMappingURL=bot-search-request.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-search-request.entity.js","sourceRoot":"","sources":["../../../src/entities/bot/bot-search-request.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAQiB;AACjB,gDAAsC;AACtC,qEAAyD;AAEzD,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;IACnB,qCAAe,CAAA;IACf,uCAAiB,CAAA;AACnB,CAAC,EALW,kBAAkB,kCAAlB,kBAAkB,QAK7B;AAED,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC9B,yCAAiB,CAAA;IACjB,iDAAyB,CAAA;IACzB,+CAAuB,CAAA;IACvB,yCAAiB,CAAA;AACnB,CAAC,EALW,oBAAoB,oCAApB,oBAAoB,QAK/B;AAOM,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAqD3B,iBAAiB;IACjB,gBAAgB;QACd,IAAI,CAAC,MAAM,GAAG,oBAAoB,CAAC,UAAU,CAAC;IAChD,CAAC;IAED,eAAe,CACb,OAA4B,EAC5B,OAAe,EACf,WAAqB;QAErB,IAAI,CAAC,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,YAAY;QACV,IAAI,CAAC,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,KAAK,oBAAoB,CAAC,MAAM,CAAC;IACrD,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,MAAM,KAAK,oBAAoB,CAAC,UAAU,CAAC;IACzD,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,KAAK,oBAAoB,CAAC,SAAS,CAAC;IACxD,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,KAAK,oBAAoB,CAAC,MAAM,CAAC;IACrD,CAAC;IAED,iBAAiB;QACf,QAAQ,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChC,KAAK,kBAAkB,CAAC,MAAM,CAAC;YAC/B,KAAK,kBAAkB,CAAC,MAAM;gBAC5B,OAAO,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,KAAK,kBAAkB,CAAC,OAAO;gBAC7B,OAAO,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,KAAK,kBAAkB,CAAC,KAAK;gBAC3B,OAAO,aAAa,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC;gBACE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,UAAU;QACR,OAAO,CACL,IAAI,CAAC,WAAW,EAAE;YAClB,CAAC,CAAC,IAAI,CAAC,OAAO;YACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CACrC,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC/D,CAAC;CACF,CAAA;AArHY,4CAAgB;AAE3B;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;4CACnB;AAGZ;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;;sDAC3B;AAItB;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,sCAAa,CAAC;IAC9B,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;8BAC1B,sCAAa;oDAAC;AAG3B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;gDAC1B;AAIhB;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,CAAC;IACrB,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;8BACzB,kBAAI;8CAAC;AAGZ;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;kDACxC;AAOlB;IALC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,aAAa;KACpB,CAAC;;4DACsC;AAGxC;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;qDACzB;AAOrB;IALC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,oBAAoB,CAAC,MAAM;KACrC,CAAC;;gDAC4B;AAG9B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDAChD;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACZ;AAG9B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDAC1C;AAGxB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC7B,IAAI;mDAAC;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACtD,IAAI;qDAAC;2BAnDR,gBAAgB;IAL5B,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;IACvC,IAAA,eAAK,EAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC9B,IAAA,eAAK,EAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACjC,IAAA,eAAK,EAAC,CAAC,QAAQ,CAAC,CAAC;IACjB,IAAA,eAAK,EAAC,CAAC,cAAc,CAAC,CAAC;GACX,gBAAgB,CAqH5B"}
@@ -0,0 +1,33 @@
1
+ import { User } from '../user.entity';
2
+ export declare enum BotType {
3
+ NOTIFY = "notify",
4
+ COMMANDER = "commander"
5
+ }
6
+ export declare enum ConversationState {
7
+ IDLE = "idle",
8
+ AWAITING_SEARCH_QUERY = "awaiting_search_query",
9
+ AWAITING_VEHICLE_PLATE = "awaiting_vehicle_plate",
10
+ AWAITING_PHONE_NUMBER = "awaiting_phone_number",
11
+ AWAITING_LOCATION_CONFIRM = "awaiting_location_confirm",
12
+ PROCESSING = "processing"
13
+ }
14
+ export declare class BotSession {
15
+ id: string;
16
+ userId: string;
17
+ user: User;
18
+ chatId: number;
19
+ tenantId: string;
20
+ botType: BotType;
21
+ conversationState: ConversationState;
22
+ contextData?: Record<string, any>;
23
+ lastInteractionAt?: Date;
24
+ isActive: boolean;
25
+ createdAt: Date;
26
+ updatedAt: Date;
27
+ updateInteraction(): void;
28
+ setState(state: ConversationState, data?: Record<string, any>): void;
29
+ resetState(): void;
30
+ isIdle(): boolean;
31
+ isProcessing(): boolean;
32
+ }
33
+ //# sourceMappingURL=bot-session.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-session.entity.d.ts","sourceRoot":"","sources":["../../../src/entities/bot/bot-session.entity.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,oBAAY,OAAO;IACjB,MAAM,WAAW;IACjB,SAAS,cAAc;CACxB;AAED,oBAAY,iBAAiB;IAC3B,IAAI,SAAS;IACb,qBAAqB,0BAA0B;IAC/C,sBAAsB,2BAA2B;IACjD,qBAAqB,0BAA0B;IAC/C,yBAAyB,8BAA8B;IACvD,UAAU,eAAe;CAC1B;AAED,qBAIa,UAAU;IAErB,EAAE,EAAG,MAAM,CAAC;IAGZ,MAAM,EAAG,MAAM,CAAC;IAIhB,IAAI,EAAG,IAAI,CAAC;IAGZ,MAAM,EAAG,MAAM,CAAC;IAGhB,QAAQ,EAAG,MAAM,CAAC;IAQlB,OAAO,EAAG,OAAO,CAAC;IAQlB,iBAAiB,EAAG,iBAAiB,CAAC;IAGtC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAGlC,iBAAiB,CAAC,EAAE,IAAI,CAAC;IAGzB,QAAQ,EAAG,OAAO,CAAC;IAGnB,SAAS,EAAG,IAAI,CAAC;IAGjB,SAAS,EAAG,IAAI,CAAC;IAGjB,iBAAiB,IAAI,IAAI;IAIzB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAQpE,UAAU,IAAI,IAAI;IAMlB,MAAM,IAAI,OAAO;IAIjB,YAAY,IAAI,OAAO;CAGxB"}
@@ -0,0 +1,119 @@
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.BotSession = exports.ConversationState = exports.BotType = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const user_entity_1 = require("../user.entity");
15
+ var BotType;
16
+ (function (BotType) {
17
+ BotType["NOTIFY"] = "notify";
18
+ BotType["COMMANDER"] = "commander";
19
+ })(BotType || (exports.BotType = BotType = {}));
20
+ var ConversationState;
21
+ (function (ConversationState) {
22
+ ConversationState["IDLE"] = "idle";
23
+ ConversationState["AWAITING_SEARCH_QUERY"] = "awaiting_search_query";
24
+ ConversationState["AWAITING_VEHICLE_PLATE"] = "awaiting_vehicle_plate";
25
+ ConversationState["AWAITING_PHONE_NUMBER"] = "awaiting_phone_number";
26
+ ConversationState["AWAITING_LOCATION_CONFIRM"] = "awaiting_location_confirm";
27
+ ConversationState["PROCESSING"] = "processing";
28
+ })(ConversationState || (exports.ConversationState = ConversationState = {}));
29
+ let BotSession = class BotSession {
30
+ // Helper methods
31
+ updateInteraction() {
32
+ this.lastInteractionAt = new Date();
33
+ }
34
+ setState(state, data) {
35
+ this.conversationState = state;
36
+ if (data) {
37
+ this.contextData = { ...this.contextData, ...data };
38
+ }
39
+ this.updateInteraction();
40
+ }
41
+ resetState() {
42
+ this.conversationState = ConversationState.IDLE;
43
+ this.contextData = {};
44
+ this.updateInteraction();
45
+ }
46
+ isIdle() {
47
+ return this.conversationState === ConversationState.IDLE;
48
+ }
49
+ isProcessing() {
50
+ return this.conversationState === ConversationState.PROCESSING;
51
+ }
52
+ };
53
+ exports.BotSession = BotSession;
54
+ __decorate([
55
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
56
+ __metadata("design:type", String)
57
+ ], BotSession.prototype, "id", void 0);
58
+ __decorate([
59
+ (0, typeorm_1.Column)({ type: 'uuid', name: 'user_id' }),
60
+ __metadata("design:type", String)
61
+ ], BotSession.prototype, "userId", void 0);
62
+ __decorate([
63
+ (0, typeorm_1.ManyToOne)(() => user_entity_1.User),
64
+ (0, typeorm_1.JoinColumn)({ name: 'user_id' }),
65
+ __metadata("design:type", user_entity_1.User)
66
+ ], BotSession.prototype, "user", void 0);
67
+ __decorate([
68
+ (0, typeorm_1.Column)({ type: 'bigint', name: 'chat_id' }),
69
+ __metadata("design:type", Number)
70
+ ], BotSession.prototype, "chatId", void 0);
71
+ __decorate([
72
+ (0, typeorm_1.Column)({ name: 'tenant_id', length: 50, default: 'sp3' }),
73
+ __metadata("design:type", String)
74
+ ], BotSession.prototype, "tenantId", void 0);
75
+ __decorate([
76
+ (0, typeorm_1.Column)({
77
+ type: 'enum',
78
+ enum: BotType,
79
+ name: 'bot_type',
80
+ default: BotType.COMMANDER,
81
+ }),
82
+ __metadata("design:type", String)
83
+ ], BotSession.prototype, "botType", void 0);
84
+ __decorate([
85
+ (0, typeorm_1.Column)({
86
+ type: 'enum',
87
+ enum: ConversationState,
88
+ name: 'conversation_state',
89
+ default: ConversationState.IDLE,
90
+ }),
91
+ __metadata("design:type", String)
92
+ ], BotSession.prototype, "conversationState", void 0);
93
+ __decorate([
94
+ (0, typeorm_1.Column)({ type: 'jsonb', name: 'context_data', nullable: true, default: {} }),
95
+ __metadata("design:type", Object)
96
+ ], BotSession.prototype, "contextData", void 0);
97
+ __decorate([
98
+ (0, typeorm_1.Column)({ type: 'timestamp', name: 'last_interaction_at', nullable: true }),
99
+ __metadata("design:type", Date)
100
+ ], BotSession.prototype, "lastInteractionAt", void 0);
101
+ __decorate([
102
+ (0, typeorm_1.Column)({ type: 'boolean', name: 'is_active', default: true }),
103
+ __metadata("design:type", Boolean)
104
+ ], BotSession.prototype, "isActive", void 0);
105
+ __decorate([
106
+ (0, typeorm_1.CreateDateColumn)({ name: 'created_at' }),
107
+ __metadata("design:type", Date)
108
+ ], BotSession.prototype, "createdAt", void 0);
109
+ __decorate([
110
+ (0, typeorm_1.UpdateDateColumn)({ name: 'updated_at' }),
111
+ __metadata("design:type", Date)
112
+ ], BotSession.prototype, "updatedAt", void 0);
113
+ exports.BotSession = BotSession = __decorate([
114
+ (0, typeorm_1.Entity)({ name: 'bot_sessions' }),
115
+ (0, typeorm_1.Index)(['userId', 'botType']),
116
+ (0, typeorm_1.Index)(['chatId', 'botType'], { unique: true }),
117
+ (0, typeorm_1.Index)(['tenantId'])
118
+ ], BotSession);
119
+ //# sourceMappingURL=bot-session.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-session.entity.js","sourceRoot":"","sources":["../../../src/entities/bot/bot-session.entity.ts"],"names":[],"mappings":"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"}
@@ -62,4 +62,9 @@ export * from "./app-config.entity";
62
62
  export * from "./audit-log.entity";
63
63
  export * from "./seniat/contribuyente.entity";
64
64
  export * from "./seniat/seniat.entity";
65
+ export * from "./bot/bot-session.entity";
66
+ export * from "./bot/bot-command-log.entity";
67
+ export * from "./bot/bot-search-request.entity";
68
+ export * from "./bot/bot-location-request.entity";
69
+ export * from "./telegram";
65
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"}
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"}
@@ -100,4 +100,11 @@ __exportStar(require("./audit-log.entity"), exports);
100
100
  // Contribuyente (SENIAT)
101
101
  __exportStar(require("./seniat/contribuyente.entity"), exports);
102
102
  __exportStar(require("./seniat/seniat.entity"), exports);
103
+ // Bot module
104
+ __exportStar(require("./bot/bot-session.entity"), exports);
105
+ __exportStar(require("./bot/bot-command-log.entity"), exports);
106
+ __exportStar(require("./bot/bot-search-request.entity"), exports);
107
+ __exportStar(require("./bot/bot-location-request.entity"), exports);
108
+ // Telegram module
109
+ __exportStar(require("./telegram"), exports);
103
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"}
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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"}
@@ -15,6 +15,14 @@ export declare class User {
15
15
  resources?: string[];
16
16
  lastLogin?: Date;
17
17
  rolesUpdatedAt?: Date;
18
+ commanderBotEnabled?: boolean;
19
+ commanderBotPermissions?: {
20
+ canSearch?: boolean;
21
+ canSearchVehicle?: boolean;
22
+ canLocate?: boolean;
23
+ canSearchSubscriber?: boolean;
24
+ maxRequestsPerDay?: number;
25
+ };
18
26
  createdAt: Date;
19
27
  updatedAt: Date;
20
28
  hasRole(role: string): boolean;
@@ -23,5 +31,12 @@ export declare class User {
23
31
  isSupervisor(): boolean;
24
32
  isAdmin(): boolean;
25
33
  getRoleLevel(): number;
34
+ hasCommanderAccess(): boolean;
35
+ canUseCommanderBot(): boolean;
36
+ canSearchWithBot(): boolean;
37
+ canSearchVehicleWithBot(): boolean;
38
+ canLocateWithBot(): boolean;
39
+ canSearchSubscriberWithBot(): boolean;
40
+ getMaxBotRequestsPerDay(): number;
26
41
  }
27
42
  //# sourceMappingURL=user.entity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.entity.d.ts","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":"AASA,qBAGa,IAAI;IAEf,EAAE,EAAG,MAAM,CAAC;IAGZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,QAAQ,EAAG,MAAM,CAAC;IAGlB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IAEH,GAAG,CAAC,EAAE,MAAM,CAAC;IAGb,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAIlB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAGjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAGrB,SAAS,CAAC,EAAE,IAAI,CAAC;IAGjB,cAAc,CAAC,EAAE,IAAI,CAAC;IAGtB,SAAS,EAAG,IAAI,CAAC;IAGjB,SAAS,EAAG,IAAI,CAAC;IAGjB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9B,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO;IAIpC,SAAS,IAAI,OAAO;IAIpB,YAAY,IAAI,OAAO;IAIvB,OAAO,IAAI,OAAO;IAIlB,YAAY,IAAI,MAAM;CAMvB"}
1
+ {"version":3,"file":"user.entity.d.ts","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":"AASA,qBAGa,IAAI;IAEf,EAAE,EAAG,MAAM,CAAC;IAGZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,QAAQ,EAAG,MAAM,CAAC;IAGlB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IAEH,GAAG,CAAC,EAAE,MAAM,CAAC;IAGb,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAIlB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAGjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAGrB,SAAS,CAAC,EAAE,IAAI,CAAC;IAGjB,cAAc,CAAC,EAAE,IAAI,CAAC;IAItB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAG9B,uBAAuB,CAAC,EAAE;QACxB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IAGF,SAAS,EAAG,IAAI,CAAC;IAGjB,SAAS,EAAG,IAAI,CAAC;IAGjB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9B,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO;IAIpC,SAAS,IAAI,OAAO;IAIpB,YAAY,IAAI,OAAO;IAIvB,OAAO,IAAI,OAAO;IAIlB,YAAY,IAAI,MAAM;IAQtB,kBAAkB,IAAI,OAAO;IAI7B,kBAAkB,IAAI,OAAO;IAI7B,gBAAgB,IAAI,OAAO;IAI3B,uBAAuB,IAAI,OAAO;IAIlC,gBAAgB,IAAI,OAAO;IAI3B,0BAA0B,IAAI,OAAO;IAIrC,uBAAuB,IAAI,MAAM;CAGlC"}
@@ -36,6 +36,28 @@ let User = class User {
36
36
  return 2; // Nivel medio
37
37
  return 3; // Usuario estándar
38
38
  }
39
+ // Bot Commander methods
40
+ hasCommanderAccess() {
41
+ return this.commanderBotEnabled || false;
42
+ }
43
+ canUseCommanderBot() {
44
+ return this.hasCommanderAccess();
45
+ }
46
+ canSearchWithBot() {
47
+ return this.hasCommanderAccess() && (this.commanderBotPermissions?.canSearch ?? true);
48
+ }
49
+ canSearchVehicleWithBot() {
50
+ return this.hasCommanderAccess() && (this.commanderBotPermissions?.canSearchVehicle ?? true);
51
+ }
52
+ canLocateWithBot() {
53
+ return this.hasCommanderAccess() && (this.commanderBotPermissions?.canLocate ?? this.isSupervisor());
54
+ }
55
+ canSearchSubscriberWithBot() {
56
+ return this.hasCommanderAccess() && (this.commanderBotPermissions?.canSearchSubscriber ?? true);
57
+ }
58
+ getMaxBotRequestsPerDay() {
59
+ return this.commanderBotPermissions?.maxRequestsPerDay ?? (this.isSupervisor() ? 100 : 50);
60
+ }
39
61
  };
40
62
  exports.User = User;
41
63
  __decorate([
@@ -83,6 +105,14 @@ __decorate([
83
105
  (0, typeorm_1.Column)({ type: 'timestamp', nullable: true, name: 'roles_updated_at' }),
84
106
  __metadata("design:type", Date)
85
107
  ], User.prototype, "rolesUpdatedAt", void 0);
108
+ __decorate([
109
+ (0, typeorm_1.Column)({ type: 'boolean', name: 'commander_bot_enabled', default: false }),
110
+ __metadata("design:type", Boolean)
111
+ ], User.prototype, "commanderBotEnabled", void 0);
112
+ __decorate([
113
+ (0, typeorm_1.Column)({ type: 'jsonb', name: 'commander_bot_permissions', nullable: true, default: () => "'{}'" }),
114
+ __metadata("design:type", Object)
115
+ ], User.prototype, "commanderBotPermissions", void 0);
86
116
  __decorate([
87
117
  (0, typeorm_1.CreateDateColumn)({ name: 'created_at' }),
88
118
  __metadata("design:type", Date)
@@ -1 +1 @@
1
- {"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../src/entities/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.10",
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",