@solidstarters/solid-core 1.2.134 → 1.2.136

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 (300) hide show
  1. package/dist/controllers/ai-interaction.controller.d.ts +46 -0
  2. package/dist/controllers/ai-interaction.controller.d.ts.map +1 -0
  3. package/dist/controllers/ai-interaction.controller.js +204 -0
  4. package/dist/controllers/ai-interaction.controller.js.map +1 -0
  5. package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts +43 -0
  6. package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts.map +1 -0
  7. package/dist/controllers/dashboard-question-sql-dataset-config.controller.js +179 -0
  8. package/dist/controllers/dashboard-question-sql-dataset-config.controller.js.map +1 -0
  9. package/dist/controllers/dashboard-question.controller.d.ts +45 -0
  10. package/dist/controllers/dashboard-question.controller.d.ts.map +1 -0
  11. package/dist/controllers/dashboard-question.controller.js +194 -0
  12. package/dist/controllers/dashboard-question.controller.js.map +1 -0
  13. package/dist/controllers/dashboard-variable.controller.d.ts +43 -0
  14. package/dist/controllers/dashboard-variable.controller.d.ts.map +1 -0
  15. package/dist/controllers/dashboard-variable.controller.js +179 -0
  16. package/dist/controllers/dashboard-variable.controller.js.map +1 -0
  17. package/dist/controllers/dashboard.controller.d.ts +45 -0
  18. package/dist/controllers/dashboard.controller.d.ts.map +1 -0
  19. package/dist/controllers/dashboard.controller.js +192 -0
  20. package/dist/controllers/dashboard.controller.js.map +1 -0
  21. package/dist/controllers/test.controller.d.ts.map +1 -1
  22. package/dist/controllers/test.controller.js.map +1 -1
  23. package/dist/decorators/dashboard-question-data-provider.decorator.d.ts +3 -0
  24. package/dist/decorators/dashboard-question-data-provider.decorator.d.ts.map +1 -0
  25. package/dist/decorators/dashboard-question-data-provider.decorator.js +11 -0
  26. package/dist/decorators/dashboard-question-data-provider.decorator.js.map +1 -0
  27. package/dist/decorators/dashboard-selection-provider.decorator.d.ts +3 -0
  28. package/dist/decorators/dashboard-selection-provider.decorator.d.ts.map +1 -0
  29. package/dist/decorators/dashboard-selection-provider.decorator.js +11 -0
  30. package/dist/decorators/dashboard-selection-provider.decorator.js.map +1 -0
  31. package/dist/dtos/create-ai-interaction.dto.d.ts +14 -0
  32. package/dist/dtos/create-ai-interaction.dto.d.ts.map +1 -0
  33. package/dist/dtos/create-ai-interaction.dto.js +90 -0
  34. package/dist/dtos/create-ai-interaction.dto.js.map +1 -0
  35. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts +12 -0
  36. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts.map +1 -0
  37. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js +77 -0
  38. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js.map +1 -0
  39. package/dist/dtos/create-dashboard-question.dto.d.ts +17 -0
  40. package/dist/dtos/create-dashboard-question.dto.d.ts.map +1 -0
  41. package/dist/dtos/create-dashboard-question.dto.js +105 -0
  42. package/dist/dtos/create-dashboard-question.dto.js.map +1 -0
  43. package/dist/dtos/create-dashboard-variable.dto.d.ts +18 -0
  44. package/dist/dtos/create-dashboard-variable.dto.d.ts.map +1 -0
  45. package/dist/dtos/create-dashboard-variable.dto.js +97 -0
  46. package/dist/dtos/create-dashboard-variable.dto.js.map +1 -0
  47. package/dist/dtos/create-dashboard.dto.d.ts +15 -0
  48. package/dist/dtos/create-dashboard.dto.d.ts.map +1 -0
  49. package/dist/dtos/create-dashboard.dto.js +90 -0
  50. package/dist/dtos/create-dashboard.dto.js.map +1 -0
  51. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts +8 -0
  52. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts.map +1 -0
  53. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js +52 -0
  54. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js.map +1 -0
  55. package/dist/dtos/invoke-ai-prompt.dto.d.ts +4 -0
  56. package/dist/dtos/invoke-ai-prompt.dto.d.ts.map +1 -0
  57. package/dist/dtos/invoke-ai-prompt.dto.js +25 -0
  58. package/dist/dtos/invoke-ai-prompt.dto.js.map +1 -0
  59. package/dist/dtos/update-ai-interaction.dto.d.ts +15 -0
  60. package/dist/dtos/update-ai-interaction.dto.d.ts.map +1 -0
  61. package/dist/dtos/update-ai-interaction.dto.js +96 -0
  62. package/dist/dtos/update-ai-interaction.dto.js.map +1 -0
  63. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts +13 -0
  64. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts.map +1 -0
  65. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js +86 -0
  66. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js.map +1 -0
  67. package/dist/dtos/update-dashboard-question.dto.d.ts +18 -0
  68. package/dist/dtos/update-dashboard-question.dto.d.ts.map +1 -0
  69. package/dist/dtos/update-dashboard-question.dto.js +112 -0
  70. package/dist/dtos/update-dashboard-question.dto.js.map +1 -0
  71. package/dist/dtos/update-dashboard-variable.dto.d.ts +15 -0
  72. package/dist/dtos/update-dashboard-variable.dto.d.ts.map +1 -0
  73. package/dist/dtos/update-dashboard-variable.dto.js +95 -0
  74. package/dist/dtos/update-dashboard-variable.dto.js.map +1 -0
  75. package/dist/dtos/update-dashboard.dto.d.ts +16 -0
  76. package/dist/dtos/update-dashboard.dto.d.ts.map +1 -0
  77. package/dist/dtos/update-dashboard.dto.js +96 -0
  78. package/dist/dtos/update-dashboard.dto.js.map +1 -0
  79. package/dist/entities/ai-interaction.entity.d.ts +15 -0
  80. package/dist/entities/ai-interaction.entity.d.ts.map +1 -0
  81. package/dist/entities/ai-interaction.entity.js +70 -0
  82. package/dist/entities/ai-interaction.entity.js.map +1 -0
  83. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts +13 -0
  84. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +1 -0
  85. package/dist/entities/dashboard-question-sql-dataset-config.entity.js +60 -0
  86. package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +1 -0
  87. package/dist/entities/dashboard-question.entity.d.ts +16 -0
  88. package/dist/entities/dashboard-question.entity.d.ts.map +1 -0
  89. package/dist/entities/dashboard-question.entity.js +71 -0
  90. package/dist/entities/dashboard-question.entity.js.map +1 -0
  91. package/dist/entities/dashboard-variable.entity.d.ts +15 -0
  92. package/dist/entities/dashboard-variable.entity.d.ts.map +1 -0
  93. package/dist/entities/dashboard-variable.entity.js +73 -0
  94. package/dist/entities/dashboard-variable.entity.js.map +1 -0
  95. package/dist/entities/dashboard.entity.d.ts +12 -0
  96. package/dist/entities/dashboard.entity.d.ts.map +1 -0
  97. package/dist/entities/dashboard.entity.js +50 -0
  98. package/dist/entities/dashboard.entity.js.map +1 -0
  99. package/dist/helpers/solid-registry.d.ts +9 -1
  100. package/dist/helpers/solid-registry.d.ts.map +1 -1
  101. package/dist/helpers/solid-registry.js +32 -0
  102. package/dist/helpers/solid-registry.js.map +1 -1
  103. package/dist/index.d.ts +10 -0
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +10 -0
  106. package/dist/index.js.map +1 -1
  107. package/dist/interfaces.d.ts +26 -1
  108. package/dist/interfaces.d.ts.map +1 -1
  109. package/dist/interfaces.js.map +1 -1
  110. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts +11 -0
  111. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts.map +1 -0
  112. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js +39 -0
  113. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js.map +1 -0
  114. package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts +8 -0
  115. package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts.map +1 -0
  116. package/dist/jobs/database/trigger-mcp-client-queue-options.js +10 -0
  117. package/dist/jobs/database/trigger-mcp-client-queue-options.js.map +1 -0
  118. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +16 -0
  119. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -0
  120. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +71 -0
  121. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -0
  122. package/dist/mappers/dashboard-mapper.d.ts +6 -0
  123. package/dist/mappers/dashboard-mapper.d.ts.map +1 -0
  124. package/dist/mappers/dashboard-mapper.js +60 -0
  125. package/dist/mappers/dashboard-mapper.js.map +1 -0
  126. package/dist/repository/dashboard.repository.d.ts +9 -0
  127. package/dist/repository/dashboard.repository.d.ts.map +1 -0
  128. package/dist/repository/dashboard.repository.js +98 -0
  129. package/dist/repository/dashboard.repository.js.map +1 -0
  130. package/dist/seeders/module-metadata-seeder.service.d.ts +5 -1
  131. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  132. package/dist/seeders/module-metadata-seeder.service.js +18 -2
  133. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  134. package/dist/seeders/seed-data/solid-core-metadata.json +4172 -2411
  135. package/dist/services/ai-interaction.service.d.ts +31 -0
  136. package/dist/services/ai-interaction.service.d.ts.map +1 -0
  137. package/dist/services/ai-interaction.service.js +182 -0
  138. package/dist/services/ai-interaction.service.js.map +1 -0
  139. package/dist/services/chatter-message.service.d.ts.map +1 -1
  140. package/dist/services/chatter-message.service.js +8 -6
  141. package/dist/services/chatter-message.service.js.map +1 -1
  142. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +22 -0
  143. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +1 -0
  144. package/dist/services/dashboard-question-sql-dataset-config.service.js +56 -0
  145. package/dist/services/dashboard-question-sql-dataset-config.service.js.map +1 -0
  146. package/dist/services/dashboard-question.service.d.ts +29 -0
  147. package/dist/services/dashboard-question.service.d.ts.map +1 -0
  148. package/dist/services/dashboard-question.service.js +117 -0
  149. package/dist/services/dashboard-question.service.js.map +1 -0
  150. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts +12 -0
  151. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts.map +1 -0
  152. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js +55 -0
  153. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js.map +1 -0
  154. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts +11 -0
  155. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts.map +1 -0
  156. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js +45 -0
  157. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js.map +1 -0
  158. package/dist/services/dashboard-variable.service.d.ts +23 -0
  159. package/dist/services/dashboard-variable.service.d.ts.map +1 -0
  160. package/dist/services/dashboard-variable.service.js +57 -0
  161. package/dist/services/dashboard-variable.service.js.map +1 -0
  162. package/dist/services/dashboard.service.d.ts +38 -0
  163. package/dist/services/dashboard.service.d.ts.map +1 -0
  164. package/dist/services/dashboard.service.js +179 -0
  165. package/dist/services/dashboard.service.js.map +1 -0
  166. package/dist/services/field-metadata.service.d.ts.map +1 -1
  167. package/dist/services/field-metadata.service.js +1 -0
  168. package/dist/services/field-metadata.service.js.map +1 -1
  169. package/dist/services/import-transaction.service.d.ts +3 -1
  170. package/dist/services/import-transaction.service.d.ts.map +1 -1
  171. package/dist/services/import-transaction.service.js +22 -0
  172. package/dist/services/import-transaction.service.js.map +1 -1
  173. package/dist/services/list-of-values.service.d.ts +1 -0
  174. package/dist/services/list-of-values.service.d.ts.map +1 -1
  175. package/dist/services/list-of-values.service.js +3 -0
  176. package/dist/services/list-of-values.service.js.map +1 -1
  177. package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
  178. package/dist/services/menu-item-metadata.service.js +1 -1
  179. package/dist/services/menu-item-metadata.service.js.map +1 -1
  180. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts +36 -0
  181. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts.map +1 -0
  182. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js +89 -0
  183. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js.map +1 -0
  184. package/dist/services/question-data-providers/helpers.d.ts +7 -0
  185. package/dist/services/question-data-providers/helpers.d.ts.map +1 -0
  186. package/dist/services/question-data-providers/helpers.js +25 -0
  187. package/dist/services/question-data-providers/helpers.js.map +1 -0
  188. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts +17 -0
  189. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts.map +1 -0
  190. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js +70 -0
  191. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js.map +1 -0
  192. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts +19 -0
  193. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts.map +1 -0
  194. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js +92 -0
  195. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js.map +1 -0
  196. package/dist/services/queues/publisher-factory.service.js +1 -1
  197. package/dist/services/queues/publisher-factory.service.js.map +1 -1
  198. package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -1
  199. package/dist/services/scheduled-jobs/scheduler.service.js +22 -11
  200. package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
  201. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts +11 -0
  202. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts.map +1 -0
  203. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js +46 -0
  204. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js.map +1 -0
  205. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts +11 -0
  206. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts.map +1 -0
  207. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js +47 -0
  208. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js.map +1 -0
  209. package/dist/services/solid-introspect.service.d.ts +2 -0
  210. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  211. package/dist/services/solid-introspect.service.js +28 -0
  212. package/dist/services/solid-introspect.service.js.map +1 -1
  213. package/dist/services/sql-expression-resolver.service.d.ts +9 -0
  214. package/dist/services/sql-expression-resolver.service.d.ts.map +1 -0
  215. package/dist/services/sql-expression-resolver.service.js +105 -0
  216. package/dist/services/sql-expression-resolver.service.js.map +1 -0
  217. package/dist/solid-core.module.d.ts.map +1 -1
  218. package/dist/solid-core.module.js +75 -1
  219. package/dist/solid-core.module.js.map +1 -1
  220. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts +16 -0
  221. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts.map +1 -0
  222. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js +72 -0
  223. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js.map +1 -0
  224. package/dist/subscribers/dashboard-question.subscriber.d.ts +16 -0
  225. package/dist/subscribers/dashboard-question.subscriber.d.ts.map +1 -0
  226. package/dist/subscribers/dashboard-question.subscriber.js +72 -0
  227. package/dist/subscribers/dashboard-question.subscriber.js.map +1 -0
  228. package/dist/subscribers/dashboard-variable.subscriber.d.ts +16 -0
  229. package/dist/subscribers/dashboard-variable.subscriber.d.ts.map +1 -0
  230. package/dist/subscribers/dashboard-variable.subscriber.js +72 -0
  231. package/dist/subscribers/dashboard-variable.subscriber.js.map +1 -0
  232. package/dist/subscribers/dashboard.subscriber.d.ts +15 -0
  233. package/dist/subscribers/dashboard.subscriber.d.ts.map +1 -0
  234. package/dist/subscribers/dashboard.subscriber.js +56 -0
  235. package/dist/subscribers/dashboard.subscriber.js.map +1 -0
  236. package/dist/tsconfig.tsbuildinfo +1 -1
  237. package/package.json +1 -1
  238. package/src/controllers/ai-interaction.controller.ts +104 -0
  239. package/src/controllers/dashboard-question-sql-dataset-config.controller.ts +93 -0
  240. package/src/controllers/dashboard-question.controller.ts +104 -0
  241. package/src/controllers/dashboard-variable.controller.ts +93 -0
  242. package/src/controllers/dashboard.controller.ts +99 -0
  243. package/src/controllers/test.controller.ts +1 -2
  244. package/src/decorators/dashboard-question-data-provider.decorator.ts +7 -0
  245. package/src/decorators/dashboard-selection-provider.decorator.ts +7 -0
  246. package/src/dtos/create-ai-interaction.dto.ts +60 -0
  247. package/src/dtos/create-dashboard-question-sql-dataset-config.dto.ts +42 -0
  248. package/src/dtos/create-dashboard-question.dto.ts +63 -0
  249. package/src/dtos/create-dashboard-variable.dto.ts +56 -0
  250. package/src/dtos/create-dashboard.dto.ts +53 -0
  251. package/src/dtos/dashboard-variable-selection-dynamic-query.dto.ts +29 -0
  252. package/src/dtos/invoke-ai-prompt.dto.ts +6 -0
  253. package/src/dtos/update-ai-interaction.dto.ts +65 -0
  254. package/src/dtos/update-dashboard-question-sql-dataset-config.dto.ts +49 -0
  255. package/src/dtos/update-dashboard-question.dto.ts +68 -0
  256. package/src/dtos/update-dashboard-variable.dto.ts +54 -0
  257. package/src/dtos/update-dashboard.dto.ts +57 -0
  258. package/src/entities/ai-interaction.entity.ts +39 -0
  259. package/src/entities/dashboard-question-sql-dataset-config.entity.ts +25 -0
  260. package/src/entities/dashboard-question.entity.ts +33 -0
  261. package/src/entities/dashboard-variable.entity.ts +30 -0
  262. package/src/entities/dashboard.entity.ts +21 -0
  263. package/src/helpers/solid-registry.ts +44 -2
  264. package/src/index.ts +10 -2
  265. package/src/interfaces.ts +57 -29
  266. package/src/jobs/database/trigger-mcp-client-publisher-database.service.ts +22 -0
  267. package/src/jobs/database/trigger-mcp-client-queue-options.ts +9 -0
  268. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +71 -0
  269. package/src/mappers/dashboard-mapper.ts +52 -0
  270. package/src/repository/dashboard.repository.ts +101 -0
  271. package/src/seeders/module-metadata-seeder.service.ts +21 -1
  272. package/src/seeders/seed-data/solid-core-metadata.json +4175 -2414
  273. package/src/services/ai-interaction.service.ts +163 -0
  274. package/src/services/chatter-message.service.ts +12 -6
  275. package/src/services/dashboard-question-sql-dataset-config.service.ts +34 -0
  276. package/src/services/dashboard-question.service.ts +115 -0
  277. package/src/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.ts +56 -0
  278. package/src/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.ts +37 -0
  279. package/src/services/dashboard-variable.service.ts +36 -0
  280. package/src/services/dashboard.service.ts +147 -0
  281. package/src/services/field-metadata.service.ts +1 -0
  282. package/src/services/import-transaction.service.ts +29 -1
  283. package/src/services/list-of-values.service.ts +5 -0
  284. package/src/services/menu-item-metadata.service.ts +2 -1
  285. package/src/services/question-data-providers/chartjs-sql-data-provider.service.ts +125 -0
  286. package/src/services/question-data-providers/helpers.ts +30 -0
  287. package/src/services/question-data-providers/prime-react-datatable-sql-data-provider.service.ts +78 -0
  288. package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts +119 -0
  289. package/src/services/question-data-providers/test.sql +1 -0
  290. package/src/services/queues/publisher-factory.service.ts +1 -1
  291. package/src/services/scheduled-jobs/scheduler.service.ts +32 -64
  292. package/src/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.ts +41 -0
  293. package/src/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.ts +41 -0
  294. package/src/services/solid-introspect.service.ts +42 -0
  295. package/src/services/sql-expression-resolver.service.ts +125 -0
  296. package/src/solid-core.module.ts +77 -2
  297. package/src/subscribers/dashboard-question-sql-dataset-config.subscriber.ts +61 -0
  298. package/src/subscribers/dashboard-question.subscriber.ts +62 -0
  299. package/src/subscribers/dashboard-variable.subscriber.ts +63 -0
  300. package/src/subscribers/dashboard.subscriber.ts +43 -0
@@ -0,0 +1,63 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+ import { IsString } from 'class-validator';
3
+ import { IsNotEmpty, IsOptional, IsJSON, IsInt, ValidateNested, IsArray } from 'class-validator';
4
+ import { Type } from 'class-transformer';
5
+ import { UpdateDashboardQuestionSqlDatasetConfigDto } from 'src/dtos/update-dashboard-question-sql-dataset-config.dto';
6
+
7
+ export class CreateDashboardQuestionDto {
8
+ @IsNotEmpty()
9
+ @IsString()
10
+ @ApiProperty()
11
+ name: string;
12
+ @IsNotEmpty()
13
+ @IsString()
14
+ @ApiProperty()
15
+ sourceType: string;
16
+ @IsNotEmpty()
17
+ @IsString()
18
+ @ApiProperty()
19
+ visualisedAs: string;
20
+ @IsOptional()
21
+ @IsString()
22
+ @ApiProperty({ description: "This is only applicable when sourceType is set to provider. It allows the user to select any pre-existing Dashboard Question Data provider implementation used to fetch a dynamic dropdown of values to choose from when this question is presented to the user." })
23
+ providerName: string;
24
+ @IsOptional()
25
+ @IsInt()
26
+ @ApiProperty({ description: "Related Dashboard Model" })
27
+ dashboardId: number;
28
+ @IsString()
29
+ @IsOptional()
30
+ @ApiProperty({ description: "Related Dashboard Model" })
31
+ dashboardUserKey: string;
32
+ @IsOptional()
33
+ @ApiProperty({ description: "Related Question SQL Dataset Config Model" })
34
+ @IsArray()
35
+ @ValidateNested({ each: true })
36
+ @Type(() => UpdateDashboardQuestionSqlDatasetConfigDto)
37
+ questionSqlDatasetConfigs: UpdateDashboardQuestionSqlDatasetConfigDto[];
38
+ @IsOptional()
39
+ @IsArray()
40
+ @ApiProperty({ description: "Related Question SQL Dataset Config Model" })
41
+ questionSqlDatasetConfigsIds: number[];
42
+ @IsString()
43
+ @IsOptional()
44
+ @ApiProperty({ description: "Related Question SQL Dataset Config Model" })
45
+ questionSqlDatasetConfigsCommand: string;
46
+ @IsOptional()
47
+ @IsJSON()
48
+ @ApiProperty({ description: "This is a JSON object representing each labels display and color options for the bar chart" })
49
+ chartOptions: any;
50
+ @IsOptional()
51
+ @IsString()
52
+ @ApiProperty({ description: "This is the SQL query to fetch the label values for the question" })
53
+ labelSql: string;
54
+ @IsOptional()
55
+ @IsString()
56
+ @ApiProperty({ description: "This is the SQL query to fetch the KPI value for the question" })
57
+ kpiSql: string;
58
+
59
+ @IsOptional()
60
+ @IsInt()
61
+ @ApiProperty()
62
+ sequenceNumber: number;
63
+ }
@@ -0,0 +1,56 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+ import { IsString } from 'class-validator';
3
+ import { IsNotEmpty, IsJSON, IsOptional, IsBoolean, IsInt } from 'class-validator';
4
+
5
+ export enum SelectionDynamicSourceType {
6
+ SQL = "sql",
7
+ PROVIDER = "provider",
8
+ }
9
+
10
+
11
+ export class CreateDashboardVariableDto {
12
+ @IsNotEmpty()
13
+ @IsString()
14
+ @ApiProperty()
15
+ variableName: string;
16
+ @IsNotEmpty()
17
+ @IsString()
18
+ @ApiProperty()
19
+ variableType: string;
20
+ @IsOptional()
21
+ @IsJSON()
22
+ @ApiProperty()
23
+ selectionStaticValues: any;
24
+ @IsOptional()
25
+ @IsString()
26
+ @ApiProperty()
27
+ selectionDynamicSourceType: string;
28
+ @IsOptional()
29
+ @IsString()
30
+ @ApiProperty({ description: "SQL query to fetch the data for this variable when it is rendered at runtime. This is only applicable when selectionDynamicSourceType is set to SQL." })
31
+ selectionDynamicSQL: string;
32
+ @IsOptional()
33
+ @IsString()
34
+ @ApiProperty({ description: "This is only applicable when selectionDynamicSourceType is set to provider. It allows the user to select any pre-existing Dashboard SelectionDynamicProvider implementation used to fetch a dynamic dropdown of values to choose from when this variable is presented to the user." })
35
+ selectionDynamicProviderName: string;
36
+ @IsOptional()
37
+ @IsBoolean()
38
+ @ApiProperty({ description: "This is relevant only for variables of type \"selectionStatic\" or \"selectionDynamic\". When set to true, it allows the user to select multiple values from the dropdown." })
39
+ isMultiSelect: boolean = true;
40
+ @IsOptional()
41
+ @IsInt()
42
+ @ApiProperty({ description: "Related Dashboard Model" })
43
+ dashboardId: number;
44
+ @IsString()
45
+ @IsOptional()
46
+ @ApiProperty({ description: "Related Dashboard Model" })
47
+ dashboardUserKey: string;
48
+ @IsOptional()
49
+ @IsString()
50
+ @ApiProperty({ description: "This is the default value for this variable when it is rendered at runtime. It can be a static value for this variable when it is rendered at runtime." })
51
+ defaultValue: string;
52
+ @IsOptional()
53
+ @IsString()
54
+ @ApiProperty({ description: "This is the default operator for this variable when it is rendered at runtime. It can be a static value for this variable when it is rendered at runtime." })
55
+ defaultOperator: string;
56
+ }
@@ -0,0 +1,53 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+ import { IsString } from 'class-validator';
3
+ import { IsNotEmpty, ValidateNested, IsArray, IsOptional, IsJSON, IsInt } from 'class-validator';
4
+ import { Type } from 'class-transformer';
5
+ import { UpdateDashboardVariableDto } from 'src/dtos/update-dashboard-variable.dto';
6
+ import { UpdateDashboardQuestionDto } from 'src/dtos/update-dashboard-question.dto';
7
+
8
+ export class CreateDashboardDto {
9
+ @IsNotEmpty()
10
+ @IsString()
11
+ @ApiProperty()
12
+ name: string;
13
+ @IsNotEmpty()
14
+ @IsJSON()
15
+ @ApiProperty()
16
+ layoutJson: any;
17
+ @IsOptional()
18
+ @ApiProperty()
19
+ @IsArray()
20
+ @ValidateNested({ each: true })
21
+ @Type(() => UpdateDashboardVariableDto)
22
+ dashboardVariables: UpdateDashboardVariableDto[];
23
+ @IsOptional()
24
+ @IsArray()
25
+ @ApiProperty()
26
+ dashboardVariablesIds: number[];
27
+ @IsString()
28
+ @IsOptional()
29
+ @ApiProperty()
30
+ dashboardVariablesCommand: string;
31
+ @IsOptional()
32
+ @ApiProperty()
33
+ @IsArray()
34
+ @ValidateNested({ each: true })
35
+ @Type(() => UpdateDashboardQuestionDto)
36
+ questions: UpdateDashboardQuestionDto[];
37
+ @IsOptional()
38
+ @IsArray()
39
+ @ApiProperty()
40
+ questionsIds: number[];
41
+ @IsString()
42
+ @IsOptional()
43
+ @ApiProperty()
44
+ questionsCommand: string;
45
+ @IsOptional()
46
+ @IsInt()
47
+ @ApiProperty()
48
+ moduleId: number;
49
+ @IsString()
50
+ @IsOptional()
51
+ @ApiProperty()
52
+ moduleUserKey: string;
53
+ }
@@ -0,0 +1,29 @@
1
+
2
+ import { ApiProperty } from "@nestjs/swagger";
3
+ import { Transform, Type } from "class-transformer";
4
+ import { IsNumber, IsOptional, IsString } from "class-validator";
5
+ import { PaginationQueryDto } from "src/dtos/pagination-query.dto";
6
+ import integerTransformer from "../transformers/integer-transformer";
7
+
8
+ export class DashboardVariableSelectionDynamicQueryDto extends PaginationQueryDto {
9
+ constructor(variableId: number, query: string, limit: number, offset: number) {
10
+ super(limit, offset);
11
+ this.variableId = variableId;
12
+ this.query = query;
13
+ }
14
+
15
+ @ApiProperty({ description: "Field ID of the field against which the dynamic value provider is registered.", type: Number })
16
+ @IsNumber()
17
+ @Transform(integerTransformer)
18
+ variableId: number;
19
+
20
+ @ApiProperty({ description: "Search query string", type: String })
21
+ @IsString()
22
+ @IsOptional()
23
+ query?: any;
24
+
25
+ @ApiProperty({ description: "Value of a single dynamic option", type: String })
26
+ @IsString()
27
+ @IsOptional()
28
+ optionValue?: string = '';
29
+ }
@@ -0,0 +1,6 @@
1
+ import { IsString } from 'class-validator';
2
+
3
+ export class InvokeAiPromptDto {
4
+ @IsString()
5
+ prompt: string;
6
+ }
@@ -0,0 +1,65 @@
1
+ import { IsInt,IsOptional, IsString, IsNotEmpty, IsJSON } from 'class-validator';
2
+ import { ApiProperty } from '@nestjs/swagger';
3
+ export class UpdateAiInteractionDto {
4
+ @IsOptional()
5
+ @IsInt()
6
+ id: number;
7
+
8
+ @IsOptional()
9
+ @IsInt()
10
+ @ApiProperty()
11
+ userId: number;
12
+
13
+ @IsString()
14
+ @IsOptional()
15
+ @ApiProperty()
16
+ userUserKey: string;
17
+
18
+ @IsNotEmpty()
19
+ @IsOptional()
20
+ @IsString()
21
+ @ApiProperty()
22
+ threadId: string;
23
+
24
+ @IsNotEmpty()
25
+ @IsOptional()
26
+ @IsString()
27
+ @ApiProperty()
28
+ role: string;
29
+
30
+ @IsNotEmpty()
31
+ @IsOptional()
32
+ @IsString()
33
+ @ApiProperty()
34
+ message: string;
35
+
36
+ @IsOptional()
37
+ @IsString()
38
+ @ApiProperty()
39
+ contentType: string;
40
+
41
+ @IsOptional()
42
+ @IsString()
43
+ @ApiProperty()
44
+ status: string;
45
+
46
+ @IsOptional()
47
+ @IsString()
48
+ @ApiProperty()
49
+ errorMessage: string;
50
+
51
+ @IsOptional()
52
+ @IsString()
53
+ @ApiProperty()
54
+ modelUsed: string;
55
+
56
+ @IsOptional()
57
+ @IsInt()
58
+ @ApiProperty()
59
+ responseTimeMs: number;
60
+
61
+ @IsOptional()
62
+ @IsJSON()
63
+ @ApiProperty()
64
+ metadata: any;
65
+ }
@@ -0,0 +1,49 @@
1
+ import { IsInt, IsOptional, IsString, IsNotEmpty, IsJSON } from 'class-validator';
2
+ import { ApiProperty } from '@nestjs/swagger';
3
+
4
+ export class UpdateDashboardQuestionSqlDatasetConfigDto {
5
+ @IsOptional()
6
+ @IsInt()
7
+ id: number;
8
+ @IsNotEmpty()
9
+ @IsOptional()
10
+ @IsString()
11
+ @ApiProperty()
12
+ datasetName: string;
13
+ @IsNotEmpty()
14
+ @IsOptional()
15
+ @IsString()
16
+ @ApiProperty({ description: "This is the display name for the dataset configuration, which can be used in UI components to represent the dataset in a user-friendly manner." })
17
+ datasetDisplayName: string;
18
+ @IsOptional()
19
+ @IsString()
20
+ @ApiProperty({ description: "This is a description of the dataset configuration, providing context and details about its purpose." })
21
+ description: string;
22
+ @IsNotEmpty()
23
+ @IsOptional()
24
+ @IsString()
25
+ @ApiProperty()
26
+ sql: string;
27
+ @IsNotEmpty()
28
+ @IsOptional()
29
+ @IsString()
30
+ @ApiProperty()
31
+ labelColumnName: string;
32
+ @IsNotEmpty()
33
+ @IsOptional()
34
+ @IsString()
35
+ @ApiProperty()
36
+ valueColumnName: string;
37
+ @IsOptional()
38
+ @IsInt()
39
+ @ApiProperty({ description: "Related Question Model" })
40
+ questionId: number;
41
+ @IsString()
42
+ @IsOptional()
43
+ @ApiProperty({ description: "Related Question Model" })
44
+ questionUserKey: string;
45
+ @IsOptional()
46
+ @IsJSON()
47
+ @ApiProperty({ description: "This allows you to set the dataset options e.g border-color, background-color, etc. This is a JSON object that can be used to customize the dataset appearance or behavior in the UI." })
48
+ options: any;
49
+ }
@@ -0,0 +1,68 @@
1
+ import { IsInt,IsOptional, IsString, IsNotEmpty, IsJSON, ValidateNested, IsArray } from 'class-validator';
2
+ import { ApiProperty } from '@nestjs/swagger';
3
+ import { Type } from 'class-transformer';
4
+ import { UpdateDashboardQuestionSqlDatasetConfigDto } from 'src/dtos/update-dashboard-question-sql-dataset-config.dto';
5
+
6
+ export class UpdateDashboardQuestionDto {
7
+ @IsOptional()
8
+ @IsInt()
9
+ id: number;
10
+ @IsNotEmpty()
11
+ @IsOptional()
12
+ @IsString()
13
+ @ApiProperty()
14
+ name: string;
15
+ @IsNotEmpty()
16
+ @IsOptional()
17
+ @IsString()
18
+ @ApiProperty()
19
+ sourceType: string;
20
+ @IsNotEmpty()
21
+ @IsOptional()
22
+ @IsString()
23
+ @ApiProperty()
24
+ visualisedAs: string;
25
+ @IsOptional()
26
+ @IsString()
27
+ @ApiProperty({ description: "This is only applicable when sourceType is set to provider. It allows the user to select any pre-existing Dashboard Question Data provider implementation used to fetch a dynamic dropdown of values to choose from when this question is presented to the user." })
28
+ providerName: string;
29
+ @IsOptional()
30
+ @IsInt()
31
+ @ApiProperty({ description: "Related Dashboard Model" })
32
+ dashboardId: number;
33
+ @IsString()
34
+ @IsOptional()
35
+ @ApiProperty({ description: "Related Dashboard Model" })
36
+ dashboardUserKey: string;
37
+ @IsOptional()
38
+ @ApiProperty({ description: "Related Question SQL Dataset Config Model" })
39
+ @IsArray()
40
+ @ValidateNested({ each: true })
41
+ @Type(() => UpdateDashboardQuestionSqlDatasetConfigDto)
42
+ questionSqlDatasetConfigs: UpdateDashboardQuestionSqlDatasetConfigDto[];
43
+ @IsOptional()
44
+ @IsArray()
45
+ @ApiProperty({ description: "Related Question SQL Dataset Config Model" })
46
+ questionSqlDatasetConfigsIds: number[];
47
+ @IsString()
48
+ @IsOptional()
49
+ @ApiProperty({ description: "Related Question SQL Dataset Config Model" })
50
+ questionSqlDatasetConfigsCommand: string;
51
+ @IsOptional()
52
+ @IsJSON()
53
+ @ApiProperty({ description: "This is a JSON object representing each labels display and color options for the bar chart" })
54
+ chartOptions: any;
55
+ @IsOptional()
56
+ @IsString()
57
+ @ApiProperty({ description: "This is the SQL query to fetch the label values for the question" })
58
+ labelSql: string;
59
+ @IsOptional()
60
+ @IsString()
61
+ @ApiProperty({ description: "This is the SQL query to fetch the KPI value for the question" })
62
+ kpiSql: string;
63
+
64
+ @IsOptional()
65
+ @IsInt()
66
+ @ApiProperty()
67
+ sequenceNumber: number;
68
+ }
@@ -0,0 +1,54 @@
1
+ import { IsInt,IsOptional, IsString, IsNotEmpty, IsJSON, IsBoolean } from 'class-validator';
2
+ import { ApiProperty } from '@nestjs/swagger';
3
+
4
+ export class UpdateDashboardVariableDto {
5
+ @IsOptional()
6
+ @IsInt()
7
+ id: number;
8
+ @IsNotEmpty()
9
+ @IsOptional()
10
+ @IsString()
11
+ @ApiProperty()
12
+ variableName: string;
13
+ @IsNotEmpty()
14
+ @IsOptional()
15
+ @IsString()
16
+ @ApiProperty()
17
+ variableType: string;
18
+ @IsOptional()
19
+ @IsJSON()
20
+ @ApiProperty()
21
+ selectionStaticValues: any;
22
+ @IsOptional()
23
+ @IsString()
24
+ @ApiProperty()
25
+ selectionDynamicSourceType: string;
26
+ @IsOptional()
27
+ @IsString()
28
+ @ApiProperty({ description: "SQL query to fetch the data for this variable when it is rendered at runtime. This is only applicable when selectionDynamicSourceType is set to SQL." })
29
+ selectionDynamicSQL: string;
30
+ @IsOptional()
31
+ @IsString()
32
+ @ApiProperty({ description: "This is only applicable when selectionDynamicSourceType is set to provider. It allows the user to select any pre-existing Dashboard SelectionDynamicProvider implementation used to fetch a dynamic dropdown of values to choose from when this variable is presented to the user." })
33
+ selectionDynamicProviderName: string;
34
+ @IsOptional()
35
+ @IsBoolean()
36
+ @ApiProperty({ description: "This is relevant only for variables of type \"selectionStatic\" or \"selectionDynamic\". When set to true, it allows the user to select multiple values from the dropdown." })
37
+ isMultiSelect: boolean;
38
+ @IsOptional()
39
+ @IsInt()
40
+ @ApiProperty({ description: "Related Dashboard Model" })
41
+ dashboardId: number;
42
+ @IsString()
43
+ @IsOptional()
44
+ @ApiProperty({ description: "Related Dashboard Model" })
45
+ dashboardUserKey: string;
46
+ @IsOptional()
47
+ @IsString()
48
+ @ApiProperty({ description: "This is the default value for this variable when it is rendered at runtime. It can be a static value for this variable when it is rendered at runtime." })
49
+ defaultValue: string;
50
+ @IsOptional()
51
+ @IsString()
52
+ @ApiProperty({ description: "This is the default operator for this variable when it is rendered at runtime. It can be a static value for this variable when it is rendered at runtime." })
53
+ defaultOperator: string;
54
+ }
@@ -0,0 +1,57 @@
1
+ import { IsInt,IsOptional, IsString, IsNotEmpty, ValidateNested, IsArray, IsJSON } from 'class-validator';
2
+ import { ApiProperty } from '@nestjs/swagger';
3
+ import { Type } from 'class-transformer';
4
+ import { UpdateDashboardVariableDto } from 'src/dtos/update-dashboard-variable.dto';
5
+ import { UpdateDashboardQuestionDto } from 'src/dtos/update-dashboard-question.dto';
6
+
7
+ export class UpdateDashboardDto {
8
+ @IsOptional()
9
+ @IsInt()
10
+ id: number;
11
+ @IsNotEmpty()
12
+ @IsOptional()
13
+ @IsString()
14
+ @ApiProperty()
15
+ name: string;
16
+ @IsNotEmpty()
17
+ @IsOptional()
18
+ @IsJSON()
19
+ @ApiProperty()
20
+ layoutJson: any;
21
+ @IsOptional()
22
+ @ApiProperty()
23
+ @IsArray()
24
+ @ValidateNested({ each: true })
25
+ @Type(() => UpdateDashboardVariableDto)
26
+ dashboardVariables: UpdateDashboardVariableDto[];
27
+ @IsOptional()
28
+ @IsArray()
29
+ @ApiProperty()
30
+ dashboardVariablesIds: number[];
31
+ @IsString()
32
+ @IsOptional()
33
+ @ApiProperty()
34
+ dashboardVariablesCommand: string;
35
+ @IsOptional()
36
+ @ApiProperty()
37
+ @IsArray()
38
+ @ValidateNested({ each: true })
39
+ @Type(() => UpdateDashboardQuestionDto)
40
+ questions: UpdateDashboardQuestionDto[];
41
+ @IsOptional()
42
+ @IsArray()
43
+ @ApiProperty()
44
+ questionsIds: number[];
45
+ @IsString()
46
+ @IsOptional()
47
+ @ApiProperty()
48
+ questionsCommand: string;
49
+ @IsOptional()
50
+ @IsInt()
51
+ @ApiProperty()
52
+ moduleId: number;
53
+ @IsString()
54
+ @IsOptional()
55
+ @ApiProperty()
56
+ moduleUserKey: string;
57
+ }
@@ -0,0 +1,39 @@
1
+ import { CommonEntity } from 'src/entities/common.entity'
2
+ import {Entity, JoinColumn, ManyToOne, Index, Column} from 'typeorm';
3
+ import { User } from 'src/entities/user.entity'
4
+ @Entity("ss_ai_interactions")
5
+ export class AiInteraction extends CommonEntity{
6
+ @Index()
7
+ @ManyToOne(() => User, { onDelete: "CASCADE", nullable: false })
8
+ @JoinColumn()
9
+ user: User;
10
+
11
+ @Index()
12
+ @Column({ type: "varchar" })
13
+ threadId: string;
14
+
15
+ @Column({ type: "varchar" })
16
+ role: string;
17
+
18
+ @Column({ type: "text" })
19
+ message: string;
20
+
21
+ @Column({ type: "varchar", nullable: true })
22
+ contentType: string;
23
+
24
+ @Index()
25
+ @Column({ type: "varchar", nullable: true })
26
+ status: string;
27
+
28
+ @Column({ type: "text", nullable: true })
29
+ errorMessage: string;
30
+
31
+ @Column({ type: "varchar", nullable: true })
32
+ modelUsed: string;
33
+
34
+ @Column({ type: "integer", nullable: true })
35
+ responseTimeMs: number;
36
+
37
+ @Column({ type: "jsonb", nullable: true })
38
+ metadata: any;
39
+ }
@@ -0,0 +1,25 @@
1
+ import { CommonEntity } from 'src/entities/common.entity'
2
+ import { Entity, Column, Index, JoinColumn, ManyToOne } from 'typeorm';
3
+ import { DashboardQuestion } from 'src/entities/dashboard-question.entity'
4
+
5
+ @Entity("ss_dashboard_question_sql_dataset_config")
6
+ export class DashboardQuestionSqlDatasetConfig extends CommonEntity {
7
+ @Index({ unique: true })
8
+ @Column({ type: "varchar" })
9
+ datasetName: string;
10
+ @Column({ type: "varchar" })
11
+ datasetDisplayName: string;
12
+ @Column({ type: "text", nullable: true })
13
+ description: string;
14
+ @Column({ type: "text" })
15
+ sql: string;
16
+ @Column({ type: "varchar" })
17
+ labelColumnName: string;
18
+ @Column({ type: "varchar" })
19
+ valueColumnName: string;
20
+ @ManyToOne(() => DashboardQuestion, { onDelete: "CASCADE", nullable: false })
21
+ @JoinColumn()
22
+ question: DashboardQuestion;
23
+ @Column({ type: "text", nullable: true })
24
+ options: any;
25
+ }
@@ -0,0 +1,33 @@
1
+ import { CommonEntity } from 'src/entities/common.entity'
2
+ import { Entity, Column, Index, JoinColumn, ManyToOne, OneToMany } from 'typeorm';
3
+ import { Dashboard } from 'src/entities/dashboard.entity';
4
+ import { DashboardQuestionSqlDatasetConfig } from 'src/entities/dashboard-question-sql-dataset-config.entity'
5
+
6
+ @Entity("ss_dashboard_question")
7
+ export class DashboardQuestion extends CommonEntity {
8
+ @Index({ unique: true })
9
+ @Column({ type: "varchar" })
10
+ name: string;
11
+ @Index()
12
+ @Column({})
13
+ sourceType: string;
14
+ @Index()
15
+ @Column({})
16
+ visualisedAs: string;
17
+ @Column({ type: "varchar", nullable: true })
18
+ providerName: string;
19
+ @ManyToOne(() => Dashboard, { onDelete: "CASCADE", nullable: true })
20
+ @JoinColumn()
21
+ dashboard: Dashboard;
22
+ @OneToMany(() => DashboardQuestionSqlDatasetConfig, dashboardQuestionSqlDatasetConfig => dashboardQuestionSqlDatasetConfig.question, { cascade: true })
23
+ questionSqlDatasetConfigs: DashboardQuestionSqlDatasetConfig[];
24
+ @Column({ type: "jsonb", nullable: true })
25
+ chartOptions: any;
26
+ @Column({ type: "text", nullable: true })
27
+ labelSql: string;
28
+ @Column({ type: "text", nullable: true })
29
+ kpiSql: string;
30
+
31
+ @Column({ type: "integer", nullable: true })
32
+ sequenceNumber: number;
33
+ }
@@ -0,0 +1,30 @@
1
+ import { CommonEntity } from 'src/entities/common.entity'
2
+ import {Entity, Column, Index, JoinColumn, ManyToOne} from 'typeorm';
3
+ import { Dashboard } from 'src/entities/dashboard.entity'
4
+
5
+ @Entity("ss_dashboard_variable")
6
+ export class DashboardVariable extends CommonEntity {
7
+ @Index({ unique: true })
8
+ @Column({ type: "varchar" })
9
+ variableName: string;
10
+ @Index()
11
+ @Column({ type: "varchar" })
12
+ variableType: string;
13
+ @Column({ type: "jsonb", nullable: true })
14
+ selectionStaticValues: any;
15
+ @Column({ nullable: true })
16
+ selectionDynamicSourceType: string;
17
+ @Column({ type: "text", nullable: true })
18
+ selectionDynamicSQL: string;
19
+ @Column({ type: "varchar", nullable: true })
20
+ selectionDynamicProviderName: string;
21
+ @Column({ type: "boolean", nullable: true, default: true })
22
+ isMultiSelect: boolean = true;
23
+ @ManyToOne(() => Dashboard, { onDelete: "CASCADE", nullable: true })
24
+ @JoinColumn()
25
+ dashboard: Dashboard;
26
+ @Column({ type: "text", nullable: true })
27
+ defaultValue: string;
28
+ @Column({ type: "varchar", nullable: true })
29
+ defaultOperator: string;
30
+ }
@@ -0,0 +1,21 @@
1
+ import { CommonEntity } from 'src/entities/common.entity'
2
+ import { Entity, Column, Index, OneToMany, JoinColumn, ManyToOne } from 'typeorm';
3
+ import { DashboardVariable } from 'src/entities/dashboard-variable.entity';
4
+ import { DashboardQuestion } from 'src/entities/dashboard-question.entity';
5
+ import { ModuleMetadata } from 'src/entities/module-metadata.entity'
6
+
7
+ @Entity("ss_dashboard")
8
+ export class Dashboard extends CommonEntity {
9
+ @Index({ unique: true })
10
+ @Column({ type: "varchar" })
11
+ name: string;
12
+ @Column({ type: "text" })
13
+ layoutJson: any;
14
+ @OneToMany(() => DashboardVariable, dashboardVariable => dashboardVariable.dashboard, { cascade: true })
15
+ dashboardVariables: DashboardVariable[];
16
+ @OneToMany(() => DashboardQuestion, dashboardQuestion => dashboardQuestion.dashboard, { cascade: true })
17
+ questions: DashboardQuestion[];
18
+ @ManyToOne(() => ModuleMetadata, { onDelete: "CASCADE", nullable: false })
19
+ @JoinColumn()
20
+ module: ModuleMetadata;
21
+ }