@talkpilot/core-db 1.3.74 → 1.3.75

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 (274) hide show
  1. package/.cursor/rules/development.mdc +65 -65
  2. package/AGENTS.md +49 -49
  3. package/DEVELOPMENT.md +141 -141
  4. package/README.md +818 -844
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/municipal/index.d.ts +1 -0
  10. package/dist/municipal/index.d.ts.map +1 -1
  11. package/dist/municipal/index.js +1 -0
  12. package/dist/municipal/index.js.map +1 -1
  13. package/dist/municipal/residents/index.d.ts +5 -0
  14. package/dist/municipal/residents/index.d.ts.map +1 -0
  15. package/dist/municipal/residents/index.js +24 -0
  16. package/dist/municipal/residents/index.js.map +1 -0
  17. package/dist/municipal/residents/residents.constants.d.ts +3 -0
  18. package/dist/municipal/residents/residents.constants.d.ts.map +1 -0
  19. package/dist/municipal/residents/residents.constants.js +6 -0
  20. package/dist/municipal/residents/residents.constants.js.map +1 -0
  21. package/dist/municipal/residents/residents.getters.d.ts +9 -0
  22. package/dist/municipal/residents/residents.getters.d.ts.map +1 -0
  23. package/dist/municipal/residents/residents.getters.js +32 -0
  24. package/dist/municipal/residents/residents.getters.js.map +1 -0
  25. package/dist/municipal/residents/residents.schema.d.ts +4 -0
  26. package/dist/municipal/residents/residents.schema.d.ts.map +1 -0
  27. package/dist/municipal/residents/residents.schema.js +29 -0
  28. package/dist/municipal/residents/residents.schema.js.map +1 -0
  29. package/dist/municipal/residents/residents.types.d.ts +15 -0
  30. package/dist/municipal/residents/residents.types.d.ts.map +1 -0
  31. package/dist/municipal/residents/residents.types.js +3 -0
  32. package/dist/municipal/residents/residents.types.js.map +1 -0
  33. package/dist/talkpilot/calls/calls.constants.d.ts +0 -7
  34. package/dist/talkpilot/calls/calls.constants.d.ts.map +1 -1
  35. package/dist/talkpilot/calls/calls.constants.js +1 -8
  36. package/dist/talkpilot/calls/calls.constants.js.map +1 -1
  37. package/dist/talkpilot/calls/calls.getters.d.ts +1 -2
  38. package/dist/talkpilot/calls/calls.getters.d.ts.map +1 -1
  39. package/dist/talkpilot/calls/calls.getters.js +1 -6
  40. package/dist/talkpilot/calls/calls.getters.js.map +1 -1
  41. package/dist/talkpilot/calls/calls.types.d.ts +2 -4
  42. package/dist/talkpilot/calls/calls.types.d.ts.map +1 -1
  43. package/dist/talkpilot/flows/flows.schema.d.ts +28 -0
  44. package/dist/talkpilot/flows/flows.schema.d.ts.map +1 -1
  45. package/dist/talkpilot/flows/flows.schema.js +16 -0
  46. package/dist/talkpilot/flows/flows.schema.js.map +1 -1
  47. package/dist/talkpilot/flows/flows.types.d.ts +8 -0
  48. package/dist/talkpilot/flows/flows.types.d.ts.map +1 -1
  49. package/dist/talkpilot/subscriptions/subscriptions.utils.d.ts +4 -0
  50. package/dist/talkpilot/subscriptions/subscriptions.utils.d.ts.map +1 -0
  51. package/dist/talkpilot/subscriptions/subscriptions.utils.js +20 -0
  52. package/dist/talkpilot/subscriptions/subscriptions.utils.js.map +1 -0
  53. package/dist/test-utils/factories/index.d.ts +1 -0
  54. package/dist/test-utils/factories/index.d.ts.map +1 -1
  55. package/dist/test-utils/factories/index.js +1 -0
  56. package/dist/test-utils/factories/index.js.map +1 -1
  57. package/dist/test-utils/factories/municipal/residents.d.ts +5 -0
  58. package/dist/test-utils/factories/municipal/residents.d.ts.map +1 -0
  59. package/dist/test-utils/factories/municipal/residents.js +22 -0
  60. package/dist/test-utils/factories/municipal/residents.js.map +1 -0
  61. package/jest.config.js +20 -20
  62. package/package.json +46 -46
  63. package/src/__tests__/setup.ts +20 -20
  64. package/src/bulkWrite/__tests__/bulkWrite.spec.ts +65 -65
  65. package/src/bulkWrite/bulkWrite.ops.ts +45 -45
  66. package/src/bulkWrite/bulkWrite.types.ts +4 -4
  67. package/src/bulkWrite/index.ts +2 -2
  68. package/src/config.ts +9 -9
  69. package/src/configuration/index.ts +17 -17
  70. package/src/configuration/internalModels/index.ts +3 -3
  71. package/src/configuration/internalModels/internalModels.constants.ts +1 -1
  72. package/src/configuration/internalModels/internalModels.getters.ts +33 -33
  73. package/src/configuration/internalModels/internalModels.types.ts +12 -12
  74. package/src/configuration/models/__tests__/models.getters.spec.ts +67 -67
  75. package/src/configuration/models/index.ts +27 -27
  76. package/src/configuration/models/models.constants.ts +20 -20
  77. package/src/configuration/models/models.getters.ts +71 -71
  78. package/src/configuration/models/models.types.ts +80 -80
  79. package/src/configuration/mongodb-client.ts +62 -62
  80. package/src/configuration/prompts/index.ts +2 -2
  81. package/src/configuration/prompts/prompts.getters.ts +49 -49
  82. package/src/configuration/prompts/prompts.types.ts +11 -11
  83. package/src/connection.ts +81 -81
  84. package/src/index.ts +48 -47
  85. package/src/municipal/__tests__/validation.spec.ts +62 -62
  86. package/src/municipal/cities/cities.getters.ts +50 -50
  87. package/src/municipal/cities/cities.types.ts +11 -11
  88. package/src/municipal/cities/index.ts +2 -2
  89. package/src/municipal/departmentsSubjects/__tests__/departmentsSubjects.spec.ts +272 -272
  90. package/src/municipal/departmentsSubjects/departmentsSubjects.getters.ts +317 -317
  91. package/src/municipal/departmentsSubjects/departmentsSubjects.types.ts +73 -73
  92. package/src/municipal/departmentsSubjects/index.ts +9 -9
  93. package/src/municipal/index.ts +23 -22
  94. package/src/municipal/mongodb-client.ts +61 -61
  95. package/src/municipal/muniIssues/__tests__/muniIssues.setters.spec.ts +94 -94
  96. package/src/municipal/muniIssues/__tests__/muniIssues.setup.spec.ts +92 -92
  97. package/src/municipal/muniIssues/index.ts +17 -17
  98. package/src/municipal/muniIssues/muniIssues.constants.ts +18 -18
  99. package/src/municipal/muniIssues/muniIssues.getters.ts +24 -24
  100. package/src/municipal/muniIssues/muniIssues.schema.ts +66 -66
  101. package/src/municipal/muniIssues/muniIssues.setters.ts +24 -24
  102. package/src/municipal/muniIssues/muniIssues.setup.ts +65 -65
  103. package/src/municipal/muniIssues/muniIssues.types.ts +37 -37
  104. package/src/municipal/residents/__tests__/residents.spec.ts +92 -0
  105. package/src/municipal/residents/index.ts +4 -0
  106. package/src/municipal/residents/residents.constants.ts +2 -0
  107. package/src/municipal/residents/residents.getters.ts +42 -0
  108. package/src/municipal/residents/residents.schema.ts +28 -0
  109. package/src/municipal/residents/residents.types.ts +17 -0
  110. package/src/municipal/streets/__tests__/streets.spec.ts +253 -253
  111. package/src/municipal/streets/index.ts +2 -2
  112. package/src/municipal/streets/streets.getters.ts +140 -140
  113. package/src/municipal/streets/streets.types.ts +19 -19
  114. package/src/municipal/systemInstructions/__tests__/getters.spec.ts +113 -113
  115. package/src/municipal/systemInstructions/__tests__/setters.spec.ts +274 -274
  116. package/src/municipal/systemInstructions/index.ts +7 -7
  117. package/src/municipal/systemInstructions/instructions.getters.ts +57 -57
  118. package/src/municipal/systemInstructions/instructions.setters.ts +119 -119
  119. package/src/municipal/systemInstructions/instructions.types.ts +30 -30
  120. package/src/municipal/tickets/__tests__/tickets.getters.spec.ts +30 -30
  121. package/src/municipal/tickets/__tests__/tickets.statistics.spec.ts +99 -99
  122. package/src/municipal/tickets/index.ts +9 -9
  123. package/src/municipal/tickets/tickets.constants.ts +8 -8
  124. package/src/municipal/tickets/tickets.getters.ts +121 -121
  125. package/src/municipal/tickets/tickets.statistics.aggregation.ts +110 -110
  126. package/src/municipal/tickets/tickets.statistics.getters.ts +145 -145
  127. package/src/municipal/tickets/tickets.types.ts +54 -54
  128. package/src/municipal/utils/types.ts +11 -11
  129. package/src/talkpilot/__tests__/db.spec.ts +38 -38
  130. package/src/talkpilot/__tests__/mongodb-client.spec.ts +18 -18
  131. package/src/talkpilot/__tests__/validation.spec.ts +68 -68
  132. package/src/talkpilot/agents/__tests__/agents.getters.spec.ts +29 -29
  133. package/src/talkpilot/agents/agents.getters.ts +34 -34
  134. package/src/talkpilot/agents/agents.types.ts +14 -14
  135. package/src/talkpilot/agents/index.ts +2 -2
  136. package/src/talkpilot/backgroundToolResults/__tests__/backgroundToolResults.getters.spec.ts +147 -147
  137. package/src/talkpilot/backgroundToolResults/backgroundToolResults.getters.ts +65 -65
  138. package/src/talkpilot/backgroundToolResults/backgroundToolResults.types.ts +23 -23
  139. package/src/talkpilot/backgroundToolResults/index.ts +2 -2
  140. package/src/talkpilot/callTokenUsage/__tests__/callTokenUsage.getters.spec.ts +57 -57
  141. package/src/talkpilot/callTokenUsage/callTokenUsage.getters.ts +42 -42
  142. package/src/talkpilot/callTokenUsage/callTokenUsage.types.ts +28 -28
  143. package/src/talkpilot/callTokenUsage/index.ts +2 -2
  144. package/src/talkpilot/calls/__tests__/callStats.utils.spec.ts +128 -128
  145. package/src/talkpilot/calls/__tests__/calls.dashboard.spec.ts +229 -229
  146. package/src/talkpilot/calls/__tests__/calls.spec.ts +471 -519
  147. package/src/talkpilot/calls/__tests__/calls.statistics.spec.ts +483 -483
  148. package/src/talkpilot/calls/calls.constants.ts +49 -57
  149. package/src/talkpilot/calls/calls.getters.ts +277 -295
  150. package/src/talkpilot/calls/calls.statistics.getters.ts +668 -668
  151. package/src/talkpilot/calls/calls.statistics.types.ts +48 -48
  152. package/src/talkpilot/calls/calls.types.ts +151 -155
  153. package/src/talkpilot/calls/dashboard/calls.dashboard.ts +295 -295
  154. package/src/talkpilot/calls/dashboard/calls.dashboard.types.ts +57 -57
  155. package/src/talkpilot/calls/index.ts +6 -6
  156. package/src/talkpilot/clientAudioBuffers/__tests__/clientAudioBuffer.getters.spec.ts +160 -160
  157. package/src/talkpilot/clientAudioBuffers/clientAudioBuffer.getters.ts +117 -117
  158. package/src/talkpilot/clientAudioBuffers/clientsAudioBuffers.types.ts +25 -25
  159. package/src/talkpilot/clientAudioBuffers/index.ts +2 -2
  160. package/src/talkpilot/clients/__tests__/clients.quota.spec.ts +123 -123
  161. package/src/talkpilot/clients/clients.getters.ts +19 -19
  162. package/src/talkpilot/clients/clients.quota.getters.ts +119 -119
  163. package/src/talkpilot/clients/clients.quota.types.ts +27 -27
  164. package/src/talkpilot/clients/clients.types.ts +18 -18
  165. package/src/talkpilot/clients/index.ts +4 -4
  166. package/src/talkpilot/clientsConfig/__tests__/clientsConfig.getters.spec.ts +423 -423
  167. package/src/talkpilot/clientsConfig/__tests__/clientsConfig.spec.ts +212 -212
  168. package/src/talkpilot/clientsConfig/clientsConfig.constants.ts +2 -2
  169. package/src/talkpilot/clientsConfig/clientsConfig.getters.ts +247 -247
  170. package/src/talkpilot/clientsConfig/clientsConfig.types.ts +137 -137
  171. package/src/talkpilot/clientsConfig/index.ts +3 -3
  172. package/src/talkpilot/contextNotes/__tests__/contextNotes.getters.spec.ts +217 -217
  173. package/src/talkpilot/contextNotes/contextNotes.getters.ts +85 -85
  174. package/src/talkpilot/contextNotes/contextNotes.types.ts +20 -20
  175. package/src/talkpilot/contextNotes/index.ts +2 -2
  176. package/src/talkpilot/flows/__tests__/flows.schema.spec.ts +152 -124
  177. package/src/talkpilot/flows/flows.getter.ts +34 -34
  178. package/src/talkpilot/flows/flows.schema.ts +196 -180
  179. package/src/talkpilot/flows/flows.types.ts +220 -211
  180. package/src/talkpilot/flows/index.ts +7 -7
  181. package/src/talkpilot/groups/__tests__/groups.spec.ts +90 -90
  182. package/src/talkpilot/groups/__tests__/phone.utils.spec.ts +32 -32
  183. package/src/talkpilot/groups/groups.getters.ts +30 -30
  184. package/src/talkpilot/groups/groups.types.ts +29 -29
  185. package/src/talkpilot/groups/index.ts +3 -3
  186. package/src/talkpilot/groups/phone.utils.ts +46 -46
  187. package/src/talkpilot/index.ts +32 -32
  188. package/src/talkpilot/leads/index.ts +2 -2
  189. package/src/talkpilot/leads/leads.getter.ts +6 -6
  190. package/src/talkpilot/leads/leads.schema.ts +33 -33
  191. package/src/talkpilot/leads/leads.types.ts +20 -20
  192. package/src/talkpilot/mongodb-client.ts +78 -78
  193. package/src/talkpilot/phone_numbers/__tests__/phone_numbers.spec.ts +530 -530
  194. package/src/talkpilot/phone_numbers/index.ts +2 -2
  195. package/src/talkpilot/phone_numbers/phone_numbers.getter.ts +240 -240
  196. package/src/talkpilot/phone_numbers/phone_numbers.schema.ts +17 -17
  197. package/src/talkpilot/phone_numbers/phone_numbers.types.ts +30 -30
  198. package/src/talkpilot/phone_numbers/phone_numbers.utils.ts +9 -9
  199. package/src/talkpilot/plans/__tests__/plans.spec.ts +70 -70
  200. package/src/talkpilot/plans/index.ts +2 -2
  201. package/src/talkpilot/plans/plans.getters.ts +132 -132
  202. package/src/talkpilot/plans/plans.types.ts +89 -89
  203. package/src/talkpilot/products/__tests__/products.getters.spec.ts +44 -44
  204. package/src/talkpilot/products/index.ts +2 -2
  205. package/src/talkpilot/products/products.getters.ts +12 -12
  206. package/src/talkpilot/products/products.types.ts +9 -9
  207. package/src/talkpilot/results/index.ts +7 -7
  208. package/src/talkpilot/results/results.getter.ts +39 -39
  209. package/src/talkpilot/results/results.schema.ts +25 -25
  210. package/src/talkpilot/results/results.types.ts +34 -34
  211. package/src/talkpilot/retry_analyze/__tests__/retryAnalyze.getters.spec.ts +156 -156
  212. package/src/talkpilot/retry_analyze/index.ts +2 -2
  213. package/src/talkpilot/retry_analyze/retryAnalyze.getters.ts +84 -84
  214. package/src/talkpilot/retry_analyze/retryAnalyze.types.ts +13 -13
  215. package/src/talkpilot/sessions/__tests__/sessions.spec.ts +147 -147
  216. package/src/talkpilot/sessions/index.ts +2 -2
  217. package/src/talkpilot/sessions/sessions.getter.ts +92 -92
  218. package/src/talkpilot/sessions/sessions.schema.ts +34 -34
  219. package/src/talkpilot/sessions/sessions.types.ts +30 -30
  220. package/src/talkpilot/subscriptions/__tests__/subscriptions.getters.utils.spec.ts +45 -45
  221. package/src/talkpilot/subscriptions/index.ts +3 -3
  222. package/src/talkpilot/subscriptions/subscriptions.getters.ts +146 -146
  223. package/src/talkpilot/subscriptions/subscriptions.getters.utils.ts +33 -33
  224. package/src/talkpilot/subscriptions/subscriptions.types.ts +66 -66
  225. package/src/talkpilot/utils/__tests__/query.utils.spec.ts +49 -49
  226. package/src/talkpilot/utils/query.utils.ts +21 -21
  227. package/src/test-utils/db-utils.ts +33 -33
  228. package/src/test-utils/factories/index.ts +19 -18
  229. package/src/test-utils/factories/municipal/cities.ts +16 -16
  230. package/src/test-utils/factories/municipal/departmentsSubjects.ts +37 -37
  231. package/src/test-utils/factories/municipal/muniIssues.ts +32 -32
  232. package/src/test-utils/factories/municipal/residents.ts +20 -0
  233. package/src/test-utils/factories/municipal/streets.ts +22 -22
  234. package/src/test-utils/factories/municipal/tickets.ts +39 -39
  235. package/src/test-utils/factories/talkpilot/agents.ts +19 -19
  236. package/src/test-utils/factories/talkpilot/calls.ts +37 -37
  237. package/src/test-utils/factories/talkpilot/clientAudioBuffers.ts +20 -20
  238. package/src/test-utils/factories/talkpilot/clientsConfig.ts +18 -18
  239. package/src/test-utils/factories/talkpilot/contextNotes.ts +40 -40
  240. package/src/test-utils/factories/talkpilot/flows.ts +33 -33
  241. package/src/test-utils/factories/talkpilot/groups.ts +33 -33
  242. package/src/test-utils/factories/talkpilot/phone_numbers.ts +22 -22
  243. package/src/test-utils/factories/talkpilot/sessions.ts +35 -35
  244. package/src/test-utils/factories/websitalk/knowledgeDocuments.ts +29 -29
  245. package/src/test-utils/factories/websitalk/scanResources.ts +26 -26
  246. package/src/test-utils/factories/websitalk/scans.ts +30 -30
  247. package/src/test-utils/factories/websitalk/websiteUrls.ts +17 -17
  248. package/src/utils/date.utils.ts +126 -126
  249. package/src/utils/shared.types.ts +4 -4
  250. package/src/utils/validation.ts +23 -23
  251. package/src/websitalk/index.ts +18 -18
  252. package/src/websitalk/knowledgeDocuments/__tests__/knowledgeDocuments.spec.ts +238 -238
  253. package/src/websitalk/knowledgeDocuments/index.ts +3 -3
  254. package/src/websitalk/knowledgeDocuments/knowledgeDocuments.constants.ts +26 -26
  255. package/src/websitalk/knowledgeDocuments/knowledgeDocuments.getters.ts +95 -95
  256. package/src/websitalk/knowledgeDocuments/knowledgeDocuments.types.ts +75 -75
  257. package/src/websitalk/mongodb-client.ts +61 -61
  258. package/src/websitalk/scanResources/__tests__/scanResources.spec.ts +267 -267
  259. package/src/websitalk/scanResources/index.ts +4 -4
  260. package/src/websitalk/scanResources/scanResources.constants.ts +60 -60
  261. package/src/websitalk/scanResources/scanResources.getters.ts +128 -128
  262. package/src/websitalk/scanResources/scanResources.types.ts +105 -105
  263. package/src/websitalk/scanResources/scanResources.utils.ts +31 -31
  264. package/src/websitalk/scans/__tests__/scans.spec.ts +362 -362
  265. package/src/websitalk/scans/index.ts +4 -4
  266. package/src/websitalk/scans/scans.constants.ts +18 -18
  267. package/src/websitalk/scans/scans.getters.ts +172 -172
  268. package/src/websitalk/scans/scans.types.ts +58 -58
  269. package/src/websitalk/scans/scans.utils.ts +5 -5
  270. package/src/websitalk/websiteUrls/__tests__/websiteUrls.spec.ts +77 -77
  271. package/src/websitalk/websiteUrls/index.ts +2 -2
  272. package/src/websitalk/websiteUrls/websiteUrls.getters.ts +65 -65
  273. package/src/websitalk/websiteUrls/websiteUrls.types.ts +13 -13
  274. package/tsconfig.json +23 -23
@@ -1,40 +1,40 @@
1
- import { Factory } from "fishery";
2
- import { ObjectId } from "mongodb";
3
- import { faker } from "@faker-js/faker";
4
- import type { ContextNote, ContextNoteEntry } from "../../../talkpilot";
5
-
6
- export const contextNoteEntryFactory = Factory.define<ContextNoteEntry>(() => ({
7
- _id: new ObjectId(),
8
- title: faker.lorem.words(3),
9
- content: faker.lorem.sentences(2),
10
- activeFrom: new Date(),
11
- expiresAt: null,
12
- createdAt: new Date(),
13
- updatedAt: new Date(),
14
- }));
15
-
16
- export const contextNoteFactory = Factory.define<
17
- ContextNote & { _id: ObjectId }
18
- >(() => ({
19
- _id: new ObjectId(),
20
- clientId: faker.string.uuid(),
21
- product: "Municipal",
22
- notes: [],
23
- }));
24
-
25
- export function createContextNoteEntry(
26
- overrides?: Partial<ContextNoteEntry>,
27
- ): ContextNoteEntry {
28
- return {
29
- ...contextNoteEntryFactory.build(),
30
- ...overrides,
31
- } as ContextNoteEntry;
32
- }
33
-
34
- export function createContextNote(
35
- overrides?: Partial<ContextNote>,
36
- ): ContextNote & { _id: ObjectId } {
37
- return { ...contextNoteFactory.build(), ...overrides } as ContextNote & {
38
- _id: ObjectId;
39
- };
40
- }
1
+ import { Factory } from "fishery";
2
+ import { ObjectId } from "mongodb";
3
+ import { faker } from "@faker-js/faker";
4
+ import type { ContextNote, ContextNoteEntry } from "../../../talkpilot";
5
+
6
+ export const contextNoteEntryFactory = Factory.define<ContextNoteEntry>(() => ({
7
+ _id: new ObjectId(),
8
+ title: faker.lorem.words(3),
9
+ content: faker.lorem.sentences(2),
10
+ activeFrom: new Date(),
11
+ expiresAt: null,
12
+ createdAt: new Date(),
13
+ updatedAt: new Date(),
14
+ }));
15
+
16
+ export const contextNoteFactory = Factory.define<
17
+ ContextNote & { _id: ObjectId }
18
+ >(() => ({
19
+ _id: new ObjectId(),
20
+ clientId: faker.string.uuid(),
21
+ product: "Municipal",
22
+ notes: [],
23
+ }));
24
+
25
+ export function createContextNoteEntry(
26
+ overrides?: Partial<ContextNoteEntry>,
27
+ ): ContextNoteEntry {
28
+ return {
29
+ ...contextNoteEntryFactory.build(),
30
+ ...overrides,
31
+ } as ContextNoteEntry;
32
+ }
33
+
34
+ export function createContextNote(
35
+ overrides?: Partial<ContextNote>,
36
+ ): ContextNote & { _id: ObjectId } {
37
+ return { ...contextNoteFactory.build(), ...overrides } as ContextNote & {
38
+ _id: ObjectId;
39
+ };
40
+ }
@@ -1,33 +1,33 @@
1
- import { Factory } from "fishery";
2
- import { ObjectId } from "mongodb";
3
- import { faker } from "@faker-js/faker";
4
- import type { Flow } from "../../../talkpilot";
5
-
6
- export const flowFactory = Factory.define<Flow & { _id: ObjectId }>(() => {
7
- const now = new Date();
8
- return {
9
- _id: new ObjectId(),
10
- flowName: faker.lorem.words(2),
11
- clientId: faker.string.uuid(),
12
- systemInstructions: faker.lorem.sentences(2),
13
- initialSentence: faker.lorem.sentence(),
14
- insights: [],
15
- interactions: [],
16
- createdAt: now,
17
- updatedAt: now,
18
- };
19
- });
20
-
21
- export function createFlow(
22
- overrides?: Partial<Flow>,
23
- ): Flow & { _id: ObjectId } {
24
- const now = new Date();
25
- const base = flowFactory.build();
26
- return {
27
- ...base,
28
- ...overrides,
29
- _id: (overrides?._id as ObjectId) ?? base._id,
30
- updatedAt: now,
31
- createdAt: overrides?.createdAt ?? now,
32
- };
33
- }
1
+ import { Factory } from "fishery";
2
+ import { ObjectId } from "mongodb";
3
+ import { faker } from "@faker-js/faker";
4
+ import type { Flow } from "../../../talkpilot";
5
+
6
+ export const flowFactory = Factory.define<Flow & { _id: ObjectId }>(() => {
7
+ const now = new Date();
8
+ return {
9
+ _id: new ObjectId(),
10
+ flowName: faker.lorem.words(2),
11
+ clientId: faker.string.uuid(),
12
+ systemInstructions: faker.lorem.sentences(2),
13
+ initialSentence: faker.lorem.sentence(),
14
+ insights: [],
15
+ interactions: [],
16
+ createdAt: now,
17
+ updatedAt: now,
18
+ };
19
+ });
20
+
21
+ export function createFlow(
22
+ overrides?: Partial<Flow>,
23
+ ): Flow & { _id: ObjectId } {
24
+ const now = new Date();
25
+ const base = flowFactory.build();
26
+ return {
27
+ ...base,
28
+ ...overrides,
29
+ _id: (overrides?._id as ObjectId) ?? base._id,
30
+ updatedAt: now,
31
+ createdAt: overrides?.createdAt ?? now,
32
+ };
33
+ }
@@ -1,33 +1,33 @@
1
- import { Factory } from "fishery";
2
- import { ObjectId } from "mongodb";
3
- import { faker } from "@faker-js/faker";
4
- import type { Group, GroupContact, GroupDoc } from "../../../talkpilot";
5
-
6
- export const groupContactFactory = Factory.define<GroupContact>(() => ({
7
- name: faker.person.firstName(),
8
- phone: {
9
- national: "500000000",
10
- національний: "500000000",
11
- nacionales: "500000000",
12
- национальные: "500000000",
13
- e164: "+972500000000" as const,
14
- region: "IL",
15
- countryCallingCode: "972",
16
- formatted: "+972 50-000-0000",
17
- },
18
- gender: faker.helpers.arrayElement(["male", "female"]),
19
- }));
20
-
21
- export const groupFactory = Factory.define<GroupDoc>(() => ({
22
- _id: new ObjectId(),
23
- clientId: faker.string.uuid(),
24
- createdAt: new Date(),
25
- updatedAt: new Date(),
26
- name: faker.company.name(),
27
- description: faker.lorem.sentence(),
28
- contacts: groupContactFactory.buildList(2),
29
- }));
30
-
31
- export function createGroup(overrides?: Partial<Group>): GroupDoc {
32
- return groupFactory.build(overrides);
33
- }
1
+ import { Factory } from "fishery";
2
+ import { ObjectId } from "mongodb";
3
+ import { faker } from "@faker-js/faker";
4
+ import type { Group, GroupContact, GroupDoc } from "../../../talkpilot";
5
+
6
+ export const groupContactFactory = Factory.define<GroupContact>(() => ({
7
+ name: faker.person.firstName(),
8
+ phone: {
9
+ national: "500000000",
10
+ національний: "500000000",
11
+ nacionales: "500000000",
12
+ национальные: "500000000",
13
+ e164: "+972500000000" as const,
14
+ region: "IL",
15
+ countryCallingCode: "972",
16
+ formatted: "+972 50-000-0000",
17
+ },
18
+ gender: faker.helpers.arrayElement(["male", "female"]),
19
+ }));
20
+
21
+ export const groupFactory = Factory.define<GroupDoc>(() => ({
22
+ _id: new ObjectId(),
23
+ clientId: faker.string.uuid(),
24
+ createdAt: new Date(),
25
+ updatedAt: new Date(),
26
+ name: faker.company.name(),
27
+ description: faker.lorem.sentence(),
28
+ contacts: groupContactFactory.buildList(2),
29
+ }));
30
+
31
+ export function createGroup(overrides?: Partial<Group>): GroupDoc {
32
+ return groupFactory.build(overrides);
33
+ }
@@ -1,22 +1,22 @@
1
- import { Factory } from "fishery";
2
- import { ObjectId } from "mongodb";
3
- import { faker } from "@faker-js/faker";
4
- import type { PhoneNumber } from "../../../talkpilot";
5
-
6
- export const phoneNumberFactory = Factory.define<
7
- PhoneNumber & { _id?: ObjectId }
8
- >(() => ({
9
- _id: new ObjectId(),
10
- client_id: faker.string.uuid(),
11
- flow_id: new ObjectId(),
12
- phone_number: faker.phone.number(),
13
- createdAt: new Date(),
14
- updatedAt: new Date(),
15
- is_primary: true,
16
- }));
17
-
18
- export function createPhoneNumber(
19
- overrides?: Partial<PhoneNumber> & { flow_id?: ObjectId },
20
- ): PhoneNumber & { _id?: ObjectId } {
21
- return phoneNumberFactory.build(overrides);
22
- }
1
+ import { Factory } from "fishery";
2
+ import { ObjectId } from "mongodb";
3
+ import { faker } from "@faker-js/faker";
4
+ import type { PhoneNumber } from "../../../talkpilot";
5
+
6
+ export const phoneNumberFactory = Factory.define<
7
+ PhoneNumber & { _id?: ObjectId }
8
+ >(() => ({
9
+ _id: new ObjectId(),
10
+ client_id: faker.string.uuid(),
11
+ flow_id: new ObjectId(),
12
+ phone_number: faker.phone.number(),
13
+ createdAt: new Date(),
14
+ updatedAt: new Date(),
15
+ is_primary: true,
16
+ }));
17
+
18
+ export function createPhoneNumber(
19
+ overrides?: Partial<PhoneNumber> & { flow_id?: ObjectId },
20
+ ): PhoneNumber & { _id?: ObjectId } {
21
+ return phoneNumberFactory.build(overrides);
22
+ }
@@ -1,35 +1,35 @@
1
- import { Factory } from "fishery";
2
- import { ObjectId } from "mongodb";
3
- import { faker } from "@faker-js/faker";
4
- import type { Session } from "../../../talkpilot";
5
-
6
- export const sessionFactory = Factory.define<Session>(() => ({
7
- _id: new ObjectId(),
8
- session_name: faker.lorem.word(),
9
- clientId: faker.string.uuid(),
10
- flow_id: new ObjectId(),
11
- phone_numbers: [
12
- {
13
- name: faker.person.firstName(),
14
- phoneNumber: faker.phone.number(),
15
- gender: "male" as const,
16
- },
17
- ],
18
- json: null,
19
- metaKeys: null,
20
- voice: null,
21
- company_name: null,
22
- createdAt: new Date(),
23
- updatedAt: new Date(),
24
- }));
25
-
26
- export function createSession(overrides?: Partial<Session>): Session {
27
- const now = new Date();
28
- const base = sessionFactory.build();
29
- return {
30
- ...base,
31
- ...overrides,
32
- createdAt: overrides?.createdAt ?? now,
33
- updatedAt: now,
34
- };
35
- }
1
+ import { Factory } from "fishery";
2
+ import { ObjectId } from "mongodb";
3
+ import { faker } from "@faker-js/faker";
4
+ import type { Session } from "../../../talkpilot";
5
+
6
+ export const sessionFactory = Factory.define<Session>(() => ({
7
+ _id: new ObjectId(),
8
+ session_name: faker.lorem.word(),
9
+ clientId: faker.string.uuid(),
10
+ flow_id: new ObjectId(),
11
+ phone_numbers: [
12
+ {
13
+ name: faker.person.firstName(),
14
+ phoneNumber: faker.phone.number(),
15
+ gender: "male" as const,
16
+ },
17
+ ],
18
+ json: null,
19
+ metaKeys: null,
20
+ voice: null,
21
+ company_name: null,
22
+ createdAt: new Date(),
23
+ updatedAt: new Date(),
24
+ }));
25
+
26
+ export function createSession(overrides?: Partial<Session>): Session {
27
+ const now = new Date();
28
+ const base = sessionFactory.build();
29
+ return {
30
+ ...base,
31
+ ...overrides,
32
+ createdAt: overrides?.createdAt ?? now,
33
+ updatedAt: now,
34
+ };
35
+ }
@@ -1,29 +1,29 @@
1
- import { Factory } from "fishery";
2
- import { faker } from "@faker-js/faker";
3
- import {
4
- KNOWLEDGE_CONTENT_TYPES,
5
- KNOWLEDGE_DOCUMENT_STATUSES,
6
- KNOWLEDGE_FILE_TYPES,
7
- } from "../../../websitalk/knowledgeDocuments/knowledgeDocuments.constants";
8
- import type { KnowledgeDocument } from "../../../websitalk/knowledgeDocuments/knowledgeDocuments.types";
9
-
10
- export const knowledgeDocumentFactory = Factory.define<KnowledgeDocument>(
11
- () => ({
12
- clientId: faker.string.uuid(),
13
- filename: `${faker.system.fileName()}.pdf`,
14
- contentType: KNOWLEDGE_CONTENT_TYPES.PDF,
15
- fileType: KNOWLEDGE_FILE_TYPES.PDF,
16
- storagePath: `websitalk/knowledge_files/${faker.string.uuid()}/original.pdf`,
17
- byteSize: faker.number.int({ min: 1024, max: 5_000_000 }),
18
- status: KNOWLEDGE_DOCUMENT_STATUSES.UPLOADING,
19
- progressPercent: 0,
20
- createdAt: new Date(),
21
- updatedAt: new Date(),
22
- }),
23
- );
24
-
25
- export function createKnowledgeDocumentFixture(
26
- overrides?: Partial<KnowledgeDocument>,
27
- ): KnowledgeDocument {
28
- return knowledgeDocumentFactory.build(overrides);
29
- }
1
+ import { Factory } from "fishery";
2
+ import { faker } from "@faker-js/faker";
3
+ import {
4
+ KNOWLEDGE_CONTENT_TYPES,
5
+ KNOWLEDGE_DOCUMENT_STATUSES,
6
+ KNOWLEDGE_FILE_TYPES,
7
+ } from "../../../websitalk/knowledgeDocuments/knowledgeDocuments.constants";
8
+ import type { KnowledgeDocument } from "../../../websitalk/knowledgeDocuments/knowledgeDocuments.types";
9
+
10
+ export const knowledgeDocumentFactory = Factory.define<KnowledgeDocument>(
11
+ () => ({
12
+ clientId: faker.string.uuid(),
13
+ filename: `${faker.system.fileName()}.pdf`,
14
+ contentType: KNOWLEDGE_CONTENT_TYPES.PDF,
15
+ fileType: KNOWLEDGE_FILE_TYPES.PDF,
16
+ storagePath: `websitalk/knowledge_files/${faker.string.uuid()}/original.pdf`,
17
+ byteSize: faker.number.int({ min: 1024, max: 5_000_000 }),
18
+ status: KNOWLEDGE_DOCUMENT_STATUSES.UPLOADING,
19
+ progressPercent: 0,
20
+ createdAt: new Date(),
21
+ updatedAt: new Date(),
22
+ }),
23
+ );
24
+
25
+ export function createKnowledgeDocumentFixture(
26
+ overrides?: Partial<KnowledgeDocument>,
27
+ ): KnowledgeDocument {
28
+ return knowledgeDocumentFactory.build(overrides);
29
+ }
@@ -1,26 +1,26 @@
1
- import { Factory } from "fishery";
2
- import { faker } from "@faker-js/faker";
3
- import { ObjectId } from "mongodb";
4
- import {
5
- URL_TASK_STATUSES,
6
- type ScanResource,
7
- } from "../../../websitalk/scanResources";
8
-
9
- export const scanResourceFactory = Factory.define<ScanResource>(() => ({
10
- urlHashId: faker.string.uuid(),
11
- clientId: faker.string.uuid(),
12
- scanId: new ObjectId().toString(),
13
- websiteUrlId: new ObjectId().toString(),
14
- url: faker.internet.url(),
15
- status: URL_TASK_STATUSES.URL_PENDING,
16
- depth: 0,
17
- retryCount: 0,
18
- createdAt: new Date(),
19
- updatedAt: new Date(),
20
- }));
21
-
22
- export function createScanResourceFixture(
23
- overrides?: Partial<ScanResource>,
24
- ): ScanResource {
25
- return scanResourceFactory.build(overrides);
26
- }
1
+ import { Factory } from "fishery";
2
+ import { faker } from "@faker-js/faker";
3
+ import { ObjectId } from "mongodb";
4
+ import {
5
+ URL_TASK_STATUSES,
6
+ type ScanResource,
7
+ } from "../../../websitalk/scanResources";
8
+
9
+ export const scanResourceFactory = Factory.define<ScanResource>(() => ({
10
+ urlHashId: faker.string.uuid(),
11
+ clientId: faker.string.uuid(),
12
+ scanId: new ObjectId().toString(),
13
+ websiteUrlId: new ObjectId().toString(),
14
+ url: faker.internet.url(),
15
+ status: URL_TASK_STATUSES.URL_PENDING,
16
+ depth: 0,
17
+ retryCount: 0,
18
+ createdAt: new Date(),
19
+ updatedAt: new Date(),
20
+ }));
21
+
22
+ export function createScanResourceFixture(
23
+ overrides?: Partial<ScanResource>,
24
+ ): ScanResource {
25
+ return scanResourceFactory.build(overrides);
26
+ }
@@ -1,30 +1,30 @@
1
- import { Factory } from "fishery";
2
- import { faker } from "@faker-js/faker";
3
- import { ObjectId } from "mongodb";
4
- import type { Scan } from "../../../websitalk";
5
-
6
- export const scanFactory = Factory.define<Scan>(() => ({
7
- clientId: faker.string.uuid(),
8
- websiteUrlId: new ObjectId().toString(),
9
- status: "CHECKING",
10
- activeTasksCount: 0,
11
- pagesScanned: 0,
12
- pagesSkipped: 0,
13
- skipped: [],
14
- siteChrome: {
15
- url: faker.internet.url(),
16
- sourceType: "site_chrome",
17
- },
18
- createdAt: new Date(),
19
- updatedAt: new Date(),
20
- startedAt: new Date(),
21
- pausedAt: null,
22
- completedAt: null,
23
- pagesCompleted: 0,
24
- pagesFailedPermanent: 0,
25
- pagesDuplicate: 0,
26
- }));
27
-
28
- export function createScanFixture(overrides?: Partial<Scan>): Scan {
29
- return scanFactory.build(overrides);
30
- }
1
+ import { Factory } from "fishery";
2
+ import { faker } from "@faker-js/faker";
3
+ import { ObjectId } from "mongodb";
4
+ import type { Scan } from "../../../websitalk";
5
+
6
+ export const scanFactory = Factory.define<Scan>(() => ({
7
+ clientId: faker.string.uuid(),
8
+ websiteUrlId: new ObjectId().toString(),
9
+ status: "CHECKING",
10
+ activeTasksCount: 0,
11
+ pagesScanned: 0,
12
+ pagesSkipped: 0,
13
+ skipped: [],
14
+ siteChrome: {
15
+ url: faker.internet.url(),
16
+ sourceType: "site_chrome",
17
+ },
18
+ createdAt: new Date(),
19
+ updatedAt: new Date(),
20
+ startedAt: new Date(),
21
+ pausedAt: null,
22
+ completedAt: null,
23
+ pagesCompleted: 0,
24
+ pagesFailedPermanent: 0,
25
+ pagesDuplicate: 0,
26
+ }));
27
+
28
+ export function createScanFixture(overrides?: Partial<Scan>): Scan {
29
+ return scanFactory.build(overrides);
30
+ }
@@ -1,17 +1,17 @@
1
- import { Factory } from "fishery";
2
- import { faker } from "@faker-js/faker";
3
- import type { WebsiteUrl } from "../../../websitalk/websiteUrls";
4
-
5
- export const websiteUrlFactory = Factory.define<WebsiteUrl>(() => ({
6
- clientId: faker.string.uuid(),
7
- name: faker.company.name(),
8
- baseUrl: faker.internet.url(),
9
- createdAt: new Date(),
10
- updatedAt: new Date(),
11
- }));
12
-
13
- export function createWebsiteUrlFixture(
14
- overrides?: Partial<WebsiteUrl>,
15
- ): WebsiteUrl {
16
- return websiteUrlFactory.build(overrides);
17
- }
1
+ import { Factory } from "fishery";
2
+ import { faker } from "@faker-js/faker";
3
+ import type { WebsiteUrl } from "../../../websitalk/websiteUrls";
4
+
5
+ export const websiteUrlFactory = Factory.define<WebsiteUrl>(() => ({
6
+ clientId: faker.string.uuid(),
7
+ name: faker.company.name(),
8
+ baseUrl: faker.internet.url(),
9
+ createdAt: new Date(),
10
+ updatedAt: new Date(),
11
+ }));
12
+
13
+ export function createWebsiteUrlFixture(
14
+ overrides?: Partial<WebsiteUrl>,
15
+ ): WebsiteUrl {
16
+ return websiteUrlFactory.build(overrides);
17
+ }