@hed-hog/lms 0.0.358 → 0.0.364

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 (330) hide show
  1. package/dist/bitcode-wallet/bitcode-wallet.service.d.ts +65 -0
  2. package/dist/bitcode-wallet/bitcode-wallet.service.d.ts.map +1 -1
  3. package/dist/bitcode-wallet/bitcode-wallet.service.js +72 -0
  4. package/dist/bitcode-wallet/bitcode-wallet.service.js.map +1 -1
  5. package/dist/bitcode-wallet/dto/create-current-bitcode-wallet-transaction.dto.d.ts +8 -0
  6. package/dist/bitcode-wallet/dto/create-current-bitcode-wallet-transaction.dto.d.ts.map +1 -0
  7. package/dist/bitcode-wallet/dto/create-current-bitcode-wallet-transaction.dto.js +40 -0
  8. package/dist/bitcode-wallet/dto/create-current-bitcode-wallet-transaction.dto.js.map +1 -0
  9. package/dist/class-group/class-group.controller.d.ts +16 -16
  10. package/dist/class-group/class-group.service.d.ts +12 -12
  11. package/dist/course/course-audio-transcription.service.d.ts +3 -2
  12. package/dist/course/course-audio-transcription.service.d.ts.map +1 -1
  13. package/dist/course/course-audio-transcription.service.js +49 -8
  14. package/dist/course/course-audio-transcription.service.js.map +1 -1
  15. package/dist/course/course-lesson.controller.d.ts +4 -0
  16. package/dist/course/course-lesson.controller.d.ts.map +1 -1
  17. package/dist/course/course-lesson.controller.js +10 -0
  18. package/dist/course/course-lesson.controller.js.map +1 -1
  19. package/dist/course/course-structure.controller.d.ts +11 -4
  20. package/dist/course/course-structure.controller.d.ts.map +1 -1
  21. package/dist/course/course-structure.controller.js +14 -0
  22. package/dist/course/course-structure.controller.js.map +1 -1
  23. package/dist/course/course-structure.service.d.ts +15 -1
  24. package/dist/course/course-structure.service.d.ts.map +1 -1
  25. package/dist/course/course-structure.service.js +139 -4
  26. package/dist/course/course-structure.service.js.map +1 -1
  27. package/dist/course/course-video-conversion.service.d.ts +8 -0
  28. package/dist/course/course-video-conversion.service.d.ts.map +1 -1
  29. package/dist/course/course-video-conversion.service.js +87 -51
  30. package/dist/course/course-video-conversion.service.js.map +1 -1
  31. package/dist/course/course.controller.d.ts +73 -1
  32. package/dist/course/course.controller.d.ts.map +1 -1
  33. package/dist/course/course.controller.js +27 -3
  34. package/dist/course/course.controller.js.map +1 -1
  35. package/dist/course/course.module.d.ts.map +1 -1
  36. package/dist/course/course.module.js +15 -3
  37. package/dist/course/course.module.js.map +1 -1
  38. package/dist/course/course.service.d.ts +108 -4
  39. package/dist/course/course.service.d.ts.map +1 -1
  40. package/dist/course/course.service.js +631 -30
  41. package/dist/course/course.service.js.map +1 -1
  42. package/dist/course/dto/cleanup-course-storage.dto.d.ts +6 -0
  43. package/dist/course/dto/cleanup-course-storage.dto.d.ts.map +1 -0
  44. package/dist/course/dto/cleanup-course-storage.dto.js +33 -0
  45. package/dist/course/dto/cleanup-course-storage.dto.js.map +1 -0
  46. package/dist/course/dto/cleanup-upload-history.dto.d.ts +9 -0
  47. package/dist/course/dto/cleanup-upload-history.dto.d.ts.map +1 -0
  48. package/dist/course/dto/cleanup-upload-history.dto.js +36 -0
  49. package/dist/course/dto/cleanup-upload-history.dto.js.map +1 -0
  50. package/dist/course/dto/create-course-bulk-job.dto.d.ts +4 -0
  51. package/dist/course/dto/create-course-bulk-job.dto.d.ts.map +1 -0
  52. package/dist/course/dto/create-course-bulk-job.dto.js +21 -0
  53. package/dist/course/dto/create-course-bulk-job.dto.js.map +1 -0
  54. package/dist/course/lms-bulk-upload-automation.service.d.ts +39 -0
  55. package/dist/course/lms-bulk-upload-automation.service.d.ts.map +1 -0
  56. package/dist/course/lms-bulk-upload-automation.service.js +443 -0
  57. package/dist/course/lms-bulk-upload-automation.service.js.map +1 -0
  58. package/dist/course/lms-bulk-upload-infra.service.d.ts +31 -0
  59. package/dist/course/lms-bulk-upload-infra.service.d.ts.map +1 -0
  60. package/dist/course/lms-bulk-upload-infra.service.js +277 -0
  61. package/dist/course/lms-bulk-upload-infra.service.js.map +1 -0
  62. package/dist/course/lms-bulk-upload.constants.d.ts +4 -0
  63. package/dist/course/lms-bulk-upload.constants.d.ts.map +1 -0
  64. package/dist/course/lms-bulk-upload.constants.js +7 -0
  65. package/dist/course/lms-bulk-upload.constants.js.map +1 -0
  66. package/dist/course/lms-bulk-upload.controller.d.ts +153 -0
  67. package/dist/course/lms-bulk-upload.controller.d.ts.map +1 -0
  68. package/dist/course/lms-bulk-upload.controller.js +129 -0
  69. package/dist/course/lms-bulk-upload.controller.js.map +1 -0
  70. package/dist/course/lms-bulk-upload.service.d.ts +181 -0
  71. package/dist/course/lms-bulk-upload.service.d.ts.map +1 -0
  72. package/dist/course/lms-bulk-upload.service.js +754 -0
  73. package/dist/course/lms-bulk-upload.service.js.map +1 -0
  74. package/dist/course/lms-setting.controller.d.ts +7 -1
  75. package/dist/course/lms-setting.controller.d.ts.map +1 -1
  76. package/dist/course/lms-setting.controller.js +26 -3
  77. package/dist/course/lms-setting.controller.js.map +1 -1
  78. package/dist/enterprise/enterprise.controller.d.ts +20 -20
  79. package/dist/enterprise/enterprise.service.d.ts +20 -20
  80. package/dist/enterprise/training/training-admin.controller.d.ts +11 -11
  81. package/dist/enterprise/training/training-admin.service.d.ts +11 -11
  82. package/dist/enterprise/training/training-instructor.controller.d.ts +2 -2
  83. package/dist/enterprise/training/training-instructor.service.d.ts +2 -2
  84. package/dist/enterprise/training/training-student.controller.d.ts +1 -1
  85. package/dist/enterprise/training/training-student.service.d.ts +1 -1
  86. package/dist/enterprise/training/training-viewer.controller.d.ts +2 -2
  87. package/dist/evaluation/evaluation.controller.d.ts +8 -8
  88. package/dist/evaluation/evaluation.service.d.ts +8 -8
  89. package/dist/lesson-xp-map/dto/create-lesson-xp-map.dto.d.ts +6 -0
  90. package/dist/lesson-xp-map/dto/create-lesson-xp-map.dto.d.ts.map +1 -0
  91. package/dist/lesson-xp-map/dto/create-lesson-xp-map.dto.js +34 -0
  92. package/dist/lesson-xp-map/dto/create-lesson-xp-map.dto.js.map +1 -0
  93. package/dist/lesson-xp-map/dto/create-lesson-xp-segment.dto.d.ts +28 -0
  94. package/dist/lesson-xp-map/dto/create-lesson-xp-segment.dto.d.ts.map +1 -0
  95. package/dist/lesson-xp-map/dto/create-lesson-xp-segment.dto.js +123 -0
  96. package/dist/lesson-xp-map/dto/create-lesson-xp-segment.dto.js.map +1 -0
  97. package/dist/lesson-xp-map/dto/review-lesson-xp-map.dto.d.ts +4 -0
  98. package/dist/lesson-xp-map/dto/review-lesson-xp-map.dto.d.ts.map +1 -0
  99. package/dist/lesson-xp-map/dto/review-lesson-xp-map.dto.js +22 -0
  100. package/dist/lesson-xp-map/dto/review-lesson-xp-map.dto.js.map +1 -0
  101. package/dist/lesson-xp-map/dto/update-lesson-xp-map.dto.d.ts +10 -0
  102. package/dist/lesson-xp-map/dto/update-lesson-xp-map.dto.d.ts.map +1 -0
  103. package/dist/lesson-xp-map/dto/update-lesson-xp-map.dto.js +52 -0
  104. package/dist/lesson-xp-map/dto/update-lesson-xp-map.dto.js.map +1 -0
  105. package/dist/lesson-xp-map/dto/update-lesson-xp-segment.dto.d.ts +15 -0
  106. package/dist/lesson-xp-map/dto/update-lesson-xp-segment.dto.d.ts.map +1 -0
  107. package/dist/lesson-xp-map/dto/update-lesson-xp-segment.dto.js +86 -0
  108. package/dist/lesson-xp-map/dto/update-lesson-xp-segment.dto.js.map +1 -0
  109. package/dist/lesson-xp-map/lesson-xp-ai-calculation.service.d.ts +26 -0
  110. package/dist/lesson-xp-map/lesson-xp-ai-calculation.service.d.ts.map +1 -0
  111. package/dist/lesson-xp-map/lesson-xp-ai-calculation.service.js +304 -0
  112. package/dist/lesson-xp-map/lesson-xp-ai-calculation.service.js.map +1 -0
  113. package/dist/lesson-xp-map/lesson-xp-map.controller.d.ts +87 -0
  114. package/dist/lesson-xp-map/lesson-xp-map.controller.d.ts.map +1 -0
  115. package/dist/lesson-xp-map/lesson-xp-map.controller.js +185 -0
  116. package/dist/lesson-xp-map/lesson-xp-map.controller.js.map +1 -0
  117. package/dist/lesson-xp-map/lesson-xp-map.module.d.ts +3 -0
  118. package/dist/lesson-xp-map/lesson-xp-map.module.d.ts.map +1 -0
  119. package/dist/lesson-xp-map/lesson-xp-map.module.js +34 -0
  120. package/dist/lesson-xp-map/lesson-xp-map.module.js.map +1 -0
  121. package/dist/lesson-xp-map/lesson-xp-map.service.d.ts +84 -0
  122. package/dist/lesson-xp-map/lesson-xp-map.service.d.ts.map +1 -0
  123. package/dist/lesson-xp-map/lesson-xp-map.service.js +353 -0
  124. package/dist/lesson-xp-map/lesson-xp-map.service.js.map +1 -0
  125. package/dist/lesson-xp-map/lesson-xp-segment.controller.d.ts +10 -0
  126. package/dist/lesson-xp-map/lesson-xp-segment.controller.d.ts.map +1 -0
  127. package/dist/lesson-xp-map/lesson-xp-segment.controller.js +63 -0
  128. package/dist/lesson-xp-map/lesson-xp-segment.controller.js.map +1 -0
  129. package/dist/lesson-xp-map/lesson-xp-segment.service.d.ts +27 -0
  130. package/dist/lesson-xp-map/lesson-xp-segment.service.d.ts.map +1 -0
  131. package/dist/lesson-xp-map/lesson-xp-segment.service.js +194 -0
  132. package/dist/lesson-xp-map/lesson-xp-segment.service.js.map +1 -0
  133. package/dist/libraries/lms/tsconfig.tsbuildinfo +1 -0
  134. package/dist/lms.module.d.ts.map +1 -1
  135. package/dist/lms.module.js +17 -2
  136. package/dist/lms.module.js.map +1 -1
  137. package/dist/platforma/dto/update-profile.dto.d.ts +17 -0
  138. package/dist/platforma/dto/update-profile.dto.d.ts.map +1 -0
  139. package/dist/platforma/dto/update-profile.dto.js +87 -0
  140. package/dist/platforma/dto/update-profile.dto.js.map +1 -0
  141. package/dist/platforma/platforma.controller.d.ts +94 -7
  142. package/dist/platforma/platforma.controller.d.ts.map +1 -1
  143. package/dist/platforma/platforma.controller.js +85 -2
  144. package/dist/platforma/platforma.controller.js.map +1 -1
  145. package/dist/platforma/platforma.service.d.ts +27 -0
  146. package/dist/platforma/platforma.service.d.ts.map +1 -0
  147. package/dist/platforma/platforma.service.js +274 -0
  148. package/dist/platforma/platforma.service.js.map +1 -0
  149. package/dist/student-xp/student-xp.controller.d.ts +41 -0
  150. package/dist/student-xp/student-xp.controller.d.ts.map +1 -0
  151. package/dist/student-xp/student-xp.controller.js +114 -0
  152. package/dist/student-xp/student-xp.controller.js.map +1 -0
  153. package/dist/student-xp/student-xp.module.d.ts +3 -0
  154. package/dist/student-xp/student-xp.module.d.ts.map +1 -0
  155. package/dist/student-xp/student-xp.module.js +25 -0
  156. package/dist/student-xp/student-xp.module.js.map +1 -0
  157. package/dist/student-xp/student-xp.service.d.ts +65 -0
  158. package/dist/student-xp/student-xp.service.d.ts.map +1 -0
  159. package/dist/student-xp/student-xp.service.js +197 -0
  160. package/dist/student-xp/student-xp.service.js.map +1 -0
  161. package/dist/xp-catalog/dto/create-xp-area.dto.d.ts +12 -0
  162. package/dist/xp-catalog/dto/create-xp-area.dto.d.ts.map +1 -0
  163. package/dist/xp-catalog/dto/create-xp-area.dto.js +63 -0
  164. package/dist/xp-catalog/dto/create-xp-area.dto.js.map +1 -0
  165. package/dist/xp-catalog/dto/create-xp-learning-type.dto.d.ts +11 -0
  166. package/dist/xp-catalog/dto/create-xp-learning-type.dto.d.ts.map +1 -0
  167. package/dist/xp-catalog/dto/create-xp-learning-type.dto.js +57 -0
  168. package/dist/xp-catalog/dto/create-xp-learning-type.dto.js.map +1 -0
  169. package/dist/xp-catalog/dto/create-xp-skill.dto.d.ts +11 -0
  170. package/dist/xp-catalog/dto/create-xp-skill.dto.d.ts.map +1 -0
  171. package/dist/xp-catalog/dto/create-xp-skill.dto.js +57 -0
  172. package/dist/xp-catalog/dto/create-xp-skill.dto.js.map +1 -0
  173. package/dist/xp-catalog/dto/update-xp-area.dto.d.ts +12 -0
  174. package/dist/xp-catalog/dto/update-xp-area.dto.d.ts.map +1 -0
  175. package/dist/xp-catalog/dto/update-xp-area.dto.js +66 -0
  176. package/dist/xp-catalog/dto/update-xp-area.dto.js.map +1 -0
  177. package/dist/xp-catalog/dto/update-xp-learning-type.dto.d.ts +11 -0
  178. package/dist/xp-catalog/dto/update-xp-learning-type.dto.d.ts.map +1 -0
  179. package/dist/xp-catalog/dto/update-xp-learning-type.dto.js +60 -0
  180. package/dist/xp-catalog/dto/update-xp-learning-type.dto.js.map +1 -0
  181. package/dist/xp-catalog/dto/update-xp-skill.dto.d.ts +11 -0
  182. package/dist/xp-catalog/dto/update-xp-skill.dto.d.ts.map +1 -0
  183. package/dist/xp-catalog/dto/update-xp-skill.dto.js +60 -0
  184. package/dist/xp-catalog/dto/update-xp-skill.dto.js.map +1 -0
  185. package/dist/xp-catalog/xp-area.controller.d.ts +25 -0
  186. package/dist/xp-catalog/xp-area.controller.d.ts.map +1 -0
  187. package/dist/xp-catalog/xp-area.controller.js +105 -0
  188. package/dist/xp-catalog/xp-area.controller.js.map +1 -0
  189. package/dist/xp-catalog/xp-area.service.d.ts +35 -0
  190. package/dist/xp-catalog/xp-area.service.d.ts.map +1 -0
  191. package/dist/xp-catalog/xp-area.service.js +168 -0
  192. package/dist/xp-catalog/xp-area.service.js.map +1 -0
  193. package/dist/xp-catalog/xp-catalog.module.d.ts +3 -0
  194. package/dist/xp-catalog/xp-catalog.module.d.ts.map +1 -0
  195. package/dist/xp-catalog/xp-catalog.module.js +29 -0
  196. package/dist/xp-catalog/xp-catalog.module.js.map +1 -0
  197. package/dist/xp-catalog/xp-learning-type.controller.d.ts +20 -0
  198. package/dist/xp-catalog/xp-learning-type.controller.d.ts.map +1 -0
  199. package/dist/xp-catalog/xp-learning-type.controller.js +96 -0
  200. package/dist/xp-catalog/xp-learning-type.controller.js.map +1 -0
  201. package/dist/xp-catalog/xp-learning-type.service.d.ts +30 -0
  202. package/dist/xp-catalog/xp-learning-type.service.d.ts.map +1 -0
  203. package/dist/xp-catalog/xp-learning-type.service.js +146 -0
  204. package/dist/xp-catalog/xp-learning-type.service.js.map +1 -0
  205. package/dist/xp-catalog/xp-skill.controller.d.ts +26 -0
  206. package/dist/xp-catalog/xp-skill.controller.d.ts.map +1 -0
  207. package/dist/xp-catalog/xp-skill.controller.js +113 -0
  208. package/dist/xp-catalog/xp-skill.controller.js.map +1 -0
  209. package/dist/xp-catalog/xp-skill.service.d.ts +37 -0
  210. package/dist/xp-catalog/xp-skill.service.d.ts.map +1 -0
  211. package/dist/xp-catalog/xp-skill.service.js +174 -0
  212. package/dist/xp-catalog/xp-skill.service.js.map +1 -0
  213. package/hedhog/data/menu.yaml +101 -0
  214. package/hedhog/data/role.yaml +8 -0
  215. package/hedhog/data/route.yaml +547 -0
  216. package/hedhog/data/setting_group.yaml +33 -0
  217. package/hedhog/data/xp_area.yaml +164 -0
  218. package/hedhog/data/xp_learning_type.yaml +131 -0
  219. package/hedhog/data/xp_skill.yaml +1834 -0
  220. package/hedhog/frontend/app/achievements/page.tsx.ejs +108 -118
  221. package/hedhog/frontend/app/bitcodes/page.tsx.ejs +22 -34
  222. package/hedhog/frontend/app/bulk-upload-sessions/page.tsx.ejs +1453 -0
  223. package/hedhog/frontend/app/certificates/models/page.tsx.ejs +21 -45
  224. package/hedhog/frontend/app/classes/[id]/page.tsx.ejs +40 -74
  225. package/hedhog/frontend/app/classes/page.tsx.ejs +56 -85
  226. package/hedhog/frontend/app/courses/[id]/_components/CourseDangerZoneCard.tsx.ejs +3 -2
  227. package/hedhog/frontend/app/courses/[id]/_components/CourseMediaCard.tsx.ejs +48 -5
  228. package/hedhog/frontend/app/courses/[id]/page.tsx.ejs +4 -4
  229. package/hedhog/frontend/app/courses/[id]/structure/_components/course-operations-tab.tsx.ejs +19 -2
  230. package/hedhog/frontend/app/courses/[id]/structure/_components/course-overview-tab.tsx.ejs +1170 -0
  231. package/hedhog/frontend/app/courses/[id]/structure/_components/course-tree-dnd.tsx.ejs +16 -0
  232. package/hedhog/frontend/app/courses/[id]/structure/_components/course-tree.tsx.ejs +2 -0
  233. package/hedhog/frontend/app/courses/[id]/structure/_components/course-xp-overview-tab.tsx.ejs +623 -0
  234. package/hedhog/frontend/app/courses/[id]/structure/_components/detail-lesson-xp-tab.tsx.ejs +1458 -0
  235. package/hedhog/frontend/app/courses/[id]/structure/_components/detail-lesson.tsx.ejs +55 -2
  236. package/hedhog/frontend/app/courses/[id]/structure/_components/editor-course.tsx.ejs +442 -104
  237. package/hedhog/frontend/app/courses/[id]/structure/_components/editor-lesson.tsx.ejs +296 -49
  238. package/hedhog/frontend/app/courses/[id]/structure/_components/sortable-tree-row.tsx.ejs +3 -0
  239. package/hedhog/frontend/app/courses/[id]/structure/_components/store.ts.ejs +1 -0
  240. package/hedhog/frontend/app/courses/[id]/structure/_components/tree-display-settings-popover.tsx.ejs +101 -85
  241. package/hedhog/frontend/app/courses/[id]/structure/_components/tree-row-lesson.tsx.ejs +21 -1
  242. package/hedhog/frontend/app/courses/[id]/structure/_components/tree-row.tsx.ejs +3 -0
  243. package/hedhog/frontend/app/courses/[id]/structure/_components/use-tree-display-settings.ts.ejs +7 -1
  244. package/hedhog/frontend/app/courses/[id]/structure/_components/xp-premium-pills.tsx.ejs +44 -0
  245. package/hedhog/frontend/app/courses/[id]/structure/_data/use-course-content-overview.ts.ejs +54 -0
  246. package/hedhog/frontend/app/courses/[id]/structure/_data/use-course-structure-mutations.ts.ejs +52 -0
  247. package/hedhog/frontend/app/courses/[id]/structure/_data/use-course-xp-overview.ts.ejs +76 -0
  248. package/hedhog/frontend/app/courses/[id]/structure/_data/use-lesson-xp-map.ts.ejs +128 -0
  249. package/hedhog/frontend/app/courses/[id]/structure/_data/use-transcription-segments.ts.ejs +30 -0
  250. package/hedhog/frontend/app/courses/[id]/structure/_utils/xp-color-config.ts.ejs +115 -0
  251. package/hedhog/frontend/app/courses/_components/CourseDeleteDialog.tsx.ejs +223 -0
  252. package/hedhog/frontend/app/courses/_components/CourseRowActions.tsx.ejs +89 -0
  253. package/hedhog/frontend/app/courses/page.tsx.ejs +400 -230
  254. package/hedhog/frontend/app/enterprise/page.tsx.ejs +39 -63
  255. package/hedhog/frontend/app/exams/[id]/questions/page.tsx.ejs +53 -77
  256. package/hedhog/frontend/app/exams/page.tsx.ejs +54 -90
  257. package/hedhog/frontend/app/instructor-skills/page.tsx.ejs +23 -36
  258. package/hedhog/frontend/app/instructors/page.tsx.ejs +72 -81
  259. package/hedhog/frontend/app/paths/page.tsx.ejs +40 -68
  260. package/hedhog/frontend/app/training/page.tsx.ejs +40 -68
  261. package/hedhog/frontend/app/xp/areas/page.tsx.ejs +782 -0
  262. package/hedhog/frontend/app/xp/learning-types/page.tsx.ejs +690 -0
  263. package/hedhog/frontend/app/xp/skills/page.tsx.ejs +811 -0
  264. package/hedhog/frontend/messages/en.json +386 -3
  265. package/hedhog/frontend/messages/pt.json +386 -3
  266. package/hedhog/table/lesson_xp_map.yaml +50 -0
  267. package/hedhog/table/lesson_xp_segment.yaml +40 -0
  268. package/hedhog/table/lesson_xp_segment_area.yaml +24 -0
  269. package/hedhog/table/lesson_xp_segment_learning_type.yaml +24 -0
  270. package/hedhog/table/lesson_xp_segment_skill.yaml +24 -0
  271. package/hedhog/table/lms_bulk_upload_item.yaml +44 -0
  272. package/hedhog/table/lms_bulk_upload_session.yaml +42 -0
  273. package/hedhog/table/student_area_xp.yaml +30 -0
  274. package/hedhog/table/student_learning_type_xp.yaml +30 -0
  275. package/hedhog/table/student_skill_xp.yaml +30 -0
  276. package/hedhog/table/student_xp_event.yaml +34 -0
  277. package/hedhog/table/xp_area.yaml +39 -0
  278. package/hedhog/table/xp_learning_type.yaml +34 -0
  279. package/hedhog/table/xp_skill.yaml +39 -0
  280. package/package.json +9 -8
  281. package/src/bitcode-wallet/bitcode-wallet.service.ts +113 -0
  282. package/src/bitcode-wallet/dto/create-current-bitcode-wallet-transaction.dto.ts +32 -0
  283. package/src/course/course-audio-transcription.service.ts +58 -21
  284. package/src/course/course-lesson.controller.ts +6 -1
  285. package/src/course/course-structure.controller.ts +10 -0
  286. package/src/course/course-structure.service.ts +174 -1
  287. package/src/course/course-video-conversion.service.ts +113 -75
  288. package/src/course/course.controller.ts +22 -3
  289. package/src/course/course.module.ts +15 -3
  290. package/src/course/course.service.ts +847 -30
  291. package/src/course/dto/cleanup-course-storage.dto.ts +22 -0
  292. package/src/course/dto/cleanup-upload-history.dto.ts +26 -0
  293. package/src/course/dto/create-course-bulk-job.dto.ts +6 -0
  294. package/src/course/lms-bulk-upload-automation.service.ts +560 -0
  295. package/src/course/lms-bulk-upload-infra.service.ts +327 -0
  296. package/src/course/lms-bulk-upload.constants.ts +5 -0
  297. package/src/course/lms-bulk-upload.controller.ts +103 -0
  298. package/src/course/lms-bulk-upload.service.ts +1029 -0
  299. package/src/course/lms-setting.controller.ts +28 -1
  300. package/src/lesson-xp-map/dto/create-lesson-xp-map.dto.ts +17 -0
  301. package/src/lesson-xp-map/dto/create-lesson-xp-segment.dto.ts +102 -0
  302. package/src/lesson-xp-map/dto/review-lesson-xp-map.dto.ts +7 -0
  303. package/src/lesson-xp-map/dto/update-lesson-xp-map.dto.ts +36 -0
  304. package/src/lesson-xp-map/dto/update-lesson-xp-segment.dto.ts +78 -0
  305. package/src/lesson-xp-map/lesson-xp-ai-calculation.service.ts +396 -0
  306. package/src/lesson-xp-map/lesson-xp-map.controller.ts +116 -0
  307. package/src/lesson-xp-map/lesson-xp-map.module.ts +21 -0
  308. package/src/lesson-xp-map/lesson-xp-map.service.ts +442 -0
  309. package/src/lesson-xp-map/lesson-xp-segment.controller.ts +36 -0
  310. package/src/lesson-xp-map/lesson-xp-segment.service.ts +229 -0
  311. package/src/lms.module.ts +17 -2
  312. package/src/platforma/dto/update-profile.dto.ts +59 -0
  313. package/src/platforma/platforma.controller.ts +57 -2
  314. package/src/platforma/platforma.service.ts +268 -0
  315. package/src/student-xp/student-xp.controller.ts +76 -0
  316. package/src/student-xp/student-xp.module.ts +12 -0
  317. package/src/student-xp/student-xp.service.ts +236 -0
  318. package/src/xp-catalog/dto/create-xp-area.dto.ts +40 -0
  319. package/src/xp-catalog/dto/create-xp-learning-type.dto.ts +35 -0
  320. package/src/xp-catalog/dto/create-xp-skill.dto.ts +35 -0
  321. package/src/xp-catalog/dto/update-xp-area.dto.ts +43 -0
  322. package/src/xp-catalog/dto/update-xp-learning-type.dto.ts +38 -0
  323. package/src/xp-catalog/dto/update-xp-skill.dto.ts +38 -0
  324. package/src/xp-catalog/xp-area.controller.ts +64 -0
  325. package/src/xp-catalog/xp-area.service.ts +196 -0
  326. package/src/xp-catalog/xp-catalog.module.ts +16 -0
  327. package/src/xp-catalog/xp-learning-type.controller.ts +59 -0
  328. package/src/xp-catalog/xp-learning-type.service.ts +170 -0
  329. package/src/xp-catalog/xp-skill.controller.ts +71 -0
  330. package/src/xp-catalog/xp-skill.service.ts +205 -0
@@ -6,5 +6,9 @@ export declare class CourseLessonController {
6
6
  getTranscriptionSegments(id: number): Promise<any>;
7
7
  updateTranscriptionSegments(id: number, dto: UpdateTranscriptionSegmentsDTO): Promise<[any, any]>;
8
8
  getAudioFiles(id: number): Promise<any>;
9
+ startTranscription(id: number): Promise<{
10
+ queueJobId: any;
11
+ status: any;
12
+ }>;
9
13
  }
10
14
  //# sourceMappingURL=course-lesson.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"course-lesson.controller.d.ts","sourceRoot":"","sources":["../../src/course/course-lesson.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,qBAEa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,sBAAsB;gBAAtB,sBAAsB,EAAE,sBAAsB;IAG3E,wBAAwB,CAA4B,EAAE,EAAE,MAAM;IAK9D,2BAA2B,CACE,EAAE,EAAE,MAAM,EAC7B,GAAG,EAAE,8BAA8B;IAM7C,aAAa,CAA4B,EAAE,EAAE,MAAM;CAGpD"}
1
+ {"version":3,"file":"course-lesson.controller.d.ts","sourceRoot":"","sources":["../../src/course/course-lesson.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,qBAEa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,sBAAsB;gBAAtB,sBAAsB,EAAE,sBAAsB;IAG3E,wBAAwB,CAA4B,EAAE,EAAE,MAAM;IAK9D,2BAA2B,CACE,EAAE,EAAE,MAAM,EAC7B,GAAG,EAAE,8BAA8B;IAM7C,aAAa,CAA4B,EAAE,EAAE,MAAM;IAKnD,kBAAkB,CAA4B,EAAE,EAAE,MAAM;;;;CAGzD"}
@@ -30,6 +30,9 @@ let CourseLessonController = class CourseLessonController {
30
30
  getAudioFiles(id) {
31
31
  return this.courseStructureService.getAudioFiles(id);
32
32
  }
33
+ startTranscription(id) {
34
+ return this.courseStructureService.startTranscription(id);
35
+ }
33
36
  };
34
37
  exports.CourseLessonController = CourseLessonController;
35
38
  __decorate([
@@ -54,6 +57,13 @@ __decorate([
54
57
  __metadata("design:paramtypes", [Number]),
55
58
  __metadata("design:returntype", void 0)
56
59
  ], CourseLessonController.prototype, "getAudioFiles", null);
60
+ __decorate([
61
+ (0, common_1.Post)(':id/transcription/start'),
62
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
63
+ __metadata("design:type", Function),
64
+ __metadata("design:paramtypes", [Number]),
65
+ __metadata("design:returntype", void 0)
66
+ ], CourseLessonController.prototype, "startTranscription", null);
57
67
  exports.CourseLessonController = CourseLessonController = __decorate([
58
68
  (0, api_1.Role)(),
59
69
  (0, common_1.Controller)('lms/lessons'),
@@ -1 +1 @@
1
- {"version":3,"file":"course-lesson.controller.js","sourceRoot":"","sources":["../../src/course/course-lesson.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAAoC;AACpC,2CAAiF;AACjF,yEAAoE;AACpE,+FAAyF;AAIlF,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,YAA6B,sBAA8C;QAA9C,2BAAsB,GAAtB,sBAAsB,CAAwB;IAAG,CAAC;IAG/E,wBAAwB,CAA4B,EAAU;QAC5D,OAAO,IAAI,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAGD,2BAA2B,CACE,EAAU,EAC7B,GAAmC;QAE3C,OAAO,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1E,CAAC;IAGD,aAAa,CAA4B,EAAU;QACjD,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;CACF,CAAA;AApBY,wDAAsB;AAIjC;IADC,IAAA,YAAG,EAAC,4BAA4B,CAAC;IACR,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAA;;;;sEAElD;AAGD;IADC,IAAA,YAAG,EAAC,4BAA4B,CAAC;IAE/B,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAA;IACzB,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAM,kEAA8B;;yEAG5C;AAGD;IADC,IAAA,YAAG,EAAC,iBAAiB,CAAC;IACR,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAA;;;;2DAEvC;iCAnBU,sBAAsB;IAFlC,IAAA,UAAI,GAAE;IACN,IAAA,mBAAU,EAAC,aAAa,CAAC;qCAE6B,iDAAsB;GADhE,sBAAsB,CAoBlC"}
1
+ {"version":3,"file":"course-lesson.controller.js","sourceRoot":"","sources":["../../src/course/course-lesson.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAAoC;AACpC,2CAAuF;AACvF,yEAAoE;AACpE,+FAAyF;AAIlF,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,YAA6B,sBAA8C;QAA9C,2BAAsB,GAAtB,sBAAsB,CAAwB;IAAG,CAAC;IAG/E,wBAAwB,CAA4B,EAAU;QAC5D,OAAO,IAAI,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAGD,2BAA2B,CACE,EAAU,EAC7B,GAAmC;QAE3C,OAAO,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1E,CAAC;IAGD,aAAa,CAA4B,EAAU;QACjD,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IAGD,kBAAkB,CAA4B,EAAU;QACtD,OAAO,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;CACF,CAAA;AAzBY,wDAAsB;AAIjC;IADC,IAAA,YAAG,EAAC,4BAA4B,CAAC;IACR,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAA;;;;sEAElD;AAGD;IADC,IAAA,YAAG,EAAC,4BAA4B,CAAC;IAE/B,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAA;IACzB,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAM,kEAA8B;;yEAG5C;AAGD;IADC,IAAA,YAAG,EAAC,iBAAiB,CAAC;IACR,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAA;;;;2DAEvC;AAGD;IADC,IAAA,aAAI,EAAC,yBAAyB,CAAC;IACZ,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAA;;;;gEAE5C;iCAxBU,sBAAsB;IAFlC,IAAA,UAAI,GAAE;IACN,IAAA,mBAAU,EAAC,aAAa,CAAC;qCAE6B,iDAAsB;GADhE,sBAAsB,CAyBlC"}
@@ -1,5 +1,6 @@
1
1
  import { CourseStructureService } from './course-structure.service';
2
2
  import { CourseVideoConversionService } from './course-video-conversion.service';
3
+ import { CreateCourseBulkJobDto } from './dto/create-course-bulk-job.dto';
3
4
  import { CreateCourseLessonFrameDto } from './dto/create-course-lesson-frame.dto';
4
5
  import { CreateCourseStructureLessonDto, CreateLessonVideoConversionDto } from './dto/create-course-structure-lesson.dto';
5
6
  import { CreateCourseStructureSessionDto } from './dto/create-course-structure-session.dto';
@@ -30,7 +31,7 @@ export declare class CourseStructureController {
30
31
  titulo: string;
31
32
  descricaoPublica: string;
32
33
  descricaoPrivada: any;
33
- tipo: "video" | "post" | "questao" | "exercicio";
34
+ tipo: "post" | "video" | "questao" | "exercicio";
34
35
  duracao: number;
35
36
  sessaoId: string;
36
37
  videoProvedor: any;
@@ -144,7 +145,7 @@ export declare class CourseStructureController {
144
145
  titulo: string;
145
146
  descricaoPublica: string;
146
147
  descricaoPrivada: any;
147
- tipo: "video" | "post" | "questao" | "exercicio";
148
+ tipo: "post" | "video" | "questao" | "exercicio";
148
149
  duracao: number;
149
150
  sessaoId: string;
150
151
  videoProvedor: any;
@@ -185,7 +186,7 @@ export declare class CourseStructureController {
185
186
  titulo: string;
186
187
  descricaoPublica: string;
187
188
  descricaoPrivada: any;
188
- tipo: "video" | "post" | "questao" | "exercicio";
189
+ tipo: "post" | "video" | "questao" | "exercicio";
189
190
  duracao: number;
190
191
  sessaoId: string;
191
192
  videoProvedor: any;
@@ -247,7 +248,7 @@ export declare class CourseStructureController {
247
248
  titulo: string;
248
249
  descricaoPublica: string;
249
250
  descricaoPrivada: any;
250
- tipo: "video" | "post" | "questao" | "exercicio";
251
+ tipo: "post" | "video" | "questao" | "exercicio";
251
252
  duracao: number;
252
253
  sessaoId: string;
253
254
  videoProvedor: any;
@@ -276,5 +277,11 @@ export declare class CourseStructureController {
276
277
  operationsTaskName: string;
277
278
  operationsTaskStatus: string;
278
279
  }>;
280
+ createBulkJobs(user: any, courseId: number, dto: CreateCourseBulkJobDto): Promise<{
281
+ queued: number;
282
+ skipped: number;
283
+ skippedWithoutTranscription: number;
284
+ warnings: string[];
285
+ }>;
279
286
  }
280
287
  //# sourceMappingURL=course-structure.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"course-structure.controller.d.ts","sourceRoot":"","sources":["../../src/course/course-structure.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"course-structure.controller.d.ts","sourceRoot":"","sources":["../../src/course/course-structure.controller.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ const api_1 = require("@hed-hog/api");
17
17
  const common_1 = require("@nestjs/common");
18
18
  const course_structure_service_1 = require("./course-structure.service");
19
19
  const course_video_conversion_service_1 = require("./course-video-conversion.service");
20
+ const create_course_bulk_job_dto_1 = require("./dto/create-course-bulk-job.dto");
20
21
  const create_course_lesson_frame_dto_1 = require("./dto/create-course-lesson-frame.dto");
21
22
  const create_course_structure_lesson_dto_1 = require("./dto/create-course-structure-lesson.dto");
22
23
  const create_course_structure_session_dto_1 = require("./dto/create-course-structure-session.dto");
@@ -100,6 +101,10 @@ let CourseStructureController = class CourseStructureController {
100
101
  duplicateLesson(courseId, sessionId, lessonId) {
101
102
  return this.courseStructureService.duplicateLesson(courseId, sessionId, lessonId);
102
103
  }
104
+ createBulkJobs(user, courseId, dto) {
105
+ var _a;
106
+ return this.courseStructureService.bulkEnqueueJobs(courseId, dto.jobType, (_a = user === null || user === void 0 ? void 0 : user.id) !== null && _a !== void 0 ? _a : 0);
107
+ }
103
108
  };
104
109
  exports.CourseStructureController = CourseStructureController;
105
110
  __decorate([
@@ -272,6 +277,15 @@ __decorate([
272
277
  __metadata("design:paramtypes", [Number, Number, Number]),
273
278
  __metadata("design:returntype", void 0)
274
279
  ], CourseStructureController.prototype, "duplicateLesson", null);
280
+ __decorate([
281
+ (0, common_1.Post)('bulk-jobs'),
282
+ __param(0, (0, api_1.User)()),
283
+ __param(1, (0, common_1.Param)('id', common_1.ParseIntPipe)),
284
+ __param(2, (0, common_1.Body)()),
285
+ __metadata("design:type", Function),
286
+ __metadata("design:paramtypes", [Object, Number, create_course_bulk_job_dto_1.CreateCourseBulkJobDto]),
287
+ __metadata("design:returntype", void 0)
288
+ ], CourseStructureController.prototype, "createBulkJobs", null);
275
289
  exports.CourseStructureController = CourseStructureController = __decorate([
276
290
  (0, api_1.Role)(),
277
291
  (0, common_1.Controller)('lms/courses/:id/structure'),
@@ -1 +1 @@
1
- {"version":3,"file":"course-structure.controller.js","sourceRoot":"","sources":["../../src/course/course-structure.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"course-structure.controller.js","sourceRoot":"","sources":["../../src/course/course-structure.controller.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { PrismaService } from '@hed-hog/api-prisma';
2
2
  import { FileService } from '@hed-hog/core';
3
+ import { QueueJobService } from '@hed-hog/queue';
3
4
  import { InstructorService } from '../instructor/instructor.service';
4
5
  import { CourseOperationsIntegrationService } from './course-operations-integration.service';
5
6
  import { CreateCourseLessonFrameDto } from './dto/create-course-lesson-frame.dto';
@@ -22,7 +23,9 @@ export declare class CourseStructureService {
22
23
  private readonly fileService;
23
24
  private readonly instructorService;
24
25
  private readonly operationsIntegration;
25
- constructor(prisma: PrismaService, fileService: FileService, instructorService: InstructorService, operationsIntegration: CourseOperationsIntegrationService);
26
+ private readonly queueJob;
27
+ private readonly logger;
28
+ constructor(prisma: PrismaService, fileService: FileService, instructorService: InstructorService, operationsIntegration: CourseOperationsIntegrationService, queueJob: QueueJobService);
26
29
  getStructure(courseId: number): Promise<{
27
30
  sessoes: {
28
31
  id: string;
@@ -281,6 +284,17 @@ export declare class CourseStructureService {
281
284
  getTranscriptionSegments(lessonId: number): Promise<any>;
282
285
  updateTranscriptionSegments(lessonId: number, dto: UpdateTranscriptionSegmentsDTO): Promise<[any, any]>;
283
286
  getAudioFiles(lessonId: number): Promise<any>;
287
+ startTranscription(lessonId: number): Promise<{
288
+ queueJobId: any;
289
+ status: any;
290
+ }>;
291
+ private startTranscriptionOnDemandIfNeeded;
292
+ bulkEnqueueJobs(courseId: number, jobType: 'transcription' | 'xp_recalculation', userId: number): Promise<{
293
+ queued: number;
294
+ skipped: number;
295
+ skippedWithoutTranscription: number;
296
+ warnings: string[];
297
+ }>;
284
298
  private syncLessonRelations;
285
299
  private getLessonById;
286
300
  private ensureCourseExists;
@@ -1 +1 @@
1
- {"version":3,"file":"course-structure.service.d.ts","sourceRoot":"","sources":["../../src/course/course-structure.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"course-structure.service.d.ts","sourceRoot":"","sources":["../../src/course/course-structure.service.ts"],"names":[],"mappings":"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"}
@@ -8,19 +8,23 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var CourseStructureService_1;
11
12
  Object.defineProperty(exports, "__esModule", { value: true });
12
13
  exports.CourseStructureService = void 0;
13
14
  const api_prisma_1 = require("@hed-hog/api-prisma");
14
15
  const core_1 = require("@hed-hog/core");
16
+ const queue_1 = require("@hed-hog/queue");
15
17
  const common_1 = require("@nestjs/common");
16
18
  const instructor_service_1 = require("../instructor/instructor.service");
17
19
  const course_operations_integration_service_1 = require("./course-operations-integration.service");
18
- let CourseStructureService = class CourseStructureService {
19
- constructor(prisma, fileService, instructorService, operationsIntegration) {
20
+ let CourseStructureService = CourseStructureService_1 = class CourseStructureService {
21
+ constructor(prisma, fileService, instructorService, operationsIntegration, queueJob) {
20
22
  this.prisma = prisma;
21
23
  this.fileService = fileService;
22
24
  this.instructorService = instructorService;
23
25
  this.operationsIntegration = operationsIntegration;
26
+ this.queueJob = queueJob;
27
+ this.logger = new common_1.Logger(CourseStructureService_1.name);
24
28
  }
25
29
  async getStructure(courseId) {
26
30
  var _a, _b, _c, _d, _e, _f, _g;
@@ -920,6 +924,136 @@ let CourseStructureService = class CourseStructureService {
920
924
  orderBy: { created_at: 'asc' },
921
925
  });
922
926
  }
927
+ async startTranscription(lessonId) {
928
+ const lesson = await this.prisma.course_lesson.findUnique({
929
+ where: { id: lessonId },
930
+ select: { id: true, course_module: { select: { course_id: true } } },
931
+ });
932
+ if (!lesson) {
933
+ throw new common_1.NotFoundException(`Lesson ${lessonId} not found`);
934
+ }
935
+ const audioFiles = await this.getAudioFiles(lessonId);
936
+ if (!audioFiles.length) {
937
+ throw new common_1.BadRequestException('No audio file found for this lesson. Upload or convert a video first.');
938
+ }
939
+ const audioFileId = audioFiles[audioFiles.length - 1].file_id;
940
+ const job = await this.queueJob.enqueue({
941
+ type: 'lms.audio.transcribe',
942
+ queueName: 'lms.audio.transcribe',
943
+ payload: {
944
+ courseId: lesson.course_module.course_id,
945
+ lessonId,
946
+ audioFileId,
947
+ },
948
+ sourceModule: 'lms',
949
+ sourceEntity: 'course_lesson',
950
+ sourceEntityId: String(lessonId),
951
+ maxAttempts: 3,
952
+ });
953
+ const startedOnDemand = await this.startTranscriptionOnDemandIfNeeded(job.id);
954
+ if (startedOnDemand) {
955
+ return { queueJobId: job.id, status: 'processing' };
956
+ }
957
+ return { queueJobId: job.id, status: job.status };
958
+ }
959
+ async startTranscriptionOnDemandIfNeeded(jobId) {
960
+ const freshWorkerCutoff = new Date(Date.now() - 2 * 60 * 1000);
961
+ const onlineWorkers = await this.prisma.queue_worker_heartbeat.count({
962
+ where: {
963
+ status: 'online',
964
+ last_heartbeat_at: { gte: freshWorkerCutoff },
965
+ },
966
+ });
967
+ if (onlineWorkers > 0) {
968
+ return false;
969
+ }
970
+ void this.queueJob
971
+ .execute(jobId, undefined, 15 * 60 * 1000)
972
+ .then(() => {
973
+ this.logger.debug(`Started on-demand transcription execution for queue job ${jobId} because no online workers were found.`);
974
+ })
975
+ .catch((error) => {
976
+ this.logger.warn(`Failed to execute transcription job ${jobId} on-demand fallback: ${error instanceof Error ? error.message : String(error)}`);
977
+ });
978
+ return true;
979
+ }
980
+ async bulkEnqueueJobs(courseId, jobType, userId) {
981
+ const lessons = await this.prisma.course_lesson.findMany({
982
+ where: {
983
+ course_module: { course_id: courseId },
984
+ },
985
+ select: { id: true },
986
+ });
987
+ let queued = 0;
988
+ let skipped = 0;
989
+ let skippedWithoutTranscription = 0;
990
+ const warnings = [];
991
+ if (jobType === 'transcription') {
992
+ for (const lesson of lessons) {
993
+ const audioFiles = await this.prisma.course_lesson_file.findMany({
994
+ where: { course_lesson_id: lesson.id, type: 'lesson_audio' },
995
+ select: { file_id: true },
996
+ orderBy: { created_at: 'asc' },
997
+ });
998
+ if (!audioFiles.length) {
999
+ skipped++;
1000
+ continue;
1001
+ }
1002
+ const audioFileId = audioFiles[audioFiles.length - 1].file_id;
1003
+ await this.queueJob.enqueue({
1004
+ type: 'lms.audio.transcribe',
1005
+ queueName: 'lms.audio.transcribe',
1006
+ payload: { courseId, lessonId: lesson.id, audioFileId },
1007
+ sourceModule: 'lms',
1008
+ sourceEntity: 'course_lesson',
1009
+ sourceEntityId: String(lesson.id),
1010
+ maxAttempts: 3,
1011
+ });
1012
+ queued++;
1013
+ }
1014
+ }
1015
+ else {
1016
+ for (const lesson of lessons) {
1017
+ const segments = await this.prisma.course_lesson_transcription_segment.findFirst({
1018
+ where: { course_lesson_id: lesson.id },
1019
+ select: { id: true },
1020
+ });
1021
+ if (!segments) {
1022
+ skippedWithoutTranscription++;
1023
+ skipped++;
1024
+ continue;
1025
+ }
1026
+ let xpMap = await this.prisma.lesson_xp_map.findFirst({
1027
+ where: { course_lesson_id: lesson.id },
1028
+ select: { id: true },
1029
+ });
1030
+ if (!xpMap) {
1031
+ const created = await this.prisma.lesson_xp_map.create({
1032
+ data: {
1033
+ course_lesson_id: lesson.id,
1034
+ status: 'pending',
1035
+ },
1036
+ select: { id: true },
1037
+ });
1038
+ xpMap = created;
1039
+ }
1040
+ await this.queueJob.enqueue({
1041
+ type: 'lms.lesson.xp.calculate',
1042
+ queueName: 'lms.lesson.xp.calculate',
1043
+ payload: { lessonId: lesson.id, mapId: xpMap.id, userId },
1044
+ sourceModule: 'lms',
1045
+ sourceEntity: 'course_lesson',
1046
+ sourceEntityId: String(lesson.id),
1047
+ maxAttempts: 3,
1048
+ });
1049
+ queued++;
1050
+ }
1051
+ if (skippedWithoutTranscription > 0) {
1052
+ warnings.push(`${skippedWithoutTranscription} aula(s) sem transcrição foram ignoradas. Gere a transcrição antes de recalcular o XP.`);
1053
+ }
1054
+ }
1055
+ return { queued, skipped, skippedWithoutTranscription, warnings };
1056
+ }
923
1057
  async syncLessonRelations(lessonId, dto, client = this.prisma) {
924
1058
  var _a;
925
1059
  const shouldSyncInstructors = Object.prototype.hasOwnProperty.call(dto, 'instructorIds');
@@ -1259,11 +1393,12 @@ let CourseStructureService = class CourseStructureService {
1259
1393
  }
1260
1394
  };
1261
1395
  exports.CourseStructureService = CourseStructureService;
1262
- exports.CourseStructureService = CourseStructureService = __decorate([
1396
+ exports.CourseStructureService = CourseStructureService = CourseStructureService_1 = __decorate([
1263
1397
  (0, common_1.Injectable)(),
1264
1398
  __metadata("design:paramtypes", [api_prisma_1.PrismaService,
1265
1399
  core_1.FileService,
1266
1400
  instructor_service_1.InstructorService,
1267
- course_operations_integration_service_1.CourseOperationsIntegrationService])
1401
+ course_operations_integration_service_1.CourseOperationsIntegrationService,
1402
+ queue_1.QueueJobService])
1268
1403
  ], CourseStructureService);
1269
1404
  //# sourceMappingURL=course-structure.service.js.map