@things-factory/kpi 10.1.247 → 10.1.248

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 (409) hide show
  1. package/package.json +3 -3
  2. package/dist-client/bootstrap.d.ts +0 -2
  3. package/dist-client/bootstrap.js +0 -7
  4. package/dist-client/bootstrap.js.map +0 -1
  5. package/dist-client/charts/kpi-boxplot-chart.d.ts +0 -24
  6. package/dist-client/charts/kpi-boxplot-chart.js +0 -324
  7. package/dist-client/charts/kpi-boxplot-chart.js.map +0 -1
  8. package/dist-client/charts/kpi-mini-trend-chart.d.ts +0 -14
  9. package/dist-client/charts/kpi-mini-trend-chart.js +0 -148
  10. package/dist-client/charts/kpi-mini-trend-chart.js.map +0 -1
  11. package/dist-client/charts/kpi-radar-chart.d.ts +0 -16
  12. package/dist-client/charts/kpi-radar-chart.js +0 -138
  13. package/dist-client/charts/kpi-radar-chart.js.map +0 -1
  14. package/dist-client/charts/kpi-trend-chart.d.ts +0 -25
  15. package/dist-client/charts/kpi-trend-chart.js +0 -186
  16. package/dist-client/charts/kpi-trend-chart.js.map +0 -1
  17. package/dist-client/google-map/common-google-map.d.ts +0 -34
  18. package/dist-client/google-map/common-google-map.js +0 -333
  19. package/dist-client/google-map/common-google-map.js.map +0 -1
  20. package/dist-client/google-map/google-map-loader.d.ts +0 -8
  21. package/dist-client/google-map/google-map-loader.js +0 -22
  22. package/dist-client/google-map/google-map-loader.js.map +0 -1
  23. package/dist-client/index.d.ts +0 -1
  24. package/dist-client/index.js +0 -2
  25. package/dist-client/index.js.map +0 -1
  26. package/dist-client/pages/kpi/kpi-grade-editor.d.ts +0 -35
  27. package/dist-client/pages/kpi/kpi-grade-editor.js +0 -165
  28. package/dist-client/pages/kpi/kpi-grade-editor.js.map +0 -1
  29. package/dist-client/pages/kpi/kpi-importer.d.ts +0 -23
  30. package/dist-client/pages/kpi/kpi-importer.js +0 -92
  31. package/dist-client/pages/kpi/kpi-importer.js.map +0 -1
  32. package/dist-client/pages/kpi/kpi-list-page.d.ts +0 -136
  33. package/dist-client/pages/kpi/kpi-list-page.js +0 -948
  34. package/dist-client/pages/kpi/kpi-list-page.js.map +0 -1
  35. package/dist-client/pages/kpi/kpi-overview-sample.d.ts +0 -36
  36. package/dist-client/pages/kpi/kpi-overview-sample.js +0 -264
  37. package/dist-client/pages/kpi/kpi-overview-sample.js.map +0 -1
  38. package/dist-client/pages/kpi/kpi-overview.d.ts +0 -14
  39. package/dist-client/pages/kpi/kpi-overview.js +0 -361
  40. package/dist-client/pages/kpi/kpi-overview.js.map +0 -1
  41. package/dist-client/pages/kpi/kpi-tree-page.d.ts +0 -51
  42. package/dist-client/pages/kpi/kpi-tree-page.js +0 -355
  43. package/dist-client/pages/kpi/kpi-tree-page.js.map +0 -1
  44. package/dist-client/pages/kpi/kpi-view.d.ts +0 -12
  45. package/dist-client/pages/kpi/kpi-view.js +0 -193
  46. package/dist-client/pages/kpi/kpi-view.js.map +0 -1
  47. package/dist-client/pages/kpi/kpi-viz-editor.d.ts +0 -19
  48. package/dist-client/pages/kpi/kpi-viz-editor.js +0 -562
  49. package/dist-client/pages/kpi/kpi-viz-editor.js.map +0 -1
  50. package/dist-client/pages/kpi-dashboard/cards/kpi-level1-card.d.ts +0 -17
  51. package/dist-client/pages/kpi-dashboard/cards/kpi-level1-card.js +0 -279
  52. package/dist-client/pages/kpi-dashboard/cards/kpi-level1-card.js.map +0 -1
  53. package/dist-client/pages/kpi-dashboard/cards/kpi-level2-comparison.d.ts +0 -19
  54. package/dist-client/pages/kpi-dashboard/cards/kpi-level2-comparison.js +0 -385
  55. package/dist-client/pages/kpi-dashboard/cards/kpi-level2-comparison.js.map +0 -1
  56. package/dist-client/pages/kpi-dashboard/cards/kpi-level3-comparison.d.ts +0 -23
  57. package/dist-client/pages/kpi-dashboard/cards/kpi-level3-comparison.js +0 -465
  58. package/dist-client/pages/kpi-dashboard/cards/kpi-level3-comparison.js.map +0 -1
  59. package/dist-client/pages/kpi-dashboard/components/kpi-chart-toggle.d.ts +0 -8
  60. package/dist-client/pages/kpi-dashboard/components/kpi-chart-toggle.js +0 -78
  61. package/dist-client/pages/kpi-dashboard/components/kpi-chart-toggle.js.map +0 -1
  62. package/dist-client/pages/kpi-dashboard/components/kpi-left-panel.d.ts +0 -24
  63. package/dist-client/pages/kpi-dashboard/components/kpi-left-panel.js +0 -440
  64. package/dist-client/pages/kpi-dashboard/components/kpi-left-panel.js.map +0 -1
  65. package/dist-client/pages/kpi-dashboard/components/kpi-map-panel.d.ts +0 -33
  66. package/dist-client/pages/kpi-dashboard/components/kpi-map-panel.js +0 -444
  67. package/dist-client/pages/kpi-dashboard/components/kpi-map-panel.js.map +0 -1
  68. package/dist-client/pages/kpi-dashboard/components/kpi-region-popup.d.ts +0 -23
  69. package/dist-client/pages/kpi-dashboard/components/kpi-region-popup.js +0 -369
  70. package/dist-client/pages/kpi-dashboard/components/kpi-region-popup.js.map +0 -1
  71. package/dist-client/pages/kpi-dashboard/kpi-alert-panel.d.ts +0 -18
  72. package/dist-client/pages/kpi-dashboard/kpi-alert-panel.js +0 -128
  73. package/dist-client/pages/kpi-dashboard/kpi-alert-panel.js.map +0 -1
  74. package/dist-client/pages/kpi-dashboard/kpi-dashboard-map.d.ts +0 -31
  75. package/dist-client/pages/kpi-dashboard/kpi-dashboard-map.js +0 -493
  76. package/dist-client/pages/kpi-dashboard/kpi-dashboard-map.js.map +0 -1
  77. package/dist-client/pages/kpi-dashboard/kpi-dashboard.d.ts +0 -50
  78. package/dist-client/pages/kpi-dashboard/kpi-dashboard.js +0 -884
  79. package/dist-client/pages/kpi-dashboard/kpi-dashboard.js.map +0 -1
  80. package/dist-client/pages/kpi-dashboard/kpi-grade-visualization.d.ts +0 -12
  81. package/dist-client/pages/kpi-dashboard/kpi-grade-visualization.js +0 -82
  82. package/dist-client/pages/kpi-dashboard/kpi-grade-visualization.js.map +0 -1
  83. package/dist-client/pages/kpi-dashboard/kpi-history-viewer.d.ts +0 -11
  84. package/dist-client/pages/kpi-dashboard/kpi-history-viewer.js +0 -65
  85. package/dist-client/pages/kpi-dashboard/kpi-history-viewer.js.map +0 -1
  86. package/dist-client/pages/kpi-dashboard/kpi-list-summary.d.ts +0 -13
  87. package/dist-client/pages/kpi-dashboard/kpi-list-summary.js +0 -115
  88. package/dist-client/pages/kpi-dashboard/kpi-list-summary.js.map +0 -1
  89. package/dist-client/pages/kpi-dashboard/kpi-performance-summary.d.ts +0 -15
  90. package/dist-client/pages/kpi-dashboard/kpi-performance-summary.js +0 -146
  91. package/dist-client/pages/kpi-dashboard/kpi-performance-summary.js.map +0 -1
  92. package/dist-client/pages/kpi-dashboard/kpi-value-entry.d.ts +0 -7
  93. package/dist-client/pages/kpi-dashboard/kpi-value-entry.js +0 -86
  94. package/dist-client/pages/kpi-dashboard/kpi-value-entry.js.map +0 -1
  95. package/dist-client/pages/kpi-history/kpi-history-list-page.d.ts +0 -21
  96. package/dist-client/pages/kpi-history/kpi-history-list-page.js +0 -160
  97. package/dist-client/pages/kpi-history/kpi-history-list-page.js.map +0 -1
  98. package/dist-client/pages/kpi-metric/kpi-metric-importer.d.ts +0 -23
  99. package/dist-client/pages/kpi-metric/kpi-metric-importer.js +0 -92
  100. package/dist-client/pages/kpi-metric/kpi-metric-importer.js.map +0 -1
  101. package/dist-client/pages/kpi-metric/kpi-metric-list-page.d.ts +0 -65
  102. package/dist-client/pages/kpi-metric/kpi-metric-list-page.js +0 -415
  103. package/dist-client/pages/kpi-metric/kpi-metric-list-page.js.map +0 -1
  104. package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.d.ts +0 -52
  105. package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.js +0 -678
  106. package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.js.map +0 -1
  107. package/dist-client/pages/kpi-metric-value/kpi-metric-value-importer.d.ts +0 -23
  108. package/dist-client/pages/kpi-metric-value/kpi-metric-value-importer.js +0 -75
  109. package/dist-client/pages/kpi-metric-value/kpi-metric-value-importer.js.map +0 -1
  110. package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.d.ts +0 -64
  111. package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.js +0 -311
  112. package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.js.map +0 -1
  113. package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-form.d.ts +0 -12
  114. package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-form.js +0 -175
  115. package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-form.js.map +0 -1
  116. package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-page.d.ts +0 -35
  117. package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-page.js +0 -161
  118. package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-page.js.map +0 -1
  119. package/dist-client/pages/kpi-statistic/kpi-statistic-editor-page.d.ts +0 -47
  120. package/dist-client/pages/kpi-statistic/kpi-statistic-editor-page.js +0 -655
  121. package/dist-client/pages/kpi-statistic/kpi-statistic-editor-page.js.map +0 -1
  122. package/dist-client/pages/kpi-statistic/kpi-statistic-importer.d.ts +0 -23
  123. package/dist-client/pages/kpi-statistic/kpi-statistic-importer.js +0 -92
  124. package/dist-client/pages/kpi-statistic/kpi-statistic-importer.js.map +0 -1
  125. package/dist-client/pages/kpi-statistic/kpi-statistic-list-page.d.ts +0 -65
  126. package/dist-client/pages/kpi-statistic/kpi-statistic-list-page.js +0 -416
  127. package/dist-client/pages/kpi-statistic/kpi-statistic-list-page.js.map +0 -1
  128. package/dist-client/pages/kpi-value/kpi-value-editor-page.d.ts +0 -50
  129. package/dist-client/pages/kpi-value/kpi-value-editor-page.js +0 -700
  130. package/dist-client/pages/kpi-value/kpi-value-editor-page.js.map +0 -1
  131. package/dist-client/pages/kpi-value/kpi-value-importer.d.ts +0 -23
  132. package/dist-client/pages/kpi-value/kpi-value-importer.js +0 -92
  133. package/dist-client/pages/kpi-value/kpi-value-importer.js.map +0 -1
  134. package/dist-client/pages/kpi-value/kpi-value-list-page.d.ts +0 -73
  135. package/dist-client/pages/kpi-value/kpi-value-list-page.js +0 -403
  136. package/dist-client/pages/kpi-value/kpi-value-list-page.js.map +0 -1
  137. package/dist-client/route.d.ts +0 -1
  138. package/dist-client/route.js +0 -47
  139. package/dist-client/route.js.map +0 -1
  140. package/dist-client/tsconfig.tsbuildinfo +0 -1
  141. package/dist-client/viewparts/kpi-metric-input.d.ts +0 -23
  142. package/dist-client/viewparts/kpi-metric-input.js +0 -140
  143. package/dist-client/viewparts/kpi-metric-input.js.map +0 -1
  144. package/dist-client/viewparts/kpi-metric-meta-editor.d.ts +0 -36
  145. package/dist-client/viewparts/kpi-metric-meta-editor.js +0 -321
  146. package/dist-client/viewparts/kpi-metric-meta-editor.js.map +0 -1
  147. package/dist-client/viewparts/metric-input-hint.d.ts +0 -26
  148. package/dist-client/viewparts/metric-input-hint.js +0 -19
  149. package/dist-client/viewparts/metric-input-hint.js.map +0 -1
  150. package/dist-client/viewparts/metric-input.test.d.ts +0 -1
  151. package/dist-client/viewparts/metric-input.test.js +0 -43
  152. package/dist-client/viewparts/metric-input.test.js.map +0 -1
  153. package/dist-client/viewparts/metric-renderer-registry.d.ts +0 -18
  154. package/dist-client/viewparts/metric-renderer-registry.js +0 -29
  155. package/dist-client/viewparts/metric-renderer-registry.js.map +0 -1
  156. package/dist-client/viewparts/ox-grist-editor-metric-input-hint.d.ts +0 -19
  157. package/dist-client/viewparts/ox-grist-editor-metric-input-hint.js +0 -76
  158. package/dist-client/viewparts/ox-grist-editor-metric-input-hint.js.map +0 -1
  159. package/dist-server/calculator/calculator.test.d.ts +0 -1
  160. package/dist-server/calculator/calculator.test.js +0 -126
  161. package/dist-server/calculator/calculator.test.js.map +0 -1
  162. package/dist-server/calculator/evaluator.d.ts +0 -8
  163. package/dist-server/calculator/evaluator.js +0 -42
  164. package/dist-server/calculator/evaluator.js.map +0 -1
  165. package/dist-server/calculator/functions.d.ts +0 -3
  166. package/dist-server/calculator/functions.js +0 -62
  167. package/dist-server/calculator/functions.js.map +0 -1
  168. package/dist-server/calculator/index.d.ts +0 -6
  169. package/dist-server/calculator/index.js +0 -10
  170. package/dist-server/calculator/index.js.map +0 -1
  171. package/dist-server/calculator/parser.d.ts +0 -34
  172. package/dist-server/calculator/parser.js +0 -185
  173. package/dist-server/calculator/parser.js.map +0 -1
  174. package/dist-server/calculator/provider.d.ts +0 -8
  175. package/dist-server/calculator/provider.js +0 -13
  176. package/dist-server/calculator/provider.js.map +0 -1
  177. package/dist-server/calculator/score.d.ts +0 -21
  178. package/dist-server/calculator/score.js +0 -36
  179. package/dist-server/calculator/score.js.map +0 -1
  180. package/dist-server/calculator/score.test.d.ts +0 -1
  181. package/dist-server/calculator/score.test.js +0 -47
  182. package/dist-server/calculator/score.test.js.map +0 -1
  183. package/dist-server/calculator/validate.d.ts +0 -15
  184. package/dist-server/calculator/validate.js +0 -30
  185. package/dist-server/calculator/validate.js.map +0 -1
  186. package/dist-server/calculator/validate.test.d.ts +0 -1
  187. package/dist-server/calculator/validate.test.js +0 -45
  188. package/dist-server/calculator/validate.test.js.map +0 -1
  189. package/dist-server/controllers/index.d.ts +0 -2
  190. package/dist-server/controllers/index.js +0 -6
  191. package/dist-server/controllers/index.js.map +0 -1
  192. package/dist-server/controllers/kpi-metric-value-provider.d.ts +0 -11
  193. package/dist-server/controllers/kpi-metric-value-provider.js +0 -97
  194. package/dist-server/controllers/kpi-metric-value-provider.js.map +0 -1
  195. package/dist-server/controllers/kpi-value-provider.d.ts +0 -11
  196. package/dist-server/controllers/kpi-value-provider.js +0 -50
  197. package/dist-server/controllers/kpi-value-provider.js.map +0 -1
  198. package/dist-server/index.d.ts +0 -5
  199. package/dist-server/index.js +0 -9
  200. package/dist-server/index.js.map +0 -1
  201. package/dist-server/migrations/1752190849680-seed-kpi-metrics.d.ts +0 -6
  202. package/dist-server/migrations/1752190849680-seed-kpi-metrics.js +0 -102
  203. package/dist-server/migrations/1752190849680-seed-kpi-metrics.js.map +0 -1
  204. package/dist-server/migrations/1752190849681-seed-kpi.d.ts +0 -5
  205. package/dist-server/migrations/1752190849681-seed-kpi.js +0 -315
  206. package/dist-server/migrations/1752190849681-seed-kpi.js.map +0 -1
  207. package/dist-server/migrations/1752192090123-add-grades-to-kpi.d.ts +0 -7
  208. package/dist-server/migrations/1752192090123-add-grades-to-kpi.js +0 -51
  209. package/dist-server/migrations/1752192090123-add-grades-to-kpi.js.map +0 -1
  210. package/dist-server/migrations/1752192090124-add-kpi-statistics.d.ts +0 -5
  211. package/dist-server/migrations/1752192090124-add-kpi-statistics.js +0 -710
  212. package/dist-server/migrations/1752192090124-add-kpi-statistics.js.map +0 -1
  213. package/dist-server/migrations/1752192090128-seed-kpi-org-scope.d.ts +0 -6
  214. package/dist-server/migrations/1752192090128-seed-kpi-org-scope.js +0 -111
  215. package/dist-server/migrations/1752192090128-seed-kpi-org-scope.js.map +0 -1
  216. package/dist-server/migrations/1752192090129-seed-kpi-values.d.ts +0 -6
  217. package/dist-server/migrations/1752192090129-seed-kpi-values.js +0 -187
  218. package/dist-server/migrations/1752192090129-seed-kpi-values.js.map +0 -1
  219. package/dist-server/migrations/1752192090200-add-meta-to-kpi-metric.d.ts +0 -10
  220. package/dist-server/migrations/1752192090200-add-meta-to-kpi-metric.js +0 -26
  221. package/dist-server/migrations/1752192090200-add-meta-to-kpi-metric.js.map +0 -1
  222. package/dist-server/migrations/1752192090201-backfill-kpi-metric-meta.d.ts +0 -11
  223. package/dist-server/migrations/1752192090201-backfill-kpi-metric-meta.js +0 -54
  224. package/dist-server/migrations/1752192090201-backfill-kpi-metric-meta.js.map +0 -1
  225. package/dist-server/migrations/grade-data/x11-performance-table.json +0 -962
  226. package/dist-server/migrations/grade-data/x12-performance-table.json +0 -611
  227. package/dist-server/migrations/grade-data/x14-performance-table.json +0 -42
  228. package/dist-server/migrations/grade-data/x21-performance-table.json +0 -889
  229. package/dist-server/migrations/grade-data/x22-performance-table.json +0 -1064
  230. package/dist-server/migrations/grade-data/x23-performance-table.json +0 -42
  231. package/dist-server/migrations/grade-data/x31-performance-table.json +0 -644
  232. package/dist-server/migrations/grade-data/x32-performance-table.json +0 -993
  233. package/dist-server/migrations/grade-data/x33-performance-table.json +0 -195
  234. package/dist-server/migrations/grade-data/x34-performance-table.json +0 -12
  235. package/dist-server/migrations/grade-data/x35-performance-table.json +0 -42
  236. package/dist-server/migrations/grade-data/x41-performance-table.json +0 -825
  237. package/dist-server/migrations/grade-data/x42-performance-table.json +0 -786
  238. package/dist-server/migrations/grade-data/x43-performance-table.json +0 -12
  239. package/dist-server/migrations/grade-data/x44-performance-table.json +0 -42
  240. package/dist-server/migrations/grade-data/x51-performance-table.json +0 -924
  241. package/dist-server/migrations/grade-data/x52-performance-table.json +0 -42
  242. package/dist-server/migrations/grade-data/x61-performance-table.json +0 -261
  243. package/dist-server/migrations/grade-data/x62-performance-table.json +0 -42
  244. package/dist-server/migrations/index.d.ts +0 -1
  245. package/dist-server/migrations/index.js +0 -12
  246. package/dist-server/migrations/index.js.map +0 -1
  247. package/dist-server/migrations/seed-data/kpi-metrics-seed.json +0 -517
  248. package/dist-server/migrations/seed-data/kpi-org-scope-seed.json +0 -1676
  249. package/dist-server/migrations/seed-data/kpi-scopes-seed.json +0 -121
  250. package/dist-server/migrations/seed-data/kpi-values-seed.json +0 -402
  251. package/dist-server/migrations/seed-data/kpis-seed.json +0 -488
  252. package/dist-server/migrations/seed-data/scope-definitions-seed.json +0 -90
  253. package/dist-server/routes.d.ts +0 -1
  254. package/dist-server/routes.js +0 -72
  255. package/dist-server/routes.js.map +0 -1
  256. package/dist-server/service/index.d.ts +0 -15
  257. package/dist-server/service/index.js +0 -49
  258. package/dist-server/service/index.js.map +0 -1
  259. package/dist-server/service/kpi/aggregate-kpi.d.ts +0 -8
  260. package/dist-server/service/kpi/aggregate-kpi.js +0 -123
  261. package/dist-server/service/kpi/aggregate-kpi.js.map +0 -1
  262. package/dist-server/service/kpi/event-subscriber.d.ts +0 -9
  263. package/dist-server/service/kpi/event-subscriber.js +0 -31
  264. package/dist-server/service/kpi/event-subscriber.js.map +0 -1
  265. package/dist-server/service/kpi/index.d.ts +0 -8
  266. package/dist-server/service/kpi/index.js +0 -12
  267. package/dist-server/service/kpi/index.js.map +0 -1
  268. package/dist-server/service/kpi/kpi-formula.service.d.ts +0 -49
  269. package/dist-server/service/kpi/kpi-formula.service.js +0 -165
  270. package/dist-server/service/kpi/kpi-formula.service.js.map +0 -1
  271. package/dist-server/service/kpi/kpi-grade.types.d.ts +0 -22
  272. package/dist-server/service/kpi/kpi-grade.types.js +0 -3
  273. package/dist-server/service/kpi/kpi-grade.types.js.map +0 -1
  274. package/dist-server/service/kpi/kpi-history.d.ts +0 -29
  275. package/dist-server/service/kpi/kpi-history.js +0 -148
  276. package/dist-server/service/kpi/kpi-history.js.map +0 -1
  277. package/dist-server/service/kpi/kpi-mutation.d.ts +0 -14
  278. package/dist-server/service/kpi/kpi-mutation.js +0 -553
  279. package/dist-server/service/kpi/kpi-mutation.js.map +0 -1
  280. package/dist-server/service/kpi/kpi-query.d.ts +0 -24
  281. package/dist-server/service/kpi/kpi-query.js +0 -309
  282. package/dist-server/service/kpi/kpi-query.js.map +0 -1
  283. package/dist-server/service/kpi/kpi-type.d.ts +0 -48
  284. package/dist-server/service/kpi/kpi-type.js +0 -221
  285. package/dist-server/service/kpi/kpi-type.js.map +0 -1
  286. package/dist-server/service/kpi/kpi.d.ts +0 -130
  287. package/dist-server/service/kpi/kpi.js +0 -356
  288. package/dist-server/service/kpi/kpi.js.map +0 -1
  289. package/dist-server/service/kpi-alert/index.d.ts +0 -2
  290. package/dist-server/service/kpi-alert/index.js +0 -6
  291. package/dist-server/service/kpi-alert/index.js.map +0 -1
  292. package/dist-server/service/kpi-alert/kpi-alert-query.d.ts +0 -4
  293. package/dist-server/service/kpi-alert/kpi-alert-query.js +0 -72
  294. package/dist-server/service/kpi-alert/kpi-alert-query.js.map +0 -1
  295. package/dist-server/service/kpi-alert/kpi-alert-type.d.ts +0 -8
  296. package/dist-server/service/kpi-alert/kpi-alert-type.js +0 -33
  297. package/dist-server/service/kpi-alert/kpi-alert-type.js.map +0 -1
  298. package/dist-server/service/kpi-metric/aggregate-kpi-metric.d.ts +0 -8
  299. package/dist-server/service/kpi-metric/aggregate-kpi-metric.js +0 -126
  300. package/dist-server/service/kpi-metric/aggregate-kpi-metric.js.map +0 -1
  301. package/dist-server/service/kpi-metric/index.d.ts +0 -6
  302. package/dist-server/service/kpi-metric/index.js +0 -10
  303. package/dist-server/service/kpi-metric/index.js.map +0 -1
  304. package/dist-server/service/kpi-metric/kpi-metric-meta.d.ts +0 -46
  305. package/dist-server/service/kpi-metric/kpi-metric-meta.js +0 -27
  306. package/dist-server/service/kpi-metric/kpi-metric-meta.js.map +0 -1
  307. package/dist-server/service/kpi-metric/kpi-metric-meta.test.d.ts +0 -1
  308. package/dist-server/service/kpi-metric/kpi-metric-meta.test.js +0 -43
  309. package/dist-server/service/kpi-metric/kpi-metric-meta.test.js.map +0 -1
  310. package/dist-server/service/kpi-metric/kpi-metric-mutation.d.ts +0 -10
  311. package/dist-server/service/kpi-metric/kpi-metric-mutation.js +0 -296
  312. package/dist-server/service/kpi-metric/kpi-metric-mutation.js.map +0 -1
  313. package/dist-server/service/kpi-metric/kpi-metric-query.d.ts +0 -14
  314. package/dist-server/service/kpi-metric/kpi-metric-query.js +0 -126
  315. package/dist-server/service/kpi-metric/kpi-metric-query.js.map +0 -1
  316. package/dist-server/service/kpi-metric/kpi-metric-type.d.ts +0 -45
  317. package/dist-server/service/kpi-metric/kpi-metric-type.js +0 -177
  318. package/dist-server/service/kpi-metric/kpi-metric-type.js.map +0 -1
  319. package/dist-server/service/kpi-metric/kpi-metric.d.ts +0 -39
  320. package/dist-server/service/kpi-metric/kpi-metric.js +0 -174
  321. package/dist-server/service/kpi-metric/kpi-metric.js.map +0 -1
  322. package/dist-server/service/kpi-metric-value/index.d.ts +0 -6
  323. package/dist-server/service/kpi-metric-value/index.js +0 -10
  324. package/dist-server/service/kpi-metric-value/index.js.map +0 -1
  325. package/dist-server/service/kpi-metric-value/kpi-metric-value-mutation.d.ts +0 -11
  326. package/dist-server/service/kpi-metric-value/kpi-metric-value-mutation.js +0 -283
  327. package/dist-server/service/kpi-metric-value/kpi-metric-value-mutation.js.map +0 -1
  328. package/dist-server/service/kpi-metric-value/kpi-metric-value-query.d.ts +0 -13
  329. package/dist-server/service/kpi-metric-value/kpi-metric-value-query.js +0 -106
  330. package/dist-server/service/kpi-metric-value/kpi-metric-value-query.js.map +0 -1
  331. package/dist-server/service/kpi-metric-value/kpi-metric-value-type.d.ts +0 -26
  332. package/dist-server/service/kpi-metric-value/kpi-metric-value-type.js +0 -112
  333. package/dist-server/service/kpi-metric-value/kpi-metric-value-type.js.map +0 -1
  334. package/dist-server/service/kpi-metric-value/kpi-metric-value.d.ts +0 -23
  335. package/dist-server/service/kpi-metric-value/kpi-metric-value.js +0 -107
  336. package/dist-server/service/kpi-metric-value/kpi-metric-value.js.map +0 -1
  337. package/dist-server/service/kpi-org-scope/index.d.ts +0 -5
  338. package/dist-server/service/kpi-org-scope/index.js +0 -9
  339. package/dist-server/service/kpi-org-scope/index.js.map +0 -1
  340. package/dist-server/service/kpi-org-scope/kpi-org-scope-mutation.d.ts +0 -8
  341. package/dist-server/service/kpi-org-scope/kpi-org-scope-mutation.js +0 -170
  342. package/dist-server/service/kpi-org-scope/kpi-org-scope-mutation.js.map +0 -1
  343. package/dist-server/service/kpi-org-scope/kpi-org-scope-query.d.ts +0 -14
  344. package/dist-server/service/kpi-org-scope/kpi-org-scope-query.js +0 -152
  345. package/dist-server/service/kpi-org-scope/kpi-org-scope-query.js.map +0 -1
  346. package/dist-server/service/kpi-org-scope/kpi-org-scope-type.d.ts +0 -26
  347. package/dist-server/service/kpi-org-scope/kpi-org-scope-type.js +0 -101
  348. package/dist-server/service/kpi-org-scope/kpi-org-scope-type.js.map +0 -1
  349. package/dist-server/service/kpi-org-scope/kpi-org-scope.d.ts +0 -26
  350. package/dist-server/service/kpi-org-scope/kpi-org-scope.js +0 -135
  351. package/dist-server/service/kpi-org-scope/kpi-org-scope.js.map +0 -1
  352. package/dist-server/service/kpi-scope/index.d.ts +0 -9
  353. package/dist-server/service/kpi-scope/index.js +0 -14
  354. package/dist-server/service/kpi-scope/index.js.map +0 -1
  355. package/dist-server/service/kpi-scope/kpi-scope-mutation.d.ts +0 -9
  356. package/dist-server/service/kpi-scope/kpi-scope-mutation.js +0 -140
  357. package/dist-server/service/kpi-scope/kpi-scope-mutation.js.map +0 -1
  358. package/dist-server/service/kpi-scope/kpi-scope-query.d.ts +0 -11
  359. package/dist-server/service/kpi-scope/kpi-scope-query.js +0 -89
  360. package/dist-server/service/kpi-scope/kpi-scope-query.js.map +0 -1
  361. package/dist-server/service/kpi-scope/kpi-scope-type.d.ts +0 -35
  362. package/dist-server/service/kpi-scope/kpi-scope-type.js +0 -138
  363. package/dist-server/service/kpi-scope/kpi-scope-type.js.map +0 -1
  364. package/dist-server/service/kpi-scope/kpi-scope.d.ts +0 -38
  365. package/dist-server/service/kpi-scope/kpi-scope.js +0 -144
  366. package/dist-server/service/kpi-scope/kpi-scope.js.map +0 -1
  367. package/dist-server/service/kpi-statistic/index.d.ts +0 -6
  368. package/dist-server/service/kpi-statistic/index.js +0 -10
  369. package/dist-server/service/kpi-statistic/index.js.map +0 -1
  370. package/dist-server/service/kpi-statistic/kpi-statistic-batch.service.d.ts +0 -43
  371. package/dist-server/service/kpi-statistic/kpi-statistic-batch.service.js +0 -181
  372. package/dist-server/service/kpi-statistic/kpi-statistic-batch.service.js.map +0 -1
  373. package/dist-server/service/kpi-statistic/kpi-statistic-calculation.service.d.ts +0 -50
  374. package/dist-server/service/kpi-statistic/kpi-statistic-calculation.service.js +0 -324
  375. package/dist-server/service/kpi-statistic/kpi-statistic-calculation.service.js.map +0 -1
  376. package/dist-server/service/kpi-statistic/kpi-statistic-mutation.d.ts +0 -14
  377. package/dist-server/service/kpi-statistic/kpi-statistic-mutation.js +0 -279
  378. package/dist-server/service/kpi-statistic/kpi-statistic-mutation.js.map +0 -1
  379. package/dist-server/service/kpi-statistic/kpi-statistic-query.d.ts +0 -17
  380. package/dist-server/service/kpi-statistic/kpi-statistic-query.js +0 -183
  381. package/dist-server/service/kpi-statistic/kpi-statistic-query.js.map +0 -1
  382. package/dist-server/service/kpi-statistic/kpi-statistic-type.d.ts +0 -59
  383. package/dist-server/service/kpi-statistic/kpi-statistic-type.js +0 -200
  384. package/dist-server/service/kpi-statistic/kpi-statistic-type.js.map +0 -1
  385. package/dist-server/service/kpi-statistic/kpi-statistic.d.ts +0 -42
  386. package/dist-server/service/kpi-statistic/kpi-statistic.js +0 -210
  387. package/dist-server/service/kpi-statistic/kpi-statistic.js.map +0 -1
  388. package/dist-server/service/kpi-value/index.d.ts +0 -6
  389. package/dist-server/service/kpi-value/index.js +0 -10
  390. package/dist-server/service/kpi-value/index.js.map +0 -1
  391. package/dist-server/service/kpi-value/kpi-value-mutation.d.ts +0 -13
  392. package/dist-server/service/kpi-value/kpi-value-mutation.js +0 -447
  393. package/dist-server/service/kpi-value/kpi-value-mutation.js.map +0 -1
  394. package/dist-server/service/kpi-value/kpi-value-query.d.ts +0 -22
  395. package/dist-server/service/kpi-value/kpi-value-query.js +0 -149
  396. package/dist-server/service/kpi-value/kpi-value-query.js.map +0 -1
  397. package/dist-server/service/kpi-value/kpi-value-score.service.d.ts +0 -24
  398. package/dist-server/service/kpi-value/kpi-value-score.service.js +0 -61
  399. package/dist-server/service/kpi-value/kpi-value-score.service.js.map +0 -1
  400. package/dist-server/service/kpi-value/kpi-value-type.d.ts +0 -33
  401. package/dist-server/service/kpi-value/kpi-value-type.js +0 -156
  402. package/dist-server/service/kpi-value/kpi-value-type.js.map +0 -1
  403. package/dist-server/service/kpi-value/kpi-value.d.ts +0 -32
  404. package/dist-server/service/kpi-value/kpi-value.js +0 -175
  405. package/dist-server/service/kpi-value/kpi-value.js.map +0 -1
  406. package/dist-server/service/utils/value-date-util.d.ts +0 -4
  407. package/dist-server/service/utils/value-date-util.js +0 -117
  408. package/dist-server/service/utils/value-date-util.js.map +0 -1
  409. package/dist-server/tsconfig.tsbuildinfo +0 -1
@@ -1,149 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KpiValueQuery = void 0;
4
- const tslib_1 = require("tslib");
5
- const typeorm_1 = require("typeorm");
6
- const type_graphql_1 = require("type-graphql");
7
- const shell_1 = require("@things-factory/shell");
8
- const auth_base_1 = require("@things-factory/auth-base");
9
- const kpi_value_1 = require("./kpi-value");
10
- const kpi_value_type_1 = require("./kpi-value-type");
11
- const kpi_1 = require("../kpi/kpi");
12
- let KpiValueQuery = class KpiValueQuery {
13
- async kpiValue(id, context) {
14
- const { domain } = context.state;
15
- const domainIds = await (0, shell_1.getDomainIdsWithAncestors)(domain);
16
- return await (0, shell_1.getRepository)(kpi_value_1.KpiValue).findOne({
17
- where: { domain: { id: (0, typeorm_1.In)(domainIds) }, id }
18
- });
19
- }
20
- async kpiValues(params, context) {
21
- const { domain } = context.state;
22
- const domainIds = await (0, shell_1.getDomainIdsWithAncestors)(domain);
23
- const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
24
- domain: undefined,
25
- params,
26
- repository: (0, shell_1.getRepository)(kpi_value_1.KpiValue),
27
- searchables: ['kpi', 'group', 'valueDate']
28
- });
29
- queryBuilder.andWhere(`${queryBuilder.alias}.domain IN (:...ancestorDomainIds)`, {
30
- ancestorDomainIds: domainIds
31
- });
32
- const [items, total] = await queryBuilder.getManyAndCount();
33
- return { items, total };
34
- }
35
- /**
36
- * 같은 (domain, kpi, valueDate, kpiOrgScope) 좌표에서 version 이 가장 큰 row 만 반환.
37
- * 차트·최종 KPI 계산 등 "최신 상태" 만 필요한 사용처용.
38
- *
39
- * 구현: subquery 로 (domain, kpi, valueDate, kpiOrgScope) 그룹별 MAX(version) 를 구한 뒤
40
- * 본 테이블과 매칭. 기존 kpiValues 와 동일하게 ListParam (filters/sortings/pagination)
41
- * 지원, 도메인 inheritance 적용.
42
- */
43
- async latestKpiValues(params, context) {
44
- const { domain } = context.state;
45
- const domainIds = await (0, shell_1.getDomainIdsWithAncestors)(domain);
46
- const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
47
- domain: undefined,
48
- params,
49
- repository: (0, shell_1.getRepository)(kpi_value_1.KpiValue),
50
- searchables: ['kpi', 'group', 'valueDate']
51
- });
52
- queryBuilder.andWhere(`${queryBuilder.alias}.domain IN (:...ancestorDomainIds)`, {
53
- ancestorDomainIds: domainIds
54
- });
55
- // 같은 (domain, kpi, valueDate, kpiOrgScope) 좌표에서 가장 높은 version 만 통과.
56
- // 운영 DB 가 PostgreSQL 이라 DISTINCT ON 활용 — TypeORM QueryBuilder 의 정식 메서드.
57
- queryBuilder
58
- .distinctOn([
59
- `${queryBuilder.alias}.domainId`,
60
- `${queryBuilder.alias}.kpiId`,
61
- `${queryBuilder.alias}.valueDate`,
62
- `${queryBuilder.alias}.kpiOrgScope`
63
- ])
64
- /* DISTINCT ON reads its columns first in the order - in place of the list's own order. */
65
- .orderBy(`${queryBuilder.alias}.domainId`, 'ASC')
66
- .addOrderBy(`${queryBuilder.alias}.kpiId`, 'ASC')
67
- .addOrderBy(`${queryBuilder.alias}.valueDate`, 'ASC')
68
- .addOrderBy(`${queryBuilder.alias}.kpiOrgScope`, 'ASC')
69
- .addOrderBy(`${queryBuilder.alias}.version`, 'DESC');
70
- const items = await queryBuilder.getMany();
71
- return { items, total: items.length };
72
- }
73
- async domain(kpiValue) {
74
- return kpiValue.domainId && (await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: kpiValue.domainId }));
75
- }
76
- async updater(kpiValue) {
77
- return kpiValue.updaterId && (await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: kpiValue.updaterId }));
78
- }
79
- async creator(kpiValue) {
80
- return kpiValue.creatorId && (await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: kpiValue.creatorId }));
81
- }
82
- async kpi(kpiValue) {
83
- if (!kpiValue.kpiId)
84
- return null;
85
- return await (0, shell_1.getRepository)(kpi_1.Kpi).findOneBy({ id: kpiValue.kpiId });
86
- }
87
- };
88
- exports.KpiValueQuery = KpiValueQuery;
89
- tslib_1.__decorate([
90
- (0, type_graphql_1.Directive)('@privilege(category: "kpi", privilege: "query", domainOwnerGranted: true, superUserGranted: true)'),
91
- (0, type_graphql_1.Query)(returns => kpi_value_1.KpiValue, { nullable: true, description: 'Fetch a single KPI value by its unique identifier.' }),
92
- tslib_1.__param(0, (0, type_graphql_1.Arg)('id', { description: 'Unique identifier of the KPI value to fetch.' })),
93
- tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
94
- tslib_1.__metadata("design:type", Function),
95
- tslib_1.__metadata("design:paramtypes", [String, Object]),
96
- tslib_1.__metadata("design:returntype", Promise)
97
- ], KpiValueQuery.prototype, "kpiValue", null);
98
- tslib_1.__decorate([
99
- (0, type_graphql_1.Directive)('@privilege(category: "kpi", privilege: "query", domainOwnerGranted: true, superUserGranted: true)'),
100
- (0, type_graphql_1.Query)(returns => kpi_value_type_1.KpiValueList, { description: 'To fetch multiple KpiValues' }),
101
- tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
102
- tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
103
- tslib_1.__metadata("design:type", Function),
104
- tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
105
- tslib_1.__metadata("design:returntype", Promise)
106
- ], KpiValueQuery.prototype, "kpiValues", null);
107
- tslib_1.__decorate([
108
- (0, type_graphql_1.Directive)('@privilege(category: "kpi", privilege: "query", domainOwnerGranted: true, superUserGranted: true)'),
109
- (0, type_graphql_1.Query)(returns => kpi_value_type_1.KpiValueList, {
110
- description: 'Fetch latest-version KpiValues only — one row per (domain, kpi, valueDate, kpiOrgScope).'
111
- }),
112
- tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
113
- tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
114
- tslib_1.__metadata("design:type", Function),
115
- tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
116
- tslib_1.__metadata("design:returntype", Promise)
117
- ], KpiValueQuery.prototype, "latestKpiValues", null);
118
- tslib_1.__decorate([
119
- (0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
120
- tslib_1.__param(0, (0, type_graphql_1.Root)()),
121
- tslib_1.__metadata("design:type", Function),
122
- tslib_1.__metadata("design:paramtypes", [kpi_value_1.KpiValue]),
123
- tslib_1.__metadata("design:returntype", Promise)
124
- ], KpiValueQuery.prototype, "domain", null);
125
- tslib_1.__decorate([
126
- (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
127
- tslib_1.__param(0, (0, type_graphql_1.Root)()),
128
- tslib_1.__metadata("design:type", Function),
129
- tslib_1.__metadata("design:paramtypes", [kpi_value_1.KpiValue]),
130
- tslib_1.__metadata("design:returntype", Promise)
131
- ], KpiValueQuery.prototype, "updater", null);
132
- tslib_1.__decorate([
133
- (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
134
- tslib_1.__param(0, (0, type_graphql_1.Root)()),
135
- tslib_1.__metadata("design:type", Function),
136
- tslib_1.__metadata("design:paramtypes", [kpi_value_1.KpiValue]),
137
- tslib_1.__metadata("design:returntype", Promise)
138
- ], KpiValueQuery.prototype, "creator", null);
139
- tslib_1.__decorate([
140
- (0, type_graphql_1.FieldResolver)(type => kpi_1.Kpi),
141
- tslib_1.__param(0, (0, type_graphql_1.Root)()),
142
- tslib_1.__metadata("design:type", Function),
143
- tslib_1.__metadata("design:paramtypes", [kpi_value_1.KpiValue]),
144
- tslib_1.__metadata("design:returntype", Promise)
145
- ], KpiValueQuery.prototype, "kpi", null);
146
- exports.KpiValueQuery = KpiValueQuery = tslib_1.__decorate([
147
- (0, type_graphql_1.Resolver)(kpi_value_1.KpiValue)
148
- ], KpiValueQuery);
149
- //# sourceMappingURL=kpi-value-query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kpi-value-query.js","sourceRoot":"","sources":["../../../server/service/kpi-value/kpi-value-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\nimport { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive, Float } from 'type-graphql'\nimport {\n Domain,\n getQueryBuilderFromListParams,\n getRepository,\n ListParam,\n getDomainIdsWithAncestors\n} from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { KpiValue } from './kpi-value'\nimport { KpiValueList } from './kpi-value-type'\nimport { Kpi } from '../kpi/kpi'\nimport { KpiValueScoreService } from './kpi-value-score.service'\n\n@Resolver(KpiValue)\nexport class KpiValueQuery {\n @Directive('@privilege(category: \"kpi\", privilege: \"query\", domainOwnerGranted: true, superUserGranted: true)')\n @Query(returns => KpiValue!, { nullable: true, description: 'Fetch a single KPI value by its unique identifier.' })\n async kpiValue(\n @Arg('id', { description: 'Unique identifier of the KPI value to fetch.' }) id: string,\n @Ctx() context: ResolverContext\n ): Promise<KpiValue> {\n const { domain } = context.state\n const domainIds = await getDomainIdsWithAncestors(domain)\n\n return await getRepository(KpiValue).findOne({\n where: { domain: { id: In(domainIds) }, id }\n })\n }\n\n @Directive('@privilege(category: \"kpi\", privilege: \"query\", domainOwnerGranted: true, superUserGranted: true)')\n @Query(returns => KpiValueList, { description: 'To fetch multiple KpiValues' })\n async kpiValues(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<KpiValueList> {\n const { domain } = context.state\n const domainIds = await getDomainIdsWithAncestors(domain)\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain: undefined,\n params,\n repository: getRepository(KpiValue),\n searchables: ['kpi', 'group', 'valueDate']\n })\n\n queryBuilder.andWhere(`${queryBuilder.alias}.domain IN (:...ancestorDomainIds)`, {\n ancestorDomainIds: domainIds\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n /**\n * 같은 (domain, kpi, valueDate, kpiOrgScope) 좌표에서 version 이 가장 큰 row 만 반환.\n * 차트·최종 KPI 계산 등 \"최신 상태\" 만 필요한 사용처용.\n *\n * 구현: subquery 로 (domain, kpi, valueDate, kpiOrgScope) 그룹별 MAX(version) 를 구한 뒤\n * 본 테이블과 매칭. 기존 kpiValues 와 동일하게 ListParam (filters/sortings/pagination)\n * 지원, 도메인 inheritance 적용.\n */\n @Directive('@privilege(category: \"kpi\", privilege: \"query\", domainOwnerGranted: true, superUserGranted: true)')\n @Query(returns => KpiValueList, {\n description: 'Fetch latest-version KpiValues only — one row per (domain, kpi, valueDate, kpiOrgScope).'\n })\n async latestKpiValues(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<KpiValueList> {\n const { domain } = context.state\n const domainIds = await getDomainIdsWithAncestors(domain)\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain: undefined,\n params,\n repository: getRepository(KpiValue),\n searchables: ['kpi', 'group', 'valueDate']\n })\n\n queryBuilder.andWhere(`${queryBuilder.alias}.domain IN (:...ancestorDomainIds)`, {\n ancestorDomainIds: domainIds\n })\n\n // 같은 (domain, kpi, valueDate, kpiOrgScope) 좌표에서 가장 높은 version 만 통과.\n // 운영 DB 가 PostgreSQL 이라 DISTINCT ON 활용 — TypeORM QueryBuilder 의 정식 메서드.\n queryBuilder\n .distinctOn([\n `${queryBuilder.alias}.domainId`,\n `${queryBuilder.alias}.kpiId`,\n `${queryBuilder.alias}.valueDate`,\n `${queryBuilder.alias}.kpiOrgScope`\n ])\n /* DISTINCT ON reads its columns first in the order - in place of the list's own order. */\n .orderBy(`${queryBuilder.alias}.domainId`, 'ASC')\n .addOrderBy(`${queryBuilder.alias}.kpiId`, 'ASC')\n .addOrderBy(`${queryBuilder.alias}.valueDate`, 'ASC')\n .addOrderBy(`${queryBuilder.alias}.kpiOrgScope`, 'ASC')\n .addOrderBy(`${queryBuilder.alias}.version`, 'DESC')\n\n const items = await queryBuilder.getMany()\n\n return { items, total: items.length }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() kpiValue: KpiValue): Promise<Domain> {\n return kpiValue.domainId && (await getRepository(Domain).findOneBy({ id: kpiValue.domainId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() kpiValue: KpiValue): Promise<User> {\n return kpiValue.updaterId && (await getRepository(User).findOneBy({ id: kpiValue.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() kpiValue: KpiValue): Promise<User> {\n return kpiValue.creatorId && (await getRepository(User).findOneBy({ id: kpiValue.creatorId }))\n }\n\n @FieldResolver(type => Kpi)\n async kpi(@Root() kpiValue: KpiValue): Promise<Kpi | null> {\n if (!kpiValue.kpiId) return null\n return await getRepository(Kpi).findOneBy({ id: kpiValue.kpiId })\n }\n}\n"]}
@@ -1,24 +0,0 @@
1
- import { Kpi } from '../kpi/kpi';
2
- import { KpiValue } from './kpi-value';
3
- import { ScoreResult } from '../../calculator/score.js';
4
- export { ScoreResult };
5
- export declare class KpiValueScoreService {
6
- /**
7
- * scoreFormula를 사용한 성과 점수 계산 — 순수 로직은 calculator/score 에 위임.
8
- * 파싱/평가 예외는 여기서 로그 후 null (점수 계산 실패는 치명 아님).
9
- */
10
- calculateScoreFromFormula(kpi: Kpi, value: number): Promise<ScoreResult | null>;
11
- /**
12
- * KPI의 grades lookup table을 이용한 성과 점수 변환.
13
- * @deprecated 향후 grades 필드 제거 예정. scoreFormula로 대체 권장
14
- */
15
- calculateScoreFromLookup(kpi: Kpi, value: number): ScoreResult | null;
16
- /**
17
- * KpiValue 생성/수정 시 성과 점수 자동 계산 및 저장
18
- */
19
- calculateAndSaveScore(kpiValue: KpiValue, kpi: Kpi): Promise<void>;
20
- /**
21
- * 기존 KpiValue들의 성과 점수 재계산 (배치 처리)
22
- */
23
- recalculateScoresForKpi(kpiId: string, context: ResolverContext): Promise<void>;
24
- }
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KpiValueScoreService = void 0;
4
- const shell_1 = require("@things-factory/shell");
5
- const kpi_1 = require("../kpi/kpi");
6
- const kpi_value_1 = require("./kpi-value");
7
- const score_js_1 = require("../../calculator/score.js");
8
- class KpiValueScoreService {
9
- /**
10
- * scoreFormula를 사용한 성과 점수 계산 — 순수 로직은 calculator/score 에 위임.
11
- * 파싱/평가 예외는 여기서 로그 후 null (점수 계산 실패는 치명 아님).
12
- */
13
- async calculateScoreFromFormula(kpi, value) {
14
- try {
15
- return await (0, score_js_1.scoreFromFormula)(kpi.scoreFormula, value);
16
- }
17
- catch (error) {
18
- console.error(`Score formula evaluation for '${kpi.name}: ${kpi.scoreFormula}' error:`, error);
19
- return null;
20
- }
21
- }
22
- /**
23
- * KPI의 grades lookup table을 이용한 성과 점수 변환.
24
- * @deprecated 향후 grades 필드 제거 예정. scoreFormula로 대체 권장
25
- */
26
- calculateScoreFromLookup(kpi, value) {
27
- return (0, score_js_1.scoreFromLookup)(kpi.grades, value);
28
- }
29
- /**
30
- * KpiValue 생성/수정 시 성과 점수 자동 계산 및 저장
31
- */
32
- async calculateAndSaveScore(kpiValue, kpi) {
33
- // 1. scoreFormula 우선 시도
34
- let scoreResult = await this.calculateScoreFromFormula(kpi, kpiValue.value);
35
- // 2. scoreFormula가 없거나 실패하면 grades lookup table 사용 (deprecated)
36
- if (!scoreResult) {
37
- scoreResult = this.calculateScoreFromLookup(kpi, kpiValue.value);
38
- }
39
- if (scoreResult) {
40
- // KpiValue의 score 필드에 성과 점수 저장
41
- kpiValue.score = scoreResult.score;
42
- }
43
- }
44
- /**
45
- * 기존 KpiValue들의 성과 점수 재계산 (배치 처리)
46
- */
47
- async recalculateScoresForKpi(kpiId, context) {
48
- const kpi = await (0, shell_1.getRepository)(kpi_1.Kpi).findOne({ where: { id: kpiId } });
49
- if (!kpi)
50
- return;
51
- const kpiValues = await (0, shell_1.getRepository)(kpi_value_1.KpiValue).find({
52
- where: { kpiId, version: kpi.version }
53
- });
54
- for (const kpiValue of kpiValues) {
55
- await this.calculateAndSaveScore(kpiValue, kpi);
56
- }
57
- await (0, shell_1.getRepository)(kpi_value_1.KpiValue).save(kpiValues);
58
- }
59
- }
60
- exports.KpiValueScoreService = KpiValueScoreService;
61
- //# sourceMappingURL=kpi-value-score.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kpi-value-score.service.js","sourceRoot":"","sources":["../../../server/service/kpi-value/kpi-value-score.service.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AACrD,oCAAgC;AAChC,2CAAsC;AACtC,wDAA0F;AAI1F,MAAa,oBAAoB;IAC/B;;;OAGG;IACH,KAAK,CAAC,yBAAyB,CAAC,GAAQ,EAAE,KAAa;QACrD,IAAI,CAAC;YACH,OAAO,MAAM,IAAA,2BAAgB,EAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,YAAY,UAAU,EAAE,KAAK,CAAC,CAAA;YAC9F,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,wBAAwB,CAAC,GAAQ,EAAE,KAAa;QAC9C,OAAO,IAAA,0BAAe,EAAC,GAAG,CAAC,MAAa,EAAE,KAAK,CAAC,CAAA;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CAAC,QAAkB,EAAE,GAAQ;QACtD,wBAAwB;QACxB,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;QAE3E,gEAAgE;QAChE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;QAClE,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,+BAA+B;YAC/B,QAAQ,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAA;QACpC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAAC,KAAa,EAAE,OAAwB;QACnE,MAAM,GAAG,GAAG,MAAM,IAAA,qBAAa,EAAC,SAAG,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;QACtE,IAAI,CAAC,GAAG;YAAE,OAAM;QAEhB,MAAM,SAAS,GAAG,MAAM,IAAA,qBAAa,EAAC,oBAAQ,CAAC,CAAC,IAAI,CAAC;YACnD,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;SACvC,CAAC,CAAA;QAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;QACjD,CAAC;QAED,MAAM,IAAA,qBAAa,EAAC,oBAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC/C,CAAC;CACF;AAzDD,oDAyDC","sourcesContent":["import { getRepository } from '@things-factory/shell'\nimport { Kpi } from '../kpi/kpi'\nimport { KpiValue } from './kpi-value'\nimport { scoreFromFormula, scoreFromLookup, ScoreResult } from '../../calculator/score.js'\n\nexport { ScoreResult }\n\nexport class KpiValueScoreService {\n /**\n * scoreFormula를 사용한 성과 점수 계산 — 순수 로직은 calculator/score 에 위임.\n * 파싱/평가 예외는 여기서 로그 후 null (점수 계산 실패는 치명 아님).\n */\n async calculateScoreFromFormula(kpi: Kpi, value: number): Promise<ScoreResult | null> {\n try {\n return await scoreFromFormula(kpi.scoreFormula, value)\n } catch (error) {\n console.error(`Score formula evaluation for '${kpi.name}: ${kpi.scoreFormula}' error:`, error)\n return null\n }\n }\n\n /**\n * KPI의 grades lookup table을 이용한 성과 점수 변환.\n * @deprecated 향후 grades 필드 제거 예정. scoreFormula로 대체 권장\n */\n calculateScoreFromLookup(kpi: Kpi, value: number): ScoreResult | null {\n return scoreFromLookup(kpi.grades as any, value)\n }\n\n /**\n * KpiValue 생성/수정 시 성과 점수 자동 계산 및 저장\n */\n async calculateAndSaveScore(kpiValue: KpiValue, kpi: Kpi): Promise<void> {\n // 1. scoreFormula 우선 시도\n let scoreResult = await this.calculateScoreFromFormula(kpi, kpiValue.value)\n\n // 2. scoreFormula가 없거나 실패하면 grades lookup table 사용 (deprecated)\n if (!scoreResult) {\n scoreResult = this.calculateScoreFromLookup(kpi, kpiValue.value)\n }\n\n if (scoreResult) {\n // KpiValue의 score 필드에 성과 점수 저장\n kpiValue.score = scoreResult.score\n }\n }\n\n /**\n * 기존 KpiValue들의 성과 점수 재계산 (배치 처리)\n */\n async recalculateScoresForKpi(kpiId: string, context: ResolverContext): Promise<void> {\n const kpi = await getRepository(Kpi).findOne({ where: { id: kpiId } })\n if (!kpi) return\n\n const kpiValues = await getRepository(KpiValue).find({\n where: { kpiId, version: kpi.version }\n })\n\n for (const kpiValue of kpiValues) {\n await this.calculateAndSaveScore(kpiValue, kpi)\n }\n\n await getRepository(KpiValue).save(kpiValues)\n }\n}\n"]}
@@ -1,33 +0,0 @@
1
- import { KpiValue, KpiValueInputType } from './kpi-value';
2
- export declare class NewKpiValue {
3
- kpiId: string;
4
- version: number;
5
- valueDate: string;
6
- value: number;
7
- score?: number;
8
- meta?: any;
9
- kpiOrgScopeId?: string;
10
- org?: string;
11
- group?: string;
12
- inputType?: KpiValueInputType;
13
- source?: string;
14
- }
15
- export declare class KpiValuePatch {
16
- id?: string;
17
- kpiId?: string;
18
- version?: number;
19
- valueDate?: string;
20
- value?: number;
21
- score?: number;
22
- meta?: any;
23
- kpiOrgScopeId?: string;
24
- org?: string;
25
- group?: string;
26
- inputType?: KpiValueInputType;
27
- source?: string;
28
- cuFlag?: string;
29
- }
30
- export declare class KpiValueList {
31
- items: KpiValue[];
32
- total: number;
33
- }
@@ -1,156 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KpiValueList = exports.KpiValuePatch = exports.NewKpiValue = void 0;
4
- const tslib_1 = require("tslib");
5
- const type_graphql_1 = require("type-graphql");
6
- const shell_1 = require("@things-factory/shell");
7
- const kpi_value_1 = require("./kpi-value");
8
- let NewKpiValue = class NewKpiValue {
9
- };
10
- exports.NewKpiValue = NewKpiValue;
11
- tslib_1.__decorate([
12
- (0, type_graphql_1.Field)(type => type_graphql_1.ID, { description: 'ID of the KPI to which this value belongs.' }),
13
- tslib_1.__metadata("design:type", String)
14
- ], NewKpiValue.prototype, "kpiId", void 0);
15
- tslib_1.__decorate([
16
- (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Version of the KPI definition at the time this value is calculated.' }),
17
- tslib_1.__metadata("design:type", Number)
18
- ], NewKpiValue.prototype, "version", void 0);
19
- tslib_1.__decorate([
20
- (0, type_graphql_1.Field)({ description: 'Date or period for which this KPI value is recorded (e.g., day, month, quarter).' }),
21
- tslib_1.__metadata("design:type", String)
22
- ], NewKpiValue.prototype, "valueDate", void 0);
23
- tslib_1.__decorate([
24
- (0, type_graphql_1.Field)(type => type_graphql_1.Float, { description: 'The calculated numeric value for this KPI and period.' }),
25
- tslib_1.__metadata("design:type", Number)
26
- ], NewKpiValue.prototype, "value", void 0);
27
- tslib_1.__decorate([
28
- (0, type_graphql_1.Field)(type => type_graphql_1.Float, {
29
- nullable: true,
30
- description: 'Performance score calculated from KPI value using scoreFormula or grades lookup table. Range: 0-1.'
31
- }),
32
- tslib_1.__metadata("design:type", Number)
33
- ], NewKpiValue.prototype, "score", void 0);
34
- tslib_1.__decorate([
35
- (0, type_graphql_1.Field)(type => shell_1.ScalarObject, {
36
- nullable: true,
37
- description: 'Extended or non-numeric information related to this KPI value, stored as JSON5. Can include grade, status, comments, or other metadata.'
38
- }),
39
- tslib_1.__metadata("design:type", Object)
40
- ], NewKpiValue.prototype, "meta", void 0);
41
- tslib_1.__decorate([
42
- (0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true, description: 'ID of the KPI organization scope for this value.' }),
43
- tslib_1.__metadata("design:type", String)
44
- ], NewKpiValue.prototype, "kpiOrgScopeId", void 0);
45
- tslib_1.__decorate([
46
- (0, type_graphql_1.Field)({ nullable: true, description: 'Legacy organizational unit identifier (for backward compatibility)' }),
47
- tslib_1.__metadata("design:type", String)
48
- ], NewKpiValue.prototype, "org", void 0);
49
- tslib_1.__decorate([
50
- (0, type_graphql_1.Field)({ nullable: true, description: 'Group key for this value (organization, line, user, project, etc.)' }),
51
- tslib_1.__metadata("design:type", String)
52
- ], NewKpiValue.prototype, "group", void 0);
53
- tslib_1.__decorate([
54
- (0, type_graphql_1.Field)(type => kpi_value_1.KpiValueInputType, {
55
- nullable: true,
56
- description: 'Indicates whether this value was entered manually or generated automatically.'
57
- }),
58
- tslib_1.__metadata("design:type", String)
59
- ], NewKpiValue.prototype, "inputType", void 0);
60
- tslib_1.__decorate([
61
- (0, type_graphql_1.Field)({ nullable: true, description: 'Source of the value (e.g., system, user, external integration).' }),
62
- tslib_1.__metadata("design:type", String)
63
- ], NewKpiValue.prototype, "source", void 0);
64
- exports.NewKpiValue = NewKpiValue = tslib_1.__decorate([
65
- (0, type_graphql_1.InputType)({ description: 'Input type for creating a new KPI value. Used in mutations to provide KPI value details.' })
66
- ], NewKpiValue);
67
- let KpiValuePatch = class KpiValuePatch {
68
- };
69
- exports.KpiValuePatch = KpiValuePatch;
70
- tslib_1.__decorate([
71
- (0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true, description: 'ID of the KPI value to update.' }),
72
- tslib_1.__metadata("design:type", String)
73
- ], KpiValuePatch.prototype, "id", void 0);
74
- tslib_1.__decorate([
75
- (0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true, description: 'ID of the KPI to which this value belongs.' }),
76
- tslib_1.__metadata("design:type", String)
77
- ], KpiValuePatch.prototype, "kpiId", void 0);
78
- tslib_1.__decorate([
79
- (0, type_graphql_1.Field)(type => type_graphql_1.Int, {
80
- nullable: true,
81
- description: 'Version of the KPI definition at the time this value is calculated.'
82
- }),
83
- tslib_1.__metadata("design:type", Number)
84
- ], KpiValuePatch.prototype, "version", void 0);
85
- tslib_1.__decorate([
86
- (0, type_graphql_1.Field)({
87
- nullable: true,
88
- description: 'Date or period for which this KPI value is recorded (e.g., day, month, quarter).'
89
- }),
90
- tslib_1.__metadata("design:type", String)
91
- ], KpiValuePatch.prototype, "valueDate", void 0);
92
- tslib_1.__decorate([
93
- (0, type_graphql_1.Field)(type => type_graphql_1.Float, { nullable: true, description: 'The calculated numeric value for this KPI and period.' }),
94
- tslib_1.__metadata("design:type", Number)
95
- ], KpiValuePatch.prototype, "value", void 0);
96
- tslib_1.__decorate([
97
- (0, type_graphql_1.Field)(type => type_graphql_1.Float, {
98
- nullable: true,
99
- description: 'Performance score calculated from KPI value using scoreFormula or grades lookup table. Range: 0-1.'
100
- }),
101
- tslib_1.__metadata("design:type", Number)
102
- ], KpiValuePatch.prototype, "score", void 0);
103
- tslib_1.__decorate([
104
- (0, type_graphql_1.Field)(type => shell_1.ScalarObject, {
105
- nullable: true,
106
- description: 'Extended or non-numeric information related to this KPI value, stored as JSON5. Can include grade, status, comments, or other metadata.'
107
- }),
108
- tslib_1.__metadata("design:type", Object)
109
- ], KpiValuePatch.prototype, "meta", void 0);
110
- tslib_1.__decorate([
111
- (0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true, description: 'ID of the KPI organization scope for this value.' }),
112
- tslib_1.__metadata("design:type", String)
113
- ], KpiValuePatch.prototype, "kpiOrgScopeId", void 0);
114
- tslib_1.__decorate([
115
- (0, type_graphql_1.Field)({ nullable: true, description: 'Legacy organizational unit identifier (for backward compatibility)' }),
116
- tslib_1.__metadata("design:type", String)
117
- ], KpiValuePatch.prototype, "org", void 0);
118
- tslib_1.__decorate([
119
- (0, type_graphql_1.Field)({ nullable: true, description: 'Group key for this value (organization, line, user, project, etc.)' }),
120
- tslib_1.__metadata("design:type", String)
121
- ], KpiValuePatch.prototype, "group", void 0);
122
- tslib_1.__decorate([
123
- (0, type_graphql_1.Field)(type => kpi_value_1.KpiValueInputType, {
124
- nullable: true,
125
- description: 'Indicates whether this value was entered manually or generated automatically.'
126
- }),
127
- tslib_1.__metadata("design:type", String)
128
- ], KpiValuePatch.prototype, "inputType", void 0);
129
- tslib_1.__decorate([
130
- (0, type_graphql_1.Field)({ nullable: true, description: 'Source of the value (e.g., system, user, external integration).' }),
131
- tslib_1.__metadata("design:type", String)
132
- ], KpiValuePatch.prototype, "source", void 0);
133
- tslib_1.__decorate([
134
- (0, type_graphql_1.Field)({ nullable: true, description: 'Custom flag for update operations (internal use).' }),
135
- tslib_1.__metadata("design:type", String)
136
- ], KpiValuePatch.prototype, "cuFlag", void 0);
137
- exports.KpiValuePatch = KpiValuePatch = tslib_1.__decorate([
138
- (0, type_graphql_1.InputType)({
139
- description: 'Input type for updating an existing KPI value. Used in mutations to patch KPI value details.'
140
- })
141
- ], KpiValuePatch);
142
- let KpiValueList = class KpiValueList {
143
- };
144
- exports.KpiValueList = KpiValueList;
145
- tslib_1.__decorate([
146
- (0, type_graphql_1.Field)(type => [kpi_value_1.KpiValue]),
147
- tslib_1.__metadata("design:type", Array)
148
- ], KpiValueList.prototype, "items", void 0);
149
- tslib_1.__decorate([
150
- (0, type_graphql_1.Field)(type => type_graphql_1.Int),
151
- tslib_1.__metadata("design:type", Number)
152
- ], KpiValueList.prototype, "total", void 0);
153
- exports.KpiValueList = KpiValueList = tslib_1.__decorate([
154
- (0, type_graphql_1.ObjectType)()
155
- ], KpiValueList);
156
- //# sourceMappingURL=kpi-value-type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kpi-value-type.js","sourceRoot":"","sources":["../../../server/service/kpi-value/kpi-value-type.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { ObjectType, Field, InputType, Int, ID, registerEnumType, Float } from 'type-graphql'\n\nimport { ObjectRef, ScalarObject } from '@things-factory/shell'\n\nimport { KpiValue, KpiValueInputType } from './kpi-value'\n\n@InputType({ description: 'Input type for creating a new KPI value. Used in mutations to provide KPI value details.' })\nexport class NewKpiValue {\n @Field(type => ID, { description: 'ID of the KPI to which this value belongs.' })\n kpiId: string\n\n @Field(type => Int, { description: 'Version of the KPI definition at the time this value is calculated.' })\n version: number\n\n @Field({ description: 'Date or period for which this KPI value is recorded (e.g., day, month, quarter).' })\n valueDate: string\n\n @Field(type => Float, { description: 'The calculated numeric value for this KPI and period.' })\n value: number\n\n @Field(type => Float, {\n nullable: true,\n description: 'Performance score calculated from KPI value using scoreFormula or grades lookup table. Range: 0-1.'\n })\n score?: number\n\n @Field(type => ScalarObject, {\n nullable: true,\n description:\n 'Extended or non-numeric information related to this KPI value, stored as JSON5. Can include grade, status, comments, or other metadata.'\n })\n meta?: any\n\n @Field(type => ID, { nullable: true, description: 'ID of the KPI organization scope for this value.' })\n kpiOrgScopeId?: string\n\n @Field({ nullable: true, description: 'Legacy organizational unit identifier (for backward compatibility)' })\n org?: string\n\n @Field({ nullable: true, description: 'Group key for this value (organization, line, user, project, etc.)' })\n group?: string\n\n @Field(type => KpiValueInputType, {\n nullable: true,\n description: 'Indicates whether this value was entered manually or generated automatically.'\n })\n inputType?: KpiValueInputType\n\n @Field({ nullable: true, description: 'Source of the value (e.g., system, user, external integration).' })\n source?: string\n}\n\n@InputType({\n description: 'Input type for updating an existing KPI value. Used in mutations to patch KPI value details.'\n})\nexport class KpiValuePatch {\n @Field(type => ID, { nullable: true, description: 'ID of the KPI value to update.' })\n id?: string\n\n @Field(type => ID, { nullable: true, description: 'ID of the KPI to which this value belongs.' })\n kpiId?: string\n\n @Field(type => Int, {\n nullable: true,\n description: 'Version of the KPI definition at the time this value is calculated.'\n })\n version?: number\n\n @Field({\n nullable: true,\n description: 'Date or period for which this KPI value is recorded (e.g., day, month, quarter).'\n })\n valueDate?: string\n\n @Field(type => Float, { nullable: true, description: 'The calculated numeric value for this KPI and period.' })\n value?: number\n\n @Field(type => Float, {\n nullable: true,\n description: 'Performance score calculated from KPI value using scoreFormula or grades lookup table. Range: 0-1.'\n })\n score?: number\n\n @Field(type => ScalarObject, {\n nullable: true,\n description:\n 'Extended or non-numeric information related to this KPI value, stored as JSON5. Can include grade, status, comments, or other metadata.'\n })\n meta?: any\n\n @Field(type => ID, { nullable: true, description: 'ID of the KPI organization scope for this value.' })\n kpiOrgScopeId?: string\n\n @Field({ nullable: true, description: 'Legacy organizational unit identifier (for backward compatibility)' })\n org?: string\n\n @Field({ nullable: true, description: 'Group key for this value (organization, line, user, project, etc.)' })\n group?: string\n\n @Field(type => KpiValueInputType, {\n nullable: true,\n description: 'Indicates whether this value was entered manually or generated automatically.'\n })\n inputType?: KpiValueInputType\n\n @Field({ nullable: true, description: 'Source of the value (e.g., system, user, external integration).' })\n source?: string\n\n @Field({ nullable: true, description: 'Custom flag for update operations (internal use).' })\n cuFlag?: string\n}\n\n@ObjectType()\nexport class KpiValueList {\n @Field(type => [KpiValue])\n items: KpiValue[]\n\n @Field(type => Int)\n total: number\n}\n"]}
@@ -1,32 +0,0 @@
1
- import { User } from '@things-factory/auth-base';
2
- import { Domain } from '@things-factory/shell';
3
- import { Kpi, KpiPeriodType } from '../kpi/kpi';
4
- import { KpiOrgScope } from '../kpi-org-scope/kpi-org-scope';
5
- export declare enum KpiValueInputType {
6
- MANUAL = "MANUAL",
7
- AUTO = "AUTO"
8
- }
9
- export declare class KpiValue {
10
- readonly id: string;
11
- domain?: Domain;
12
- domainId?: string;
13
- kpi: Kpi;
14
- kpiId: string;
15
- version: number;
16
- valueDate: string;
17
- value: number;
18
- score?: number;
19
- group?: string;
20
- kpiOrgScope?: KpiOrgScope;
21
- kpiOrgScopeId?: string;
22
- inputType?: KpiValueInputType;
23
- source?: string;
24
- meta?: any;
25
- periodType: KpiPeriodType;
26
- createdAt?: Date;
27
- updatedAt?: Date;
28
- creator?: User;
29
- creatorId?: string;
30
- updater?: User;
31
- updaterId?: string;
32
- }