@talkpilot/core-db 1.3.28 → 1.3.30
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/README.md +23 -12
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -6
- package/dist/index.js.map +1 -1
- package/dist/municipal/departmentsSubjects/departmentsSubjects.getters.d.ts +1 -15
- package/dist/municipal/departmentsSubjects/departmentsSubjects.getters.d.ts.map +1 -1
- package/dist/municipal/departmentsSubjects/departmentsSubjects.getters.js +1 -24
- package/dist/municipal/departmentsSubjects/departmentsSubjects.getters.js.map +1 -1
- package/dist/municipal/departmentsSubjects/departmentsSubjects.types.d.ts +0 -1
- package/dist/municipal/departmentsSubjects/departmentsSubjects.types.d.ts.map +1 -1
- package/dist/municipal/streets/streets.getters.d.ts +1 -2
- package/dist/municipal/streets/streets.getters.d.ts.map +1 -1
- package/dist/municipal/streets/streets.getters.js +1 -6
- package/dist/municipal/streets/streets.getters.js.map +1 -1
- package/dist/municipal/streets/streets.types.d.ts +0 -1
- package/dist/municipal/streets/streets.types.d.ts.map +1 -1
- package/dist/talkpilot/clients/clients.quota.constants.d.ts +2 -0
- package/dist/talkpilot/clients/clients.quota.constants.d.ts.map +1 -0
- package/dist/talkpilot/clients/clients.quota.constants.js +5 -0
- package/dist/talkpilot/clients/clients.quota.constants.js.map +1 -0
- package/dist/talkpilot/clients/clients.quota.getters.d.ts +7 -0
- package/dist/talkpilot/clients/clients.quota.getters.d.ts.map +1 -0
- package/dist/talkpilot/clients/clients.quota.getters.js +80 -0
- package/dist/talkpilot/clients/clients.quota.getters.js.map +1 -0
- package/dist/talkpilot/clients/clients.quota.types.d.ts +22 -0
- package/dist/talkpilot/clients/clients.quota.types.d.ts.map +1 -0
- package/dist/{bulkWrite/bulkWrite.types.js → talkpilot/clients/clients.quota.types.js} +1 -1
- package/dist/talkpilot/clients/clients.quota.types.js.map +1 -0
- package/dist/talkpilot/clients/clients.quota.utils.d.ts +8 -0
- package/dist/talkpilot/clients/clients.quota.utils.d.ts.map +1 -0
- package/dist/talkpilot/clients/clients.quota.utils.js +45 -0
- package/dist/talkpilot/clients/clients.quota.utils.js.map +1 -0
- package/dist/talkpilot/clients/clients.types.d.ts +3 -0
- package/dist/talkpilot/clients/clients.types.d.ts.map +1 -1
- package/dist/talkpilot/clients/index.d.ts +2 -0
- package/dist/talkpilot/clients/index.d.ts.map +1 -1
- package/dist/talkpilot/clients/index.js +2 -0
- package/dist/talkpilot/clients/index.js.map +1 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.d.ts +5 -0
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.d.ts.map +1 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.js +37 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.js.map +1 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.types.d.ts +3 -0
- package/dist/talkpilot/clientsConfig/clientsConfig.types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +0 -7
- package/src/municipal/departmentsSubjects/departmentsSubjects.getters.ts +3 -38
- package/src/municipal/departmentsSubjects/departmentsSubjects.types.ts +0 -1
- package/src/municipal/streets/streets.getters.ts +1 -16
- package/src/municipal/streets/streets.types.ts +0 -1
- package/src/talkpilot/clients/__tests__/clients.quota.spec.ts +123 -0
- package/src/talkpilot/clients/clients.quota.getters.ts +119 -0
- package/src/talkpilot/clients/clients.quota.types.ts +25 -0
- package/src/talkpilot/clients/clients.types.ts +4 -0
- package/src/talkpilot/clients/index.ts +2 -0
- package/src/talkpilot/clientsConfig/__tests__/clientsConfig.spec.ts +21 -0
- package/src/talkpilot/clientsConfig/clientsConfig.getters.ts +54 -0
- package/src/talkpilot/clientsConfig/clientsConfig.types.ts +4 -0
- package/dist/bulkWrite/bulkWrite.ops.d.ts +0 -17
- package/dist/bulkWrite/bulkWrite.ops.d.ts.map +0 -1
- package/dist/bulkWrite/bulkWrite.ops.js +0 -35
- package/dist/bulkWrite/bulkWrite.ops.js.map +0 -1
- package/dist/bulkWrite/bulkWrite.types.d.ts +0 -4
- package/dist/bulkWrite/bulkWrite.types.d.ts.map +0 -1
- package/dist/bulkWrite/bulkWrite.types.js.map +0 -1
- package/dist/bulkWrite/index.d.ts +0 -3
- package/dist/bulkWrite/index.d.ts.map +0 -1
- package/dist/bulkWrite/index.js +0 -19
- package/dist/bulkWrite/index.js.map +0 -1
- package/dist/municipal/departmentsSubjects/departmentsSubjects.setters.d.ts +0 -10
- package/dist/municipal/departmentsSubjects/departmentsSubjects.setters.d.ts.map +0 -1
- package/dist/municipal/departmentsSubjects/departmentsSubjects.setters.js +0 -15
- package/dist/municipal/departmentsSubjects/departmentsSubjects.setters.js.map +0 -1
- package/dist/municipal/streets/streets.setters.d.ts +0 -10
- package/dist/municipal/streets/streets.setters.d.ts.map +0 -1
- package/dist/municipal/streets/streets.setters.js +0 -15
- package/dist/municipal/streets/streets.setters.js.map +0 -1
- package/dist/reconcile/index.d.ts +0 -5
- package/dist/reconcile/index.d.ts.map +0 -1
- package/dist/reconcile/index.js +0 -21
- package/dist/reconcile/index.js.map +0 -1
- package/dist/reconcile/reconcile.diff.d.ts +0 -4
- package/dist/reconcile/reconcile.diff.d.ts.map +0 -1
- package/dist/reconcile/reconcile.diff.js +0 -36
- package/dist/reconcile/reconcile.diff.js.map +0 -1
- package/dist/reconcile/reconcile.execute.d.ts +0 -7
- package/dist/reconcile/reconcile.execute.d.ts.map +0 -1
- package/dist/reconcile/reconcile.execute.js +0 -20
- package/dist/reconcile/reconcile.execute.js.map +0 -1
- package/dist/reconcile/reconcile.ops.d.ts +0 -12
- package/dist/reconcile/reconcile.ops.d.ts.map +0 -1
- package/dist/reconcile/reconcile.ops.js +0 -24
- package/dist/reconcile/reconcile.ops.js.map +0 -1
- package/dist/reconcile/reconcile.types.d.ts +0 -32
- package/dist/reconcile/reconcile.types.d.ts.map +0 -1
- package/dist/reconcile/reconcile.types.js +0 -3
- package/dist/reconcile/reconcile.types.js.map +0 -1
- package/src/bulkWrite/__tests__/bulkWrite.spec.ts +0 -65
- package/src/bulkWrite/bulkWrite.ops.ts +0 -45
- package/src/bulkWrite/bulkWrite.types.ts +0 -4
- package/src/bulkWrite/index.ts +0 -2
- package/src/municipal/departmentsSubjects/__tests__/departmentsSubjects.spec.ts +0 -272
- package/src/municipal/streets/__tests__/streets.spec.ts +0 -253
package/README.md
CHANGED
|
@@ -16,7 +16,6 @@ L1:# @talkpilot/core-db
|
|
|
16
16
|
- **Product-specific clients (future)** – While the package currently exposes the shared TalkPilot + municipal clients, we expect each product (CIS, MIS, TalkPilot Server) to eventually get its own domain-specific client helpers or wrappers so the shared core can remain stable while new consumers add targeted extensions.
|
|
17
17
|
- **Test helpers** – `src/test-utils/` plus `src/__tests__/` reuse `MongoMemoryServer` and shared factories so tests start with clean data regardless of the consuming repo.
|
|
18
18
|
- **Utility layers** – `src/utils/` contains shared validation, pagination, and environment helpers that complement the getters.
|
|
19
|
-
- **Bulk-write helpers** – `src/bulkWrite/` exposes small, domain-agnostic functions (`buildSetOp`, `buildUpsertOp`, `buildInsertOp`, `buildDeleteOp`) that construct correctly-shaped MongoDB bulk-write operations from a filter and field values — no collection- or domain-specific knowledge required.
|
|
20
19
|
- **Environment awareness** – Defaults, fallbacks, and `process.env` lookups ensure local, CI, and Cloud Run clients all connect using the right URI/DB names.
|
|
21
20
|
|
|
22
21
|
## Key Components
|
|
@@ -25,7 +24,6 @@ L1:# @talkpilot/core-db
|
|
|
25
24
|
- `src/talkpilot/` – Call history, agents, flows, sessions, leads, subscriptions, and support helpers exposed as getters plus helper enums/types for each collection.
|
|
26
25
|
- `src/municipal/` – Municipal-specific collections (`cities`, `streets`, `departmentsSubjects`, `tickets`, etc.) plus vector search helpers and Ash Bina helpers used by MIS.
|
|
27
26
|
- `src/utils/` – Shared helpers such as `resolveConnection`, pagination utilities, and schema validation helper functions.
|
|
28
|
-
- `src/bulkWrite/` – Generic bulk-write op constructors (`buildSetOp`, `buildUpsertOp`, `buildInsertOp`, `buildDeleteOp`) usable with any collection's document type.
|
|
29
27
|
- `src/test-utils/` and `src/__tests__/` – Utilities that bootstrap `MongoMemoryServer`, expose factories, and make sure Jest environments can stub database calls predictably.
|
|
30
28
|
- `dist/` – Compiled output consumed by downstream repos (CJS + ESM + type defs).
|
|
31
29
|
|
|
@@ -159,7 +157,8 @@ Refer to `DEVELOPMENT.md` for the full walkthrough, token instructions, and fact
|
|
|
159
157
|
| 1.3.23 | Merge of 1.3.21 and 1.3.22 — combines the `ToolExecutionStep`/`steps`/`pushToolExecution` work (CP-1093) with the `CallsFilterParams.status: CallStatus` fix. Adds `CallStatusValues` (const object) with `CallStatus` and `ALL_CALL_STATUSES` derived from it. `CallStatus` still does not include `"redirected"` — tracked separately. |
|
|
160
158
|
| 1.3.24 | **Breaking:** removed `flowId` from `WebsiteTalkProduct` — flow source of truth is `phone_numbers.flow_id`. Added `getPrimaryPhoneFlowId(clientId)`. |
|
|
161
159
|
| 1.3.25 | Added `disconnectDb()` to close all MongoDB clients opened by `ensureDbConnected()` — for one-shot scripts that must exit cleanly. |
|
|
162
|
-
| 1.3.
|
|
160
|
+
| 1.3.30 | Added optional `ClientConfig.displayName` and `getClientDisplayName(clientId)` getter (falls back to `clientId`). |
|
|
161
|
+
| 1.3.29 | Added client call-quota module (CP-1500): `ClientConfig.quota` for usage limits (`totalQuota`, `usedQuota`, `expiresAt`), alert settings on `clients`, and getters for state, increment/reset, threshold alerts, and expiry notification tracking. |
|
|
163
162
|
### 1.1.9
|
|
164
163
|
|
|
165
164
|
1. `npm run build`.
|
|
@@ -525,24 +524,36 @@ Combines the CP-1093 tool-execution-steps work (1.3.21) with the `CallsFilterPar
|
|
|
525
524
|
|
|
526
525
|
`CallStatus` still does not include `"redirected"` — tracked separately.
|
|
527
526
|
|
|
528
|
-
### 1.3.
|
|
527
|
+
### 1.3.29 — Client call quota (CP-1500)
|
|
529
528
|
|
|
530
|
-
|
|
529
|
+
Per-client call quota with usage counters, optional expiration, and configurable threshold/expiry email alerts. Usage lives on `clientsConfig`; alert config and send-tracking live on `clients`. TalkPilot Server consumes these getters to block calls when quota is exceeded or expired and to send notification emails.
|
|
530
|
+
|
|
531
|
+
**Data model**
|
|
532
|
+
|
|
533
|
+
| Location | Field | Purpose |
|
|
534
|
+
| --- | --- | --- |
|
|
535
|
+
| `clientsConfig.quota` | `totalQuota`, `usedQuota`, `expiresAt?` | Call allowance and consumption. `getClientQuotaState` returns `null` when `totalQuota` is unset (quota disabled for that client). |
|
|
536
|
+
| `clients.quota` | `alerts?`, `expiredSent?` | Up to 3 threshold alerts (each with up to 3 recipient emails) and a flag set after the expiry email is sent. |
|
|
531
537
|
|
|
532
538
|
**Added**
|
|
533
539
|
|
|
534
540
|
| Export | Purpose |
|
|
535
541
|
| --- | --- |
|
|
536
|
-
| `
|
|
537
|
-
| `
|
|
538
|
-
| `
|
|
539
|
-
| `
|
|
540
|
-
| `
|
|
541
|
-
| `
|
|
542
|
+
| `ClientQuotaUsage` | Usage shape: `totalQuota`, `usedQuota`, optional `expiresAt`. |
|
|
543
|
+
| `ClientQuotaSettings` | Alert settings on the `clients` doc: `alerts`, `expiredSent`. |
|
|
544
|
+
| `ClientQuotaState` | Merged view returned by `getClientQuotaState` (usage + settings). |
|
|
545
|
+
| `QuotaThresholdAlert` / `QuotaAlertInput` | Threshold alert with `thresholdPct`, `recipientEmails`, and optional `thresholdSent` send-tracking. |
|
|
546
|
+
| `getClientQuotaState(clientId)` | Read combined quota state; `null` when no quota is configured. |
|
|
547
|
+
| `incrementClientQuotaUsage(clientId, amount?)` | Atomically increment `clientsConfig.quota.usedQuota` (default `amount = 1`). No-op when `quota.totalQuota` is absent. |
|
|
548
|
+
| `resetClientQuotaUsage(clientId)` | Reset `usedQuota` to `0` and clear alert/expiry send flags via `resetClientQuotaSettings`. |
|
|
549
|
+
| `updateQuotaAlertsConfig(clientId, alerts)` | Replace threshold alert config; preserves `thresholdSent` for unchanged thresholds. |
|
|
550
|
+
| `markQuotaAlertSent(clientId, alertIndex)` | Idempotently mark a threshold alert as sent; returns whether the update applied. |
|
|
551
|
+
| `markQuotaExpiredSent(clientId)` | Idempotently mark the expiry notification as sent; returns whether the update applied. |
|
|
552
|
+
| `resetClientQuotaSettings(clientId)` | Clear `expiredSent` and strip `thresholdSent` from alerts (keeps alert definitions). |
|
|
542
553
|
|
|
543
554
|
**Do I need to update my app?**
|
|
544
555
|
|
|
545
|
-
No — purely additive.
|
|
556
|
+
No — purely additive. **TalkPilot Server** should upgrade to **1.3.29** (or later) to enforce quota on inbound/outbound calls and to drive threshold/expiry emails via the new getters.
|
|
546
557
|
|
|
547
558
|
## 🛠 CI/CD & deployment
|
|
548
559
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export * from "./talkpilot";
|
|
2
2
|
export * from "./connection";
|
|
3
|
-
export * from "./bulkWrite";
|
|
4
3
|
export { municipalDataMongodbClient, getDb as getMunicipalDataDb, setDb as setMunicipalDataDb, ObjectId as MunicipalDataObjectId, } from "./municipal";
|
|
5
4
|
export * from "./municipal/cities";
|
|
6
5
|
export * from "./municipal/streets";
|
|
@@ -13,9 +12,4 @@ export { websitalkMongodbClient, getDb as getWebsitalkDb, setDb as setWebsitalkD
|
|
|
13
12
|
export * from "./websitalk/scans/scans.getters";
|
|
14
13
|
export type * from "./websitalk/scans/scans.types";
|
|
15
14
|
export * from "./websitalk/websiteUrls";
|
|
16
|
-
export { ObjectId } from "mongodb";
|
|
17
|
-
export type { Filter } from "mongodb";
|
|
18
|
-
export type { AnyBulkWriteOperation as BulkWriteOp } from "mongodb";
|
|
19
|
-
export { MongoBulkWriteError as BulkWriteError } from "mongodb";
|
|
20
|
-
export type { OptionalUnlessRequiredId } from "mongodb";
|
|
21
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,OAAO,EACL,0BAA0B,EAC1B,KAAK,IAAI,kBAAkB,EAC3B,KAAK,IAAI,kBAAkB,EAC3B,QAAQ,IAAI,qBAAqB,GAClC,MAAM,aAAa,CAAC;AACrB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AAExC,OAAO,EACL,sBAAsB,EACtB,KAAK,IAAI,cAAc,EACvB,KAAK,IAAI,cAAc,EACvB,QAAQ,IAAI,iBAAiB,GAC9B,MAAM,aAAa,CAAC;AACrB,cAAc,iCAAiC,CAAC;AAChD,mBAAmB,+BAA+B,CAAC;AACnD,cAAc,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,11 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
17
|
+
exports.WebsitalkObjectId = exports.setWebsitalkDb = exports.getWebsitalkDb = exports.websitalkMongodbClient = exports.MunicipalDataObjectId = exports.setMunicipalDataDb = exports.getMunicipalDataDb = exports.municipalDataMongodbClient = void 0;
|
|
18
18
|
// TalkPilot DB exports
|
|
19
19
|
__exportStar(require("./talkpilot"), exports);
|
|
20
20
|
__exportStar(require("./connection"), exports);
|
|
21
|
-
__exportStar(require("./bulkWrite"), exports);
|
|
22
21
|
var municipal_1 = require("./municipal");
|
|
23
22
|
Object.defineProperty(exports, "municipalDataMongodbClient", { enumerable: true, get: function () { return municipal_1.municipalDataMongodbClient; } });
|
|
24
23
|
Object.defineProperty(exports, "getMunicipalDataDb", { enumerable: true, get: function () { return municipal_1.getDb; } });
|
|
@@ -38,8 +37,4 @@ Object.defineProperty(exports, "setWebsitalkDb", { enumerable: true, get: functi
|
|
|
38
37
|
Object.defineProperty(exports, "WebsitalkObjectId", { enumerable: true, get: function () { return websitalk_1.ObjectId; } });
|
|
39
38
|
__exportStar(require("./websitalk/scans/scans.getters"), exports);
|
|
40
39
|
__exportStar(require("./websitalk/websiteUrls"), exports);
|
|
41
|
-
var mongodb_1 = require("mongodb");
|
|
42
|
-
Object.defineProperty(exports, "ObjectId", { enumerable: true, get: function () { return mongodb_1.ObjectId; } });
|
|
43
|
-
var mongodb_2 = require("mongodb");
|
|
44
|
-
Object.defineProperty(exports, "BulkWriteError", { enumerable: true, get: function () { return mongodb_2.MongoBulkWriteError; } });
|
|
45
40
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uBAAuB;AACvB,8CAA4B;AAC5B,+CAA6B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uBAAuB;AACvB,8CAA4B;AAC5B,+CAA6B;AAE7B,yCAKqB;AAJnB,uHAAA,0BAA0B,OAAA;AAC1B,+GAAA,KAAK,OAAsB;AAC3B,+GAAA,KAAK,OAAsB;AAC3B,kHAAA,QAAQ,OAAyB;AAEnC,qDAAmC;AACnC,sDAAoC;AACpC,kEAAgD;AAChD,sDAAoC;AACpC,iEAA+C;AAC/C,yDAAuC;AACvC,0DAAwC;AAExC,yCAKqB;AAJnB,mHAAA,sBAAsB,OAAA;AACtB,2GAAA,KAAK,OAAkB;AACvB,2GAAA,KAAK,OAAkB;AACvB,8GAAA,QAAQ,OAAqB;AAE/B,kEAAgD;AAEhD,0DAAwC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { CityName, DepartmentSubject } from "../index";
|
|
2
|
-
import {
|
|
2
|
+
import { Collection, Filter } from "mongodb";
|
|
3
3
|
import { VectorSearchResult } from "./departmentsSubjects.types";
|
|
4
4
|
export declare const getDepartmentsSubjectsCollection: () => Collection<DepartmentSubject>;
|
|
5
|
-
export declare const bulkWriteDepartmentsSubjects: (operations: AnyBulkWriteOperation<DepartmentSubject>[], options?: BulkWriteOptions) => Promise<BulkWriteResult>;
|
|
6
5
|
/**
|
|
7
6
|
* Get all departments subjects for a given city.
|
|
8
7
|
* No DB sort; tree build does not depend on order. Callers that need alphabetical order
|
|
@@ -60,17 +59,4 @@ export declare const updateDepartmentSubjectGuidelines: (filter: Filter<Departme
|
|
|
60
59
|
*/
|
|
61
60
|
export declare const deleteDepartmentSubjectGuidelines: (filter: Filter<DepartmentSubject>) => Promise<DepartmentSubject | null>;
|
|
62
61
|
export declare const findSubjectByQuery: (query: Partial<DepartmentSubject>) => Promise<import("mongodb").WithId<DepartmentSubject> | null>;
|
|
63
|
-
/**
|
|
64
|
-
* Get department subjects matching a filter
|
|
65
|
-
* @param filter - Mongo filter
|
|
66
|
-
* @returns Array of matching documents
|
|
67
|
-
*/
|
|
68
|
-
export declare const findDepartmentSubjectsByFilter: (filter: Filter<DepartmentSubject>) => Promise<DepartmentSubject[]>;
|
|
69
|
-
/**
|
|
70
|
-
* Update the isActive flag for a subject
|
|
71
|
-
* @param id - _id of the document to update
|
|
72
|
-
* @param isActive - Active status to set
|
|
73
|
-
* @returns Updated DepartmentSubject document, null if not found
|
|
74
|
-
*/
|
|
75
|
-
export declare const updateDepartmentSubjectActive: (id: ObjectId, isActive: boolean) => Promise<DepartmentSubject | null>;
|
|
76
62
|
//# sourceMappingURL=departmentsSubjects.getters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"departmentsSubjects.getters.d.ts","sourceRoot":"","sources":["../../../src/municipal/departmentsSubjects/departmentsSubjects.getters.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"departmentsSubjects.getters.d.ts","sourceRoot":"","sources":["../../../src/municipal/departmentsSubjects/departmentsSubjects.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAS,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,eAAO,MAAM,gCAAgC,QACvC,UAAU,CAAC,iBAAiB,CAE/B,CAAC;AAEJ;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,GAC1C,UAAU,QAAQ,EAClB,iBAAgB,OAAe,KAC9B,OAAO,CAAC,iBAAiB,EAAE,CAW7B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,GAC1C,aAAa,MAAM,EAAE,EACrB,UAAU,QAAQ,EAClB,QAAO,MAAU,EACjB,gBAAe,MAAY,KAC1B,OAAO,CAAC,kBAAkB,EAAE,CA8B9B,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAC1C,QAAQ,MAAM,CAAC,iBAAiB,CAAC,EACjC,iBAAiB,MAAM,KACtB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAgBlC,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC7C,QAAQ,MAAM,CAAC,iBAAiB,CAAC,EACjC,eAAe,MAAM,EACrB,oBAAoB,MAAM,KACzB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAalC,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC7C,QAAQ,MAAM,CAAC,iBAAiB,CAAC,EACjC,eAAe,MAAM,KACpB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAWlC,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAC5C,QAAQ,MAAM,CAAC,iBAAiB,CAAC,EACjC,eAAe;IACb,IAAI,EAAE,eAAe,GAAG,gBAAgB,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,KACA,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAwBlC,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAC/C,QAAQ,MAAM,CAAC,iBAAiB,CAAC,EACjC,iBAAiB,MAAM,EACvB,SAAS;IACP,IAAI,CAAC,EAAE,eAAe,GAAG,gBAAgB,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7B,KACA,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAmBlC,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAC/C,QAAQ,MAAM,CAAC,iBAAiB,CAAC,EACjC,iBAAiB,MAAM,KACtB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAWlC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC,GAC3C,WAAW,MAAM,EACjB,cAAc,MAAM,EACpB,UAAU,QAAQ,KACjB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAelC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,GAC5C,QAAQ,MAAM,CAAC,iBAAiB,CAAC,EACjC,YAAY,MAAM,KACjB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAQlC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,GAC5C,QAAQ,MAAM,CAAC,iBAAiB,CAAC,KAChC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAQlC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,OAAO,OAAO,CAAC,iBAAiB,CAAC,gEAEzE,CAAC"}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.findSubjectByQuery = exports.deleteDepartmentSubjectGuidelines = exports.updateDepartmentSubjectGuidelines = exports.getDepartmentSubjectBySubjectIds = exports.removeDepartmentSubjectCommunication = exports.updateDepartmentSubjectCommunication = exports.addDepartmentSubjectCommunication = exports.removeDepartmentSubjectInstruction = exports.updateDepartmentSubjectInstruction = exports.addDepartmentSubjectInstruction = exports.vectorSearchDepartmentsSubjects = exports.getAllDepartmentsSubjectsByCity = exports.getDepartmentsSubjectsCollection = void 0;
|
|
4
4
|
const index_1 = require("../index");
|
|
5
5
|
const getDepartmentsSubjectsCollection = () => {
|
|
6
6
|
return (0, index_1.getDb)().collection("departmentsSubjects");
|
|
7
7
|
};
|
|
8
8
|
exports.getDepartmentsSubjectsCollection = getDepartmentsSubjectsCollection;
|
|
9
|
-
const bulkWriteDepartmentsSubjects = async (operations, options) => {
|
|
10
|
-
return (0, exports.getDepartmentsSubjectsCollection)().bulkWrite(operations, options);
|
|
11
|
-
};
|
|
12
|
-
exports.bulkWriteDepartmentsSubjects = bulkWriteDepartmentsSubjects;
|
|
13
9
|
/**
|
|
14
10
|
* Get all departments subjects for a given city.
|
|
15
11
|
* No DB sort; tree build does not depend on order. Callers that need alphabetical order
|
|
@@ -189,23 +185,4 @@ const findSubjectByQuery = async (query) => {
|
|
|
189
185
|
return await (0, exports.getDepartmentsSubjectsCollection)().findOne(query);
|
|
190
186
|
};
|
|
191
187
|
exports.findSubjectByQuery = findSubjectByQuery;
|
|
192
|
-
/**
|
|
193
|
-
* Get department subjects matching a filter
|
|
194
|
-
* @param filter - Mongo filter
|
|
195
|
-
* @returns Array of matching documents
|
|
196
|
-
*/
|
|
197
|
-
const findDepartmentSubjectsByFilter = async (filter) => {
|
|
198
|
-
return (0, exports.getDepartmentsSubjectsCollection)().find(filter).toArray();
|
|
199
|
-
};
|
|
200
|
-
exports.findDepartmentSubjectsByFilter = findDepartmentSubjectsByFilter;
|
|
201
|
-
/**
|
|
202
|
-
* Update the isActive flag for a subject
|
|
203
|
-
* @param id - _id of the document to update
|
|
204
|
-
* @param isActive - Active status to set
|
|
205
|
-
* @returns Updated DepartmentSubject document, null if not found
|
|
206
|
-
*/
|
|
207
|
-
const updateDepartmentSubjectActive = async (id, isActive) => {
|
|
208
|
-
return await (0, exports.getDepartmentsSubjectsCollection)().findOneAndUpdate({ _id: id }, { $set: { isActive, updatedAt: new Date() } }, { returnDocument: "after" });
|
|
209
|
-
};
|
|
210
|
-
exports.updateDepartmentSubjectActive = updateDepartmentSubjectActive;
|
|
211
188
|
//# sourceMappingURL=departmentsSubjects.getters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"departmentsSubjects.getters.js","sourceRoot":"","sources":["../../../src/municipal/departmentsSubjects/departmentsSubjects.getters.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"departmentsSubjects.getters.js","sourceRoot":"","sources":["../../../src/municipal/departmentsSubjects/departmentsSubjects.getters.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"departmentsSubjects.types.d.ts","sourceRoot":"","sources":["../../../src/municipal/departmentsSubjects/departmentsSubjects.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"departmentsSubjects.types.d.ts","sourceRoot":"","sources":["../../../src/municipal/departmentsSubjects/departmentsSubjects.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,iBAAiB,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { CityName, Street } from "../index";
|
|
2
2
|
import type { StreetHint } from "./streets.types";
|
|
3
|
-
import {
|
|
3
|
+
import { Collection, Filter, ObjectId as MongoObjectId } from "mongodb";
|
|
4
4
|
export declare const getStreetsCollection: () => Collection<Street>;
|
|
5
|
-
export declare const bulkWriteStreets: (operations: AnyBulkWriteOperation<Street>[], options?: BulkWriteOptions) => Promise<BulkWriteResult>;
|
|
6
5
|
export declare const findStreets: (filter?: Filter<Street>) => Promise<Street[]>;
|
|
7
6
|
export declare const getStreetById: (streetId: string) => Promise<Street | null>;
|
|
8
7
|
export declare const getStreetsByCityName: (cityName: CityName) => Promise<Street[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streets.getters.d.ts","sourceRoot":"","sources":["../../../src/municipal/streets/streets.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"streets.getters.d.ts","sourceRoot":"","sources":["../../../src/municipal/streets/streets.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAExE,eAAO,MAAM,oBAAoB,QAAO,UAAU,CAAC,MAAM,CAExD,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,SAAQ,MAAM,CAAC,MAAM,CAAM,KAC1B,OAAO,CAAC,MAAM,EAAE,CAElB,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,UAAU,MAAM,KACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAKvB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,UAAU,QAAQ,KACjB,OAAO,CAAC,MAAM,EAAE,CAKlB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,KACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAGvB,CAAC;AAEF,mIAAmI;AACnI,eAAO,MAAM,0BAA0B,GACrC,UAAU,MAAM,EAChB,UAAU,QAAQ,KACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAMvB,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,YAAY,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW,CAAC,KAC1D,OAAO,CAAC,aAAa,CAUvB,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,UAAU,MAAM,EAChB,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC,KAC7D,OAAO,CAAC,MAAM,GAAG,IAAI,CAOvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,EACd,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,KACnD,OAAO,CAAC,MAAM,GAAG,IAAI,CAiBvB,CAAC;AAEF,gHAAgH;AAChH,eAAO,MAAM,gBAAgB,GAC3B,UAAU,MAAM,EAChB,QAAQ,MAAM,KACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAUvB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CAKpE,CAAC"}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deleteStreet = exports.deleteStreetHint = exports.upsertStreetHintOnStreet = exports.updateStreet = exports.createStreet = exports.getStreetByStreetIdAndCity = exports.getStreetByStreetId = exports.getStreetsByCityName = exports.getStreetById = exports.findStreets = exports.
|
|
3
|
+
exports.deleteStreet = exports.deleteStreetHint = exports.upsertStreetHintOnStreet = exports.updateStreet = exports.createStreet = exports.getStreetByStreetIdAndCity = exports.getStreetByStreetId = exports.getStreetsByCityName = exports.getStreetById = exports.findStreets = exports.getStreetsCollection = void 0;
|
|
4
4
|
const index_1 = require("../index");
|
|
5
5
|
const getStreetsCollection = () => {
|
|
6
6
|
return (0, index_1.getDb)().collection("streets");
|
|
7
7
|
};
|
|
8
8
|
exports.getStreetsCollection = getStreetsCollection;
|
|
9
|
-
const bulkWriteStreets = async (operations, options) => {
|
|
10
|
-
return (0, exports.getStreetsCollection)().bulkWrite(operations, options);
|
|
11
|
-
};
|
|
12
|
-
exports.bulkWriteStreets = bulkWriteStreets;
|
|
13
9
|
const findStreets = async (filter = {}) => {
|
|
14
10
|
return await (0, exports.getStreetsCollection)().find(filter).toArray();
|
|
15
11
|
};
|
|
@@ -45,7 +41,6 @@ exports.getStreetByStreetIdAndCity = getStreetByStreetIdAndCity;
|
|
|
45
41
|
const createStreet = async (streetData) => {
|
|
46
42
|
const street = {
|
|
47
43
|
...streetData,
|
|
48
|
-
isActive: streetData.isActive ?? true,
|
|
49
44
|
createdAt: new Date(),
|
|
50
45
|
updatedAt: new Date(),
|
|
51
46
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streets.getters.js","sourceRoot":"","sources":["../../../src/municipal/streets/streets.getters.ts"],"names":[],"mappings":";;;AAAA,oCAA6D;
|
|
1
|
+
{"version":3,"file":"streets.getters.js","sourceRoot":"","sources":["../../../src/municipal/streets/streets.getters.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streets.types.d.ts","sourceRoot":"","sources":["../../../src/municipal/streets/streets.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"streets.types.d.ts","sourceRoot":"","sources":["../../../src/municipal/streets/streets.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clients.quota.constants.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/clients/clients.quota.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clients.quota.constants.js","sourceRoot":"","sources":["../../../src/talkpilot/clients/clients.quota.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,GAAG,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ClientQuotaState, QuotaAlertInput } from "./clients.quota.types";
|
|
2
|
+
export declare function getClientQuotaState(clientId: string): Promise<ClientQuotaState | null>;
|
|
3
|
+
export declare function updateQuotaAlertsConfig(clientId: string, alerts: QuotaAlertInput[]): Promise<void>;
|
|
4
|
+
export declare function markQuotaAlertSent(clientId: string, alertIndex: number): Promise<boolean>;
|
|
5
|
+
export declare function markQuotaExpiredSent(clientId: string): Promise<boolean>;
|
|
6
|
+
export declare function resetClientQuotaSettings(clientId: string): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=clients.quota.getters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clients.quota.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/clients/clients.quota.getters.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAE/B,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAkBlC;AAYD,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAYlB;AAED,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAY7E;AAED,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB9E"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getClientQuotaState = getClientQuotaState;
|
|
4
|
+
exports.updateQuotaAlertsConfig = updateQuotaAlertsConfig;
|
|
5
|
+
exports.markQuotaAlertSent = markQuotaAlertSent;
|
|
6
|
+
exports.markQuotaExpiredSent = markQuotaExpiredSent;
|
|
7
|
+
exports.resetClientQuotaSettings = resetClientQuotaSettings;
|
|
8
|
+
const clientsConfig_getters_1 = require("../clientsConfig/clientsConfig.getters");
|
|
9
|
+
const clients_getters_1 = require("./clients.getters");
|
|
10
|
+
async function getClientQuotaState(clientId) {
|
|
11
|
+
const [config, client] = await Promise.all([
|
|
12
|
+
(0, clientsConfig_getters_1.getClientConfig)(clientId),
|
|
13
|
+
(0, clients_getters_1.getClientsCollection)().findOne({ clientId }),
|
|
14
|
+
]);
|
|
15
|
+
const usage = config?.quota;
|
|
16
|
+
if (usage?.totalQuota === undefined || usage?.totalQuota === null)
|
|
17
|
+
return null;
|
|
18
|
+
const settings = client?.quota;
|
|
19
|
+
return {
|
|
20
|
+
totalQuota: usage.totalQuota,
|
|
21
|
+
usedQuota: usage.usedQuota ?? 0,
|
|
22
|
+
expiresAt: usage.expiresAt,
|
|
23
|
+
alerts: settings?.alerts,
|
|
24
|
+
expiredSent: settings?.expiredSent,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const ensureClientDoc = async (clientId) => {
|
|
28
|
+
const now = new Date();
|
|
29
|
+
await (0, clients_getters_1.getClientsCollection)().updateOne({ clientId }, { $setOnInsert: { clientId, createdAt: now, updatedAt: now, credits: 0 } }, { upsert: true });
|
|
30
|
+
await (0, clients_getters_1.getClientsCollection)().updateOne({ clientId }, { $set: { updatedAt: now } });
|
|
31
|
+
};
|
|
32
|
+
async function updateQuotaAlertsConfig(clientId, alerts) {
|
|
33
|
+
const config = await (0, clientsConfig_getters_1.getClientConfig)(clientId);
|
|
34
|
+
if (!config) {
|
|
35
|
+
throw new Error(`No client config found for clientId: ${clientId}`);
|
|
36
|
+
}
|
|
37
|
+
await ensureClientDoc(clientId);
|
|
38
|
+
const state = await getClientQuotaState(clientId);
|
|
39
|
+
const existing = state?.alerts ?? [];
|
|
40
|
+
const sentByThreshold = new Map(existing.filter((a) => a.thresholdSent).map((a) => [a.thresholdPct, true]));
|
|
41
|
+
const merged = alerts.map((alert) => ({
|
|
42
|
+
thresholdPct: alert.thresholdPct,
|
|
43
|
+
recipientEmails: alert.recipientEmails,
|
|
44
|
+
...(sentByThreshold.get(alert.thresholdPct) ? { thresholdSent: true } : {}),
|
|
45
|
+
}));
|
|
46
|
+
const result = await (0, clients_getters_1.getClientsCollection)().updateOne({ clientId }, { $set: { "quota.alerts": merged, updatedAt: new Date() } });
|
|
47
|
+
if (result.matchedCount === 0) {
|
|
48
|
+
throw new Error(`No client found for clientId: ${clientId}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async function markQuotaAlertSent(clientId, alertIndex) {
|
|
52
|
+
await ensureClientDoc(clientId);
|
|
53
|
+
const result = await (0, clients_getters_1.getClientsCollection)().findOneAndUpdate({
|
|
54
|
+
clientId,
|
|
55
|
+
[`quota.alerts.${alertIndex}.thresholdSent`]: { $ne: true },
|
|
56
|
+
}, { $set: { [`quota.alerts.${alertIndex}.thresholdSent`]: true, updatedAt: new Date() } }, { returnDocument: "after" });
|
|
57
|
+
return result !== null;
|
|
58
|
+
}
|
|
59
|
+
async function markQuotaExpiredSent(clientId) {
|
|
60
|
+
await ensureClientDoc(clientId);
|
|
61
|
+
const result = await (0, clients_getters_1.getClientsCollection)().findOneAndUpdate({
|
|
62
|
+
clientId,
|
|
63
|
+
"quota.expiredSent": { $ne: true },
|
|
64
|
+
}, { $set: { "quota.expiredSent": true, updatedAt: new Date() } }, { returnDocument: "after" });
|
|
65
|
+
return result !== null;
|
|
66
|
+
}
|
|
67
|
+
async function resetClientQuotaSettings(clientId) {
|
|
68
|
+
const client = await (0, clients_getters_1.getClientsCollection)().findOne({ clientId });
|
|
69
|
+
const alerts = client?.quota?.alerts?.map(({ thresholdSent: _s, ...alert }) => alert) ?? [];
|
|
70
|
+
if (client) {
|
|
71
|
+
await (0, clients_getters_1.getClientsCollection)().updateOne({ clientId }, {
|
|
72
|
+
$set: {
|
|
73
|
+
...(alerts.length ? { "quota.alerts": alerts } : {}),
|
|
74
|
+
updatedAt: new Date(),
|
|
75
|
+
},
|
|
76
|
+
$unset: { "quota.expiredSent": "" },
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=clients.quota.getters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clients.quota.getters.js","sourceRoot":"","sources":["../../../src/talkpilot/clients/clients.quota.getters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type QuotaThresholdAlert = {
|
|
2
|
+
thresholdPct: number;
|
|
3
|
+
recipientEmails: string[];
|
|
4
|
+
thresholdSent?: boolean;
|
|
5
|
+
};
|
|
6
|
+
export type ClientQuotaSettings = {
|
|
7
|
+
/** Up to 3 threshold alerts, each with up to 3 recipient emails. */
|
|
8
|
+
alerts?: QuotaThresholdAlert[];
|
|
9
|
+
/** Set after expired-quota email is sent successfully. */
|
|
10
|
+
expiredSent?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export type QuotaAlertInput = {
|
|
13
|
+
thresholdPct: number;
|
|
14
|
+
recipientEmails: string[];
|
|
15
|
+
};
|
|
16
|
+
export type ClientQuotaUsage = {
|
|
17
|
+
totalQuota: number;
|
|
18
|
+
usedQuota: number;
|
|
19
|
+
expiresAt?: Date;
|
|
20
|
+
};
|
|
21
|
+
export type ClientQuotaState = ClientQuotaUsage & ClientQuotaSettings;
|
|
22
|
+
//# sourceMappingURL=clients.quota.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clients.quota.types.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/clients/clients.quota.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,oEAAoE;IACpE,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,0DAA0D;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clients.quota.types.js","sourceRoot":"","sources":["../../../src/talkpilot/clients/clients.quota.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ClientQuotaNotifications, ClientQuotaState, ClientQuotaStatus, QuotaThresholdAlert } from "./clients.quota.types";
|
|
2
|
+
export declare const computeClientQuotaStatus: (quota: ClientQuotaState | null) => ClientQuotaStatus;
|
|
3
|
+
export declare const getQuotaAlerts: (quota?: ClientQuotaState) => QuotaThresholdAlert[];
|
|
4
|
+
export declare const findFullQuotaAlertIndex: (alerts: QuotaThresholdAlert[]) => number;
|
|
5
|
+
export declare const getFullQuotaAlert: (quota?: ClientQuotaState) => QuotaThresholdAlert | undefined;
|
|
6
|
+
export declare const isFullQuotaAlert: (thresholdPct: number) => boolean;
|
|
7
|
+
export declare const toClientQuotaNotifications: (quota: ClientQuotaState | null) => ClientQuotaNotifications;
|
|
8
|
+
//# sourceMappingURL=clients.quota.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clients.quota.utils.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/clients/clients.quota.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAQ/B,eAAO,MAAM,wBAAwB,GACnC,OAAO,gBAAgB,GAAG,IAAI,KAC7B,iBAiBF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,QAAQ,gBAAgB,KAAG,mBAAmB,EAClC,CAAC;AAE5C,eAAO,MAAM,uBAAuB,GAAI,QAAQ,mBAAmB,EAAE,KAAG,MACP,CAAC;AAElE,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,gBAAgB,KACvB,mBAAmB,GAAG,SAIxB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,cAAc,MAAM,KAAG,OAClB,CAAC;AAEvC,eAAO,MAAM,0BAA0B,GACrC,OAAO,gBAAgB,GAAG,IAAI,KAC7B,wBASD,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toClientQuotaNotifications = exports.isFullQuotaAlert = exports.getFullQuotaAlert = exports.findFullQuotaAlertIndex = exports.getQuotaAlerts = exports.computeClientQuotaStatus = void 0;
|
|
4
|
+
const clients_quota_constants_1 = require("./clients.quota.constants");
|
|
5
|
+
const computeUsagePct = (usedQuota, totalQuota) => totalQuota > 0 ? Math.round((usedQuota / totalQuota) * 100) : 0;
|
|
6
|
+
const isPastExpiration = (expiresAt) => expiresAt ? Date.now() > new Date(expiresAt).getTime() : false;
|
|
7
|
+
const computeClientQuotaStatus = (quota) => {
|
|
8
|
+
if (!quota) {
|
|
9
|
+
return { hasQuota: false };
|
|
10
|
+
}
|
|
11
|
+
const totalQuota = quota.totalQuota;
|
|
12
|
+
const usedQuota = quota.usedQuota ?? 0;
|
|
13
|
+
return {
|
|
14
|
+
hasQuota: true,
|
|
15
|
+
totalQuota,
|
|
16
|
+
usedQuota,
|
|
17
|
+
pct: computeUsagePct(usedQuota, totalQuota),
|
|
18
|
+
expiresAt: quota.expiresAt ? new Date(quota.expiresAt).toISOString() : null,
|
|
19
|
+
isExceeded: usedQuota >= totalQuota,
|
|
20
|
+
isExpired: isPastExpiration(quota.expiresAt),
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
exports.computeClientQuotaStatus = computeClientQuotaStatus;
|
|
24
|
+
const getQuotaAlerts = (quota) => quota?.alerts?.length ? quota.alerts : [];
|
|
25
|
+
exports.getQuotaAlerts = getQuotaAlerts;
|
|
26
|
+
const findFullQuotaAlertIndex = (alerts) => alerts.findIndex((a) => a.thresholdPct >= clients_quota_constants_1.FULL_QUOTA_THRESHOLD);
|
|
27
|
+
exports.findFullQuotaAlertIndex = findFullQuotaAlertIndex;
|
|
28
|
+
const getFullQuotaAlert = (quota) => {
|
|
29
|
+
const alerts = (0, exports.getQuotaAlerts)(quota);
|
|
30
|
+
const index = (0, exports.findFullQuotaAlertIndex)(alerts);
|
|
31
|
+
return index >= 0 ? alerts[index] : undefined;
|
|
32
|
+
};
|
|
33
|
+
exports.getFullQuotaAlert = getFullQuotaAlert;
|
|
34
|
+
const isFullQuotaAlert = (thresholdPct) => thresholdPct >= clients_quota_constants_1.FULL_QUOTA_THRESHOLD;
|
|
35
|
+
exports.isFullQuotaAlert = isFullQuotaAlert;
|
|
36
|
+
const toClientQuotaNotifications = (quota) => ({
|
|
37
|
+
alerts: (0, exports.getQuotaAlerts)(quota ?? undefined).map(({ thresholdPct, recipientEmails, thresholdSent }) => ({
|
|
38
|
+
thresholdPct,
|
|
39
|
+
recipientEmails: recipientEmails ?? [],
|
|
40
|
+
...(thresholdSent ? { thresholdSent: true } : {}),
|
|
41
|
+
})),
|
|
42
|
+
...(quota?.expiredSent ? { expiredSent: true } : {}),
|
|
43
|
+
});
|
|
44
|
+
exports.toClientQuotaNotifications = toClientQuotaNotifications;
|
|
45
|
+
//# sourceMappingURL=clients.quota.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clients.quota.utils.js","sourceRoot":"","sources":["../../../src/talkpilot/clients/clients.quota.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { ObjectId } from "mongodb";
|
|
2
|
+
import { ClientQuotaSettings } from "./clients.quota.types";
|
|
3
|
+
export type { QuotaThresholdAlert, ClientQuotaSettings, QuotaAlertInput, ClientQuotaUsage, ClientQuotaState } from "./clients.quota.types";
|
|
2
4
|
export type Client = {
|
|
3
5
|
_id?: ObjectId;
|
|
4
6
|
createdAt: Date;
|
|
@@ -8,6 +10,7 @@ export type Client = {
|
|
|
8
10
|
apiKey?: string | null;
|
|
9
11
|
credits: number;
|
|
10
12
|
managedBy?: string;
|
|
13
|
+
quota?: ClientQuotaSettings;
|
|
11
14
|
};
|
|
12
15
|
export type ClientDoc = Client & {
|
|
13
16
|
_id: ObjectId;
|