@hed-hog/lms 0.0.349 → 0.0.351

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 (496) hide show
  1. package/dist/achievement/achievement.controller.d.ts +62 -0
  2. package/dist/achievement/achievement.controller.d.ts.map +1 -0
  3. package/dist/achievement/achievement.controller.js +90 -0
  4. package/dist/achievement/achievement.controller.js.map +1 -0
  5. package/dist/achievement/achievement.mcp-tools.d.ts +19 -0
  6. package/dist/achievement/achievement.mcp-tools.d.ts.map +1 -0
  7. package/dist/achievement/achievement.mcp-tools.js +157 -0
  8. package/dist/achievement/achievement.mcp-tools.js.map +1 -0
  9. package/dist/achievement/achievement.module.d.ts +3 -0
  10. package/dist/achievement/achievement.module.d.ts.map +1 -0
  11. package/dist/achievement/achievement.module.js +26 -0
  12. package/dist/achievement/achievement.module.js.map +1 -0
  13. package/dist/achievement/achievement.service.d.ts +72 -0
  14. package/dist/achievement/achievement.service.d.ts.map +1 -0
  15. package/dist/achievement/achievement.service.js +200 -0
  16. package/dist/achievement/achievement.service.js.map +1 -0
  17. package/dist/achievement/dto/create-achievement.dto.d.ts +12 -0
  18. package/dist/achievement/dto/create-achievement.dto.d.ts.map +1 -0
  19. package/dist/achievement/dto/create-achievement.dto.js +60 -0
  20. package/dist/achievement/dto/create-achievement.dto.js.map +1 -0
  21. package/dist/achievement/dto/update-achievement.dto.d.ts +11 -0
  22. package/dist/achievement/dto/update-achievement.dto.d.ts.map +1 -0
  23. package/dist/achievement/dto/update-achievement.dto.js +57 -0
  24. package/dist/achievement/dto/update-achievement.dto.js.map +1 -0
  25. package/dist/bitcode-wallet/bitcode-wallet.controller.d.ts +114 -0
  26. package/dist/bitcode-wallet/bitcode-wallet.controller.d.ts.map +1 -0
  27. package/dist/bitcode-wallet/bitcode-wallet.controller.js +102 -0
  28. package/dist/bitcode-wallet/bitcode-wallet.controller.js.map +1 -0
  29. package/dist/bitcode-wallet/bitcode-wallet.mcp-tools.d.ts +25 -0
  30. package/dist/bitcode-wallet/bitcode-wallet.mcp-tools.d.ts.map +1 -0
  31. package/dist/bitcode-wallet/bitcode-wallet.mcp-tools.js +160 -0
  32. package/dist/bitcode-wallet/bitcode-wallet.mcp-tools.js.map +1 -0
  33. package/dist/bitcode-wallet/bitcode-wallet.module.d.ts +3 -0
  34. package/dist/bitcode-wallet/bitcode-wallet.module.d.ts.map +1 -0
  35. package/dist/bitcode-wallet/bitcode-wallet.module.js +26 -0
  36. package/dist/bitcode-wallet/bitcode-wallet.module.js.map +1 -0
  37. package/dist/bitcode-wallet/bitcode-wallet.service.d.ts +127 -0
  38. package/dist/bitcode-wallet/bitcode-wallet.service.d.ts.map +1 -0
  39. package/dist/bitcode-wallet/bitcode-wallet.service.js +264 -0
  40. package/dist/bitcode-wallet/bitcode-wallet.service.js.map +1 -0
  41. package/dist/bitcode-wallet/dto/create-bitcode-wallet-transaction.dto.d.ts +8 -0
  42. package/dist/bitcode-wallet/dto/create-bitcode-wallet-transaction.dto.d.ts.map +1 -0
  43. package/dist/bitcode-wallet/dto/create-bitcode-wallet-transaction.dto.js +33 -0
  44. package/dist/bitcode-wallet/dto/create-bitcode-wallet-transaction.dto.js.map +1 -0
  45. package/dist/bitcode-wallet/dto/create-bitcode-wallet.dto.d.ts +4 -0
  46. package/dist/bitcode-wallet/dto/create-bitcode-wallet.dto.d.ts.map +1 -0
  47. package/dist/bitcode-wallet/dto/create-bitcode-wallet.dto.js +22 -0
  48. package/dist/bitcode-wallet/dto/create-bitcode-wallet.dto.js.map +1 -0
  49. package/dist/bitcode-wallet/dto/update-bitcode-wallet-transaction.dto.d.ts +7 -0
  50. package/dist/bitcode-wallet/dto/update-bitcode-wallet-transaction.dto.d.ts.map +1 -0
  51. package/dist/bitcode-wallet/dto/update-bitcode-wallet-transaction.dto.js +35 -0
  52. package/dist/bitcode-wallet/dto/update-bitcode-wallet-transaction.dto.js.map +1 -0
  53. package/dist/bitcode-wallet/dto/update-bitcode-wallet.dto.d.ts +4 -0
  54. package/dist/bitcode-wallet/dto/update-bitcode-wallet.dto.d.ts.map +1 -0
  55. package/dist/bitcode-wallet/dto/update-bitcode-wallet.dto.js +23 -0
  56. package/dist/bitcode-wallet/dto/update-bitcode-wallet.dto.js.map +1 -0
  57. package/dist/certificate/certificate.controller.d.ts +24 -2
  58. package/dist/certificate/certificate.controller.d.ts.map +1 -1
  59. package/dist/certificate/certificate.controller.js +20 -6
  60. package/dist/certificate/certificate.controller.js.map +1 -1
  61. package/dist/certificate/certificate.mcp-tools.d.ts +24 -0
  62. package/dist/certificate/certificate.mcp-tools.d.ts.map +1 -0
  63. package/dist/certificate/certificate.mcp-tools.js +188 -0
  64. package/dist/certificate/certificate.mcp-tools.js.map +1 -0
  65. package/dist/certificate/certificate.module.d.ts.map +1 -1
  66. package/dist/certificate/certificate.module.js +2 -1
  67. package/dist/certificate/certificate.module.js.map +1 -1
  68. package/dist/certificate/certificate.service.d.ts +30 -4
  69. package/dist/certificate/certificate.service.d.ts.map +1 -1
  70. package/dist/certificate/certificate.service.js +157 -8
  71. package/dist/certificate/certificate.service.js.map +1 -1
  72. package/dist/certificate/dto/update-certificate-public-access.dto.d.ts +4 -0
  73. package/dist/certificate/dto/update-certificate-public-access.dto.d.ts.map +1 -0
  74. package/dist/certificate/dto/update-certificate-public-access.dto.js +21 -0
  75. package/dist/certificate/dto/update-certificate-public-access.dto.js.map +1 -0
  76. package/dist/class-group/class-group.mcp-tools.d.ts +87 -0
  77. package/dist/class-group/class-group.mcp-tools.d.ts.map +1 -0
  78. package/dist/class-group/class-group.mcp-tools.js +553 -0
  79. package/dist/class-group/class-group.mcp-tools.js.map +1 -0
  80. package/dist/class-group/class-group.module.d.ts.map +1 -1
  81. package/dist/class-group/class-group.module.js +2 -1
  82. package/dist/class-group/class-group.module.js.map +1 -1
  83. package/dist/class-group/class-group.service.d.ts +3 -1
  84. package/dist/class-group/class-group.service.d.ts.map +1 -1
  85. package/dist/class-group/class-group.service.js +45 -2
  86. package/dist/class-group/class-group.service.js.map +1 -1
  87. package/dist/course/course-operations-integration.service.d.ts +40 -0
  88. package/dist/course/course-operations-integration.service.d.ts.map +1 -0
  89. package/dist/course/course-operations-integration.service.js +372 -0
  90. package/dist/course/course-operations-integration.service.js.map +1 -0
  91. package/dist/course/course-structure.controller.d.ts +67 -14
  92. package/dist/course/course-structure.controller.d.ts.map +1 -1
  93. package/dist/course/course-structure.controller.js +45 -2
  94. package/dist/course/course-structure.controller.js.map +1 -1
  95. package/dist/course/course-structure.service.d.ts +58 -9
  96. package/dist/course/course-structure.service.d.ts.map +1 -1
  97. package/dist/course/course-structure.service.js +260 -62
  98. package/dist/course/course-structure.service.js.map +1 -1
  99. package/dist/course/course-video-conversion.service.d.ts +37 -0
  100. package/dist/course/course-video-conversion.service.d.ts.map +1 -0
  101. package/dist/course/course-video-conversion.service.js +308 -0
  102. package/dist/course/course-video-conversion.service.js.map +1 -0
  103. package/dist/course/course.controller.d.ts +29 -0
  104. package/dist/course/course.controller.d.ts.map +1 -1
  105. package/dist/course/course.controller.js +23 -0
  106. package/dist/course/course.controller.js.map +1 -1
  107. package/dist/course/course.mcp-tools.d.ts +90 -0
  108. package/dist/course/course.mcp-tools.d.ts.map +1 -0
  109. package/dist/course/course.mcp-tools.js +520 -0
  110. package/dist/course/course.mcp-tools.js.map +1 -0
  111. package/dist/course/course.module.d.ts.map +1 -1
  112. package/dist/course/course.module.js +23 -3
  113. package/dist/course/course.module.js.map +1 -1
  114. package/dist/course/course.service.d.ts +30 -1
  115. package/dist/course/course.service.d.ts.map +1 -1
  116. package/dist/course/course.service.js +159 -70
  117. package/dist/course/course.service.js.map +1 -1
  118. package/dist/course/dto/create-course-structure-lesson.dto.d.ts +5 -1
  119. package/dist/course/dto/create-course-structure-lesson.dto.d.ts.map +1 -1
  120. package/dist/course/dto/create-course-structure-lesson.dto.js +16 -2
  121. package/dist/course/dto/create-course-structure-lesson.dto.js.map +1 -1
  122. package/dist/course/dto/create-course.dto.d.ts +2 -0
  123. package/dist/course/dto/create-course.dto.d.ts.map +1 -1
  124. package/dist/course/dto/create-course.dto.js +16 -0
  125. package/dist/course/dto/create-course.dto.js.map +1 -1
  126. package/dist/course/dto/update-course-resources.dto.d.ts +11 -0
  127. package/dist/course/dto/update-course-resources.dto.d.ts.map +1 -0
  128. package/dist/course/dto/update-course-resources.dto.js +51 -0
  129. package/dist/course/dto/update-course-resources.dto.js.map +1 -0
  130. package/dist/course-lesson-discussion/course-lesson-discussion.controller.d.ts +23 -0
  131. package/dist/course-lesson-discussion/course-lesson-discussion.controller.d.ts.map +1 -0
  132. package/dist/course-lesson-discussion/course-lesson-discussion.controller.js +78 -0
  133. package/dist/course-lesson-discussion/course-lesson-discussion.controller.js.map +1 -0
  134. package/dist/course-lesson-discussion/course-lesson-discussion.mcp-tools.d.ts +22 -0
  135. package/dist/course-lesson-discussion/course-lesson-discussion.mcp-tools.d.ts.map +1 -0
  136. package/dist/course-lesson-discussion/course-lesson-discussion.mcp-tools.js +120 -0
  137. package/dist/course-lesson-discussion/course-lesson-discussion.mcp-tools.js.map +1 -0
  138. package/dist/course-lesson-discussion/course-lesson-discussion.module.d.ts +3 -0
  139. package/dist/course-lesson-discussion/course-lesson-discussion.module.d.ts.map +1 -0
  140. package/dist/course-lesson-discussion/course-lesson-discussion.module.js +26 -0
  141. package/dist/course-lesson-discussion/course-lesson-discussion.module.js.map +1 -0
  142. package/dist/course-lesson-discussion/course-lesson-discussion.service.d.ts +49 -0
  143. package/dist/course-lesson-discussion/course-lesson-discussion.service.d.ts.map +1 -0
  144. package/dist/course-lesson-discussion/course-lesson-discussion.service.js +272 -0
  145. package/dist/course-lesson-discussion/course-lesson-discussion.service.js.map +1 -0
  146. package/dist/course-lesson-discussion/dto/create-course-lesson-discussion-topic.dto.d.ts +6 -0
  147. package/dist/course-lesson-discussion/dto/create-course-lesson-discussion-topic.dto.d.ts.map +1 -0
  148. package/dist/course-lesson-discussion/dto/create-course-lesson-discussion-topic.dto.js +33 -0
  149. package/dist/course-lesson-discussion/dto/create-course-lesson-discussion-topic.dto.js.map +1 -0
  150. package/dist/course-lesson-note/course-lesson-note.controller.d.ts +53 -0
  151. package/dist/course-lesson-note/course-lesson-note.controller.d.ts.map +1 -0
  152. package/dist/course-lesson-note/course-lesson-note.controller.js +93 -0
  153. package/dist/course-lesson-note/course-lesson-note.controller.js.map +1 -0
  154. package/dist/course-lesson-note/course-lesson-note.mcp-tools.d.ts +27 -0
  155. package/dist/course-lesson-note/course-lesson-note.mcp-tools.d.ts.map +1 -0
  156. package/dist/course-lesson-note/course-lesson-note.mcp-tools.js +145 -0
  157. package/dist/course-lesson-note/course-lesson-note.mcp-tools.js.map +1 -0
  158. package/dist/course-lesson-note/course-lesson-note.module.d.ts +3 -0
  159. package/dist/course-lesson-note/course-lesson-note.module.d.ts.map +1 -0
  160. package/dist/course-lesson-note/course-lesson-note.module.js +26 -0
  161. package/dist/course-lesson-note/course-lesson-note.module.js.map +1 -0
  162. package/dist/course-lesson-note/course-lesson-note.service.d.ts +59 -0
  163. package/dist/course-lesson-note/course-lesson-note.service.d.ts.map +1 -0
  164. package/dist/course-lesson-note/course-lesson-note.service.js +195 -0
  165. package/dist/course-lesson-note/course-lesson-note.service.js.map +1 -0
  166. package/dist/course-lesson-note/dto/create-course-lesson-note.dto.d.ts +6 -0
  167. package/dist/course-lesson-note/dto/create-course-lesson-note.dto.d.ts.map +1 -0
  168. package/dist/course-lesson-note/dto/create-course-lesson-note.dto.js +33 -0
  169. package/dist/course-lesson-note/dto/create-course-lesson-note.dto.js.map +1 -0
  170. package/dist/course-lesson-note/dto/update-course-lesson-note.dto.d.ts +6 -0
  171. package/dist/course-lesson-note/dto/update-course-lesson-note.dto.d.ts.map +1 -0
  172. package/dist/course-lesson-note/dto/update-course-lesson-note.dto.js +35 -0
  173. package/dist/course-lesson-note/dto/update-course-lesson-note.dto.js.map +1 -0
  174. package/dist/dashboard/dashboard.mcp-tools.d.ts +10 -0
  175. package/dist/dashboard/dashboard.mcp-tools.d.ts.map +1 -0
  176. package/dist/dashboard/dashboard.mcp-tools.js +46 -0
  177. package/dist/dashboard/dashboard.mcp-tools.js.map +1 -0
  178. package/dist/dashboard/dashboard.module.d.ts.map +1 -1
  179. package/dist/dashboard/dashboard.module.js +2 -1
  180. package/dist/dashboard/dashboard.module.js.map +1 -1
  181. package/dist/enterprise/enterprise.controller.d.ts +3 -3
  182. package/dist/enterprise/enterprise.controller.d.ts.map +1 -1
  183. package/dist/enterprise/enterprise.controller.js +0 -1
  184. package/dist/enterprise/enterprise.controller.js.map +1 -1
  185. package/dist/enterprise/enterprise.mcp-tools.d.ts +82 -0
  186. package/dist/enterprise/enterprise.mcp-tools.d.ts.map +1 -0
  187. package/dist/enterprise/enterprise.mcp-tools.js +516 -0
  188. package/dist/enterprise/enterprise.mcp-tools.js.map +1 -0
  189. package/dist/enterprise/enterprise.module.d.ts.map +1 -1
  190. package/dist/enterprise/enterprise.module.js +2 -1
  191. package/dist/enterprise/enterprise.module.js.map +1 -1
  192. package/dist/enterprise/enterprise.service.d.ts +3 -3
  193. package/dist/enterprise/training/enterprise-training.module.d.ts.map +1 -1
  194. package/dist/enterprise/training/enterprise-training.module.js +11 -1
  195. package/dist/enterprise/training/enterprise-training.module.js.map +1 -1
  196. package/dist/enterprise/training/training-admin.mcp-tools.d.ts +79 -0
  197. package/dist/enterprise/training/training-admin.mcp-tools.d.ts.map +1 -0
  198. package/dist/enterprise/training/training-admin.mcp-tools.js +620 -0
  199. package/dist/enterprise/training/training-admin.mcp-tools.js.map +1 -0
  200. package/dist/enterprise/training/training-instructor.mcp-tools.d.ts +47 -0
  201. package/dist/enterprise/training/training-instructor.mcp-tools.d.ts.map +1 -0
  202. package/dist/enterprise/training/training-instructor.mcp-tools.js +275 -0
  203. package/dist/enterprise/training/training-instructor.mcp-tools.js.map +1 -0
  204. package/dist/enterprise/training/training-student.controller.d.ts +24 -0
  205. package/dist/enterprise/training/training-student.controller.d.ts.map +1 -1
  206. package/dist/enterprise/training/training-student.controller.js +22 -0
  207. package/dist/enterprise/training/training-student.controller.js.map +1 -1
  208. package/dist/enterprise/training/training-student.mcp-tools.d.ts +27 -0
  209. package/dist/enterprise/training/training-student.mcp-tools.d.ts.map +1 -0
  210. package/dist/enterprise/training/training-student.mcp-tools.js +186 -0
  211. package/dist/enterprise/training/training-student.mcp-tools.js.map +1 -0
  212. package/dist/enterprise/training/training-student.service.d.ts +32 -0
  213. package/dist/enterprise/training/training-student.service.d.ts.map +1 -1
  214. package/dist/enterprise/training/training-student.service.js +138 -0
  215. package/dist/enterprise/training/training-student.service.js.map +1 -1
  216. package/dist/evaluation/evaluation.mcp-tools.d.ts +25 -0
  217. package/dist/evaluation/evaluation.mcp-tools.d.ts.map +1 -0
  218. package/dist/evaluation/evaluation.mcp-tools.js +220 -0
  219. package/dist/evaluation/evaluation.mcp-tools.js.map +1 -0
  220. package/dist/evaluation/evaluation.module.d.ts.map +1 -1
  221. package/dist/evaluation/evaluation.module.js +2 -1
  222. package/dist/evaluation/evaluation.module.js.map +1 -1
  223. package/dist/evaluation/evaluation.service.d.ts.map +1 -1
  224. package/dist/evaluation/evaluation.service.js +9 -2
  225. package/dist/evaluation/evaluation.service.js.map +1 -1
  226. package/dist/exam/dto/create-exam-question.dto.d.ts +2 -0
  227. package/dist/exam/dto/create-exam-question.dto.d.ts.map +1 -1
  228. package/dist/exam/dto/create-exam-question.dto.js +10 -0
  229. package/dist/exam/dto/create-exam-question.dto.js.map +1 -1
  230. package/dist/exam/dto/create-exam.dto.d.ts +2 -0
  231. package/dist/exam/dto/create-exam.dto.d.ts.map +1 -1
  232. package/dist/exam/dto/create-exam.dto.js +10 -0
  233. package/dist/exam/dto/create-exam.dto.js.map +1 -1
  234. package/dist/exam/dto/create-question-subject.dto.d.ts +5 -0
  235. package/dist/exam/dto/create-question-subject.dto.d.ts.map +1 -0
  236. package/dist/exam/dto/create-question-subject.dto.js +28 -0
  237. package/dist/exam/dto/create-question-subject.dto.js.map +1 -0
  238. package/dist/exam/exam-attempt.controller.d.ts +4 -0
  239. package/dist/exam/exam-attempt.controller.d.ts.map +1 -1
  240. package/dist/exam/exam-attempt.service.d.ts +7 -1
  241. package/dist/exam/exam-attempt.service.d.ts.map +1 -1
  242. package/dist/exam/exam-attempt.service.js +47 -17
  243. package/dist/exam/exam-attempt.service.js.map +1 -1
  244. package/dist/exam/exam.controller.d.ts +34 -0
  245. package/dist/exam/exam.controller.d.ts.map +1 -1
  246. package/dist/exam/exam.controller.js +27 -0
  247. package/dist/exam/exam.controller.js.map +1 -1
  248. package/dist/exam/exam.mcp-tools.d.ts +62 -0
  249. package/dist/exam/exam.mcp-tools.d.ts.map +1 -0
  250. package/dist/exam/exam.mcp-tools.js +430 -0
  251. package/dist/exam/exam.mcp-tools.js.map +1 -0
  252. package/dist/exam/exam.module.d.ts.map +1 -1
  253. package/dist/exam/exam.module.js +2 -1
  254. package/dist/exam/exam.module.js.map +1 -1
  255. package/dist/exam/exam.service.d.ts +38 -0
  256. package/dist/exam/exam.service.d.ts.map +1 -1
  257. package/dist/exam/exam.service.js +114 -17
  258. package/dist/exam/exam.service.js.map +1 -1
  259. package/dist/index.d.ts +10 -0
  260. package/dist/index.d.ts.map +1 -1
  261. package/dist/index.js +10 -0
  262. package/dist/index.js.map +1 -1
  263. package/dist/instructor/instructor.mcp-tools.d.ts +41 -0
  264. package/dist/instructor/instructor.mcp-tools.d.ts.map +1 -0
  265. package/dist/instructor/instructor.mcp-tools.js +326 -0
  266. package/dist/instructor/instructor.mcp-tools.js.map +1 -0
  267. package/dist/instructor/instructor.module.d.ts.map +1 -1
  268. package/dist/instructor/instructor.module.js +2 -1
  269. package/dist/instructor/instructor.module.js.map +1 -1
  270. package/dist/lms.module.d.ts.map +1 -1
  271. package/dist/lms.module.js +18 -0
  272. package/dist/lms.module.js.map +1 -1
  273. package/dist/realtime/lms-realtime.controller.d.ts +7 -0
  274. package/dist/realtime/lms-realtime.controller.d.ts.map +1 -0
  275. package/dist/realtime/lms-realtime.controller.js +34 -0
  276. package/dist/realtime/lms-realtime.controller.js.map +1 -0
  277. package/dist/realtime/lms-realtime.module.d.ts +3 -0
  278. package/dist/realtime/lms-realtime.module.d.ts.map +1 -0
  279. package/dist/realtime/lms-realtime.module.js +25 -0
  280. package/dist/realtime/lms-realtime.module.js.map +1 -0
  281. package/dist/realtime/lms-realtime.service.d.ts +36 -0
  282. package/dist/realtime/lms-realtime.service.d.ts.map +1 -0
  283. package/dist/realtime/lms-realtime.service.js +59 -0
  284. package/dist/realtime/lms-realtime.service.js.map +1 -0
  285. package/dist/realtime/lms-realtime.subscriber.d.ts +10 -0
  286. package/dist/realtime/lms-realtime.subscriber.d.ts.map +1 -0
  287. package/dist/realtime/lms-realtime.subscriber.js +70 -0
  288. package/dist/realtime/lms-realtime.subscriber.js.map +1 -0
  289. package/dist/reports/reports.mcp-tools.d.ts +10 -0
  290. package/dist/reports/reports.mcp-tools.d.ts.map +1 -0
  291. package/dist/reports/reports.mcp-tools.js +50 -0
  292. package/dist/reports/reports.mcp-tools.js.map +1 -0
  293. package/dist/reports/reports.module.d.ts.map +1 -1
  294. package/dist/reports/reports.module.js +2 -1
  295. package/dist/reports/reports.module.js.map +1 -1
  296. package/dist/training/training.mcp-tools.d.ts +20 -0
  297. package/dist/training/training.mcp-tools.d.ts.map +1 -0
  298. package/dist/training/training.mcp-tools.js +181 -0
  299. package/dist/training/training.mcp-tools.js.map +1 -0
  300. package/dist/training/training.module.d.ts.map +1 -1
  301. package/dist/training/training.module.js +2 -1
  302. package/dist/training/training.module.js.map +1 -1
  303. package/dist/video-resolution-profile/dto/create-video-resolution-profile.dto.d.ts +6 -0
  304. package/dist/video-resolution-profile/dto/create-video-resolution-profile.dto.d.ts.map +1 -0
  305. package/dist/video-resolution-profile/dto/create-video-resolution-profile.dto.js +33 -0
  306. package/dist/video-resolution-profile/dto/create-video-resolution-profile.dto.js.map +1 -0
  307. package/dist/video-resolution-profile/dto/update-video-resolution-profile.dto.d.ts +6 -0
  308. package/dist/video-resolution-profile/dto/update-video-resolution-profile.dto.d.ts.map +1 -0
  309. package/dist/video-resolution-profile/dto/update-video-resolution-profile.dto.js +33 -0
  310. package/dist/video-resolution-profile/dto/update-video-resolution-profile.dto.js.map +1 -0
  311. package/dist/video-resolution-profile/video-resolution-profile.controller.d.ts +38 -0
  312. package/dist/video-resolution-profile/video-resolution-profile.controller.d.ts.map +1 -0
  313. package/dist/video-resolution-profile/video-resolution-profile.controller.js +89 -0
  314. package/dist/video-resolution-profile/video-resolution-profile.controller.js.map +1 -0
  315. package/dist/video-resolution-profile/video-resolution-profile.mcp-tools.d.ts +26 -0
  316. package/dist/video-resolution-profile/video-resolution-profile.mcp-tools.d.ts.map +1 -0
  317. package/dist/video-resolution-profile/video-resolution-profile.mcp-tools.js +160 -0
  318. package/dist/video-resolution-profile/video-resolution-profile.mcp-tools.js.map +1 -0
  319. package/dist/video-resolution-profile/video-resolution-profile.module.d.ts +3 -0
  320. package/dist/video-resolution-profile/video-resolution-profile.module.d.ts.map +1 -0
  321. package/dist/video-resolution-profile/video-resolution-profile.module.js +26 -0
  322. package/dist/video-resolution-profile/video-resolution-profile.module.js.map +1 -0
  323. package/dist/video-resolution-profile/video-resolution-profile.service.d.ts +45 -0
  324. package/dist/video-resolution-profile/video-resolution-profile.service.d.ts.map +1 -0
  325. package/dist/video-resolution-profile/video-resolution-profile.service.js +117 -0
  326. package/dist/video-resolution-profile/video-resolution-profile.service.js.map +1 -0
  327. package/hedhog/data/integration_event_catalog.yaml +69 -0
  328. package/hedhog/data/menu.yaml +51 -0
  329. package/hedhog/data/route.yaml +2484 -0
  330. package/hedhog/data/video_resolution_profile.yaml +7 -0
  331. package/hedhog/frontend/app/_components/class-form-sheet.tsx.ejs +432 -422
  332. package/hedhog/frontend/app/_components/course-form-sheet.tsx.ejs +200 -67
  333. package/hedhog/frontend/app/_components/course-picker.tsx.ejs +228 -0
  334. package/hedhog/frontend/app/_components/create-lms-instructor-sheet.tsx.ejs +7 -4
  335. package/hedhog/frontend/app/_components/create-lms-person-sheet.tsx.ejs +2 -2
  336. package/hedhog/frontend/app/_components/create-lms-student-person-sheet.tsx.ejs +2 -2
  337. package/hedhog/frontend/app/_lib/editor/templateSerializer.ts.ejs +34 -4
  338. package/hedhog/frontend/app/_lib/editor/types.ts.ejs +28 -3
  339. package/hedhog/frontend/app/_lib/hooks/use-lms-realtime-refresh.ts.ejs +58 -0
  340. package/hedhog/frontend/app/achievements/page.tsx.ejs +850 -0
  341. package/hedhog/frontend/app/bitcodes/page.tsx.ejs +1016 -0
  342. package/hedhog/frontend/app/certificates/issued/page.tsx.ejs +68 -5
  343. package/hedhog/frontend/app/certificates/models/CanvasStage.tsx.ejs +29 -8
  344. package/hedhog/frontend/app/certificates/models/LeftPanel.tsx.ejs +14 -0
  345. package/hedhog/frontend/app/certificates/models/RightPanel.tsx.ejs +194 -9
  346. package/hedhog/frontend/app/certificates/models/page.tsx.ejs +15 -5
  347. package/hedhog/frontend/app/classes/[id]/page.tsx.ejs +16 -5
  348. package/hedhog/frontend/app/classes/page.tsx.ejs +126 -2105
  349. package/hedhog/frontend/app/courses/[id]/_components/CourseCertificateCard.tsx.ejs +19 -9
  350. package/hedhog/frontend/app/courses/[id]/_components/CourseClassificationCard.tsx.ejs +24 -1
  351. package/hedhog/frontend/app/courses/[id]/_components/CourseContentCard.tsx.ejs +1 -1
  352. package/hedhog/frontend/app/courses/[id]/_components/CourseMainInfoCard.tsx.ejs +1 -1
  353. package/hedhog/frontend/app/courses/[id]/_components/CourseRelationsCard.tsx.ejs +51 -11
  354. package/hedhog/frontend/app/courses/[id]/_components/CourseSectionCard.tsx.ejs +11 -6
  355. package/hedhog/frontend/app/courses/[id]/_components/CourseSummaryCard.tsx.ejs +7 -4
  356. package/hedhog/frontend/app/courses/[id]/_components/course-edit-types.ts.ejs +2 -0
  357. package/hedhog/frontend/app/courses/[id]/page.tsx.ejs +24 -96
  358. package/hedhog/frontend/app/courses/[id]/structure/_components/course-tree-dnd.tsx.ejs +80 -66
  359. package/hedhog/frontend/app/courses/[id]/structure/_components/editor-course.tsx.ejs +1286 -230
  360. package/hedhog/frontend/app/courses/[id]/structure/_components/editor-lesson.tsx.ejs +1334 -153
  361. package/hedhog/frontend/app/courses/[id]/structure/_components/editor-session.tsx.ejs +11 -11
  362. package/hedhog/frontend/app/courses/[id]/structure/_components/mock-data.ts.ejs +1 -1
  363. package/hedhog/frontend/app/courses/[id]/structure/_components/shortcuts-help.tsx.ejs +62 -52
  364. package/hedhog/frontend/app/courses/[id]/structure/_components/tree-context-menu.tsx.ejs +106 -4
  365. package/hedhog/frontend/app/courses/[id]/structure/_components/types.ts.ejs +4 -1
  366. package/hedhog/frontend/app/courses/[id]/structure/_data/adapters/course-structure.adapter.ts.ejs +30 -7
  367. package/hedhog/frontend/app/courses/[id]/structure/_data/services/course-structure.service.ts.ejs +138 -6
  368. package/hedhog/frontend/app/courses/[id]/structure/_data/types/api-course.types.ts.ejs +16 -2
  369. package/hedhog/frontend/app/courses/[id]/structure/_data/use-course-structure-mutations.ts.ejs +1 -0
  370. package/hedhog/frontend/app/courses/page.tsx.ejs +282 -113
  371. package/hedhog/frontend/app/enterprise/[id]/page.tsx.ejs +1 -1
  372. package/hedhog/frontend/app/enterprise/_components/enterprise-admin-create-sheet.tsx.ejs +10 -3
  373. package/hedhog/frontend/app/enterprise/_components/enterprise-course-create-sheet.tsx.ejs +3 -0
  374. package/hedhog/frontend/app/enterprise/_components/enterprise-course-edit-sheet.tsx.ejs +7 -0
  375. package/hedhog/frontend/app/enterprise/_components/enterprise-detail-sheet.tsx.ejs +8 -4
  376. package/hedhog/frontend/app/enterprise/_components/enterprise-person-edit-sheet.tsx.ejs +2 -2
  377. package/hedhog/frontend/app/enterprise/_components/enterprise-sheet.tsx.ejs +10 -4
  378. package/hedhog/frontend/app/enterprise/_components/enterprise-student-create-sheet.tsx.ejs +10 -3
  379. package/hedhog/frontend/app/enterprise/_components/enterprise-user-create-sheet.tsx.ejs +10 -3
  380. package/hedhog/frontend/app/evaluations/_components/evaluation-topic-form-sheet.tsx.ejs +10 -3
  381. package/hedhog/frontend/app/exams/[id]/questions/page.tsx.ejs +186 -5
  382. package/hedhog/frontend/app/exams/page.tsx.ejs +89 -26
  383. package/hedhog/frontend/app/instructor-skills/page.tsx.ejs +10 -3
  384. package/hedhog/frontend/app/instructors/_components/instructor-form-sheet.tsx.ejs +190 -17
  385. package/hedhog/frontend/app/instructors/page.tsx.ejs +1 -0
  386. package/hedhog/frontend/app/layout.tsx.ejs +5 -1
  387. package/hedhog/frontend/app/paths/page.tsx.ejs +19 -29
  388. package/hedhog/frontend/app/reports/evaluations/page.tsx.ejs +10 -10
  389. package/hedhog/frontend/app/training/page.tsx.ejs +19 -29
  390. package/hedhog/frontend/app/video-resolution-profiles/page.tsx.ejs +607 -0
  391. package/hedhog/frontend/messages/en.json +563 -20
  392. package/hedhog/frontend/messages/pt.json +563 -20
  393. package/hedhog/query/triggers.sql +53 -0
  394. package/hedhog/table/achievement.yaml +46 -0
  395. package/hedhog/table/bitcode_wallet.yaml +18 -0
  396. package/hedhog/table/bitcode_wallet_transaction.yaml +22 -0
  397. package/hedhog/table/certificate.yaml +3 -0
  398. package/hedhog/table/course.yaml +8 -0
  399. package/hedhog/table/course_file.yaml +23 -0
  400. package/hedhog/table/course_lesson.yaml +5 -0
  401. package/hedhog/table/course_lesson_discussion_like.yaml +21 -0
  402. package/hedhog/table/course_lesson_discussion_topic.yaml +35 -0
  403. package/hedhog/table/course_lesson_file.yaml +8 -0
  404. package/hedhog/table/course_lesson_note.yaml +34 -0
  405. package/hedhog/table/course_video_resolution_profile.yaml +22 -0
  406. package/hedhog/table/exam.yaml +5 -0
  407. package/hedhog/table/learning_path_enrollment.yaml +6 -0
  408. package/hedhog/table/question.yaml +10 -0
  409. package/hedhog/table/question_subject.yaml +17 -0
  410. package/hedhog/table/student_activity_streak.yaml +25 -0
  411. package/hedhog/table/video_resolution_profile.yaml +18 -0
  412. package/package.json +8 -7
  413. package/src/achievement/achievement.controller.ts +60 -0
  414. package/src/achievement/achievement.mcp-tools.ts +108 -0
  415. package/src/achievement/achievement.module.ts +13 -0
  416. package/src/achievement/achievement.service.ts +252 -0
  417. package/src/achievement/dto/create-achievement.dto.ts +50 -0
  418. package/src/achievement/dto/update-achievement.dto.ts +47 -0
  419. package/src/bitcode-wallet/bitcode-wallet.controller.ts +69 -0
  420. package/src/bitcode-wallet/bitcode-wallet.mcp-tools.ts +107 -0
  421. package/src/bitcode-wallet/bitcode-wallet.module.ts +13 -0
  422. package/src/bitcode-wallet/bitcode-wallet.service.ts +361 -0
  423. package/src/bitcode-wallet/dto/create-bitcode-wallet-transaction.dto.ts +27 -0
  424. package/src/bitcode-wallet/dto/create-bitcode-wallet.dto.ts +7 -0
  425. package/src/bitcode-wallet/dto/update-bitcode-wallet-transaction.dto.ts +28 -0
  426. package/src/bitcode-wallet/dto/update-bitcode-wallet.dto.ts +8 -0
  427. package/src/certificate/certificate.controller.ts +17 -3
  428. package/src/certificate/certificate.mcp-tools.ts +131 -0
  429. package/src/certificate/certificate.module.ts +2 -1
  430. package/src/certificate/certificate.service.ts +193 -7
  431. package/src/certificate/dto/update-certificate-public-access.dto.ts +6 -0
  432. package/src/class-group/class-group.mcp-tools.ts +435 -0
  433. package/src/class-group/class-group.module.ts +2 -1
  434. package/src/class-group/class-group.service.ts +51 -1
  435. package/src/course/course-operations-integration.service.ts +520 -0
  436. package/src/course/course-structure.controller.ts +46 -10
  437. package/src/course/course-structure.service.ts +236 -27
  438. package/src/course/course-video-conversion.service.ts +415 -0
  439. package/src/course/course.controller.ts +18 -0
  440. package/src/course/course.mcp-tools.ts +409 -0
  441. package/src/course/course.module.ts +23 -3
  442. package/src/course/course.service.ts +178 -29
  443. package/src/course/dto/create-course-structure-lesson.dto.ts +13 -2
  444. package/src/course/dto/create-course.dto.ts +16 -0
  445. package/src/course/dto/update-course-resources.dto.ts +39 -0
  446. package/src/course-lesson-discussion/course-lesson-discussion.controller.ts +55 -0
  447. package/src/course-lesson-discussion/course-lesson-discussion.mcp-tools.ts +75 -0
  448. package/src/course-lesson-discussion/course-lesson-discussion.module.ts +13 -0
  449. package/src/course-lesson-discussion/course-lesson-discussion.service.ts +354 -0
  450. package/src/course-lesson-discussion/dto/create-course-lesson-discussion-topic.dto.ts +16 -0
  451. package/src/course-lesson-note/course-lesson-note.controller.ts +68 -0
  452. package/src/course-lesson-note/course-lesson-note.mcp-tools.ts +96 -0
  453. package/src/course-lesson-note/course-lesson-note.module.ts +13 -0
  454. package/src/course-lesson-note/course-lesson-note.service.ts +248 -0
  455. package/src/course-lesson-note/dto/create-course-lesson-note.dto.ts +16 -0
  456. package/src/course-lesson-note/dto/update-course-lesson-note.dto.ts +18 -0
  457. package/src/dashboard/dashboard.mcp-tools.ts +23 -0
  458. package/src/dashboard/dashboard.module.ts +2 -1
  459. package/src/enterprise/enterprise.controller.ts +0 -1
  460. package/src/enterprise/enterprise.mcp-tools.ts +403 -0
  461. package/src/enterprise/enterprise.module.ts +2 -1
  462. package/src/enterprise/training/enterprise-training.module.ts +11 -1
  463. package/src/enterprise/training/training-admin.mcp-tools.ts +479 -0
  464. package/src/enterprise/training/training-instructor.mcp-tools.ts +210 -0
  465. package/src/enterprise/training/training-student.controller.ts +17 -1
  466. package/src/enterprise/training/training-student.mcp-tools.ts +136 -0
  467. package/src/enterprise/training/training-student.service.ts +167 -1
  468. package/src/evaluation/evaluation.mcp-tools.ts +155 -0
  469. package/src/evaluation/evaluation.module.ts +2 -1
  470. package/src/evaluation/evaluation.service.ts +9 -2
  471. package/src/exam/dto/create-exam-question.dto.ts +8 -0
  472. package/src/exam/dto/create-exam.dto.ts +8 -0
  473. package/src/exam/dto/create-question-subject.dto.ts +12 -0
  474. package/src/exam/exam-attempt.service.ts +46 -14
  475. package/src/exam/exam.controller.ts +19 -0
  476. package/src/exam/exam.mcp-tools.ts +337 -0
  477. package/src/exam/exam.module.ts +2 -1
  478. package/src/exam/exam.service.ts +121 -0
  479. package/src/index.ts +10 -0
  480. package/src/instructor/instructor.mcp-tools.ts +243 -0
  481. package/src/instructor/instructor.module.ts +2 -1
  482. package/src/lms.module.ts +18 -1
  483. package/src/realtime/lms-realtime.controller.ts +12 -0
  484. package/src/realtime/lms-realtime.module.ts +12 -0
  485. package/src/realtime/lms-realtime.service.ts +98 -0
  486. package/src/realtime/lms-realtime.subscriber.ts +61 -0
  487. package/src/reports/reports.mcp-tools.ts +27 -0
  488. package/src/reports/reports.module.ts +2 -1
  489. package/src/training/training.mcp-tools.ts +128 -0
  490. package/src/training/training.module.ts +2 -1
  491. package/src/video-resolution-profile/dto/create-video-resolution-profile.dto.ts +16 -0
  492. package/src/video-resolution-profile/dto/update-video-resolution-profile.dto.ts +16 -0
  493. package/src/video-resolution-profile/video-resolution-profile.controller.ts +62 -0
  494. package/src/video-resolution-profile/video-resolution-profile.mcp-tools.ts +128 -0
  495. package/src/video-resolution-profile/video-resolution-profile.module.ts +13 -0
  496. package/src/video-resolution-profile/video-resolution-profile.service.ts +117 -0
@@ -1,12 +1,14 @@
1
1
  import { PrismaService } from '@hed-hog/api-prisma';
2
2
  import { BadRequestException, Injectable, NotFoundException } from '@nestjs/common';
3
3
  import { InstructorService } from '../instructor/instructor.service';
4
+ import { CourseOperationsIntegrationService } from './course-operations-integration.service';
4
5
  import { CreateCourseStructureLessonDto } from './dto/create-course-structure-lesson.dto';
5
6
  import { CreateCourseStructureSessionDto } from './dto/create-course-structure-session.dto';
6
7
  import { MoveLessonDto } from './dto/move-lesson.dto';
7
8
  import { PasteLessonsDto } from './dto/paste-lessons.dto';
8
9
  import { ReorderLessonsDto } from './dto/reorder-lessons.dto';
9
10
  import { ReorderSessionsDto } from './dto/reorder-sessions.dto';
11
+ import { UpdateCourseResourcesDto } from './dto/update-course-resources.dto';
10
12
  import { UpdateCourseStructureLessonDto } from './dto/update-course-structure-lesson.dto';
11
13
  import { UpdateCourseStructureSessionDto } from './dto/update-course-structure-session.dto';
12
14
 
@@ -18,12 +20,16 @@ export class CourseStructureService {
18
20
  constructor(
19
21
  private readonly prisma: PrismaService,
20
22
  private readonly instructorService: InstructorService,
23
+ private readonly operationsIntegration: CourseOperationsIntegrationService,
21
24
  ) {}
22
25
 
23
26
  async getStructure(courseId: number) {
24
27
  await this.ensureCourseExists(courseId);
25
28
 
26
- const [modules, instructors, courseRecord] = await Promise.all([
29
+ const courseResources = await this.getCourseResources(courseId);
30
+
31
+ const [modules, instructors, courseRecord, courseProjectLinks] =
32
+ await Promise.all([
27
33
  this.prisma.course_module.findMany({
28
34
  where: { course_id: courseId },
29
35
  orderBy: { order: 'asc' },
@@ -56,9 +62,22 @@ export class CourseStructureService {
56
62
  this.instructorService.listQualifiedInstructorOptions(['course-lessons']),
57
63
  this.prisma.course.findUnique({
58
64
  where: { id: courseId },
59
- select: { id: true, slug: true, title: true, description: true },
65
+ select: {
66
+ id: true,
67
+ name: true,
68
+ slug: true,
69
+ title: true,
70
+ description: true,
71
+ offering_type: true,
72
+ },
60
73
  }),
61
- ]);
74
+ this.operationsIntegration.getCourseProjectLinks([courseId]),
75
+ ]);
76
+
77
+ const lessonTaskLinks = await this.operationsIntegration.getLessonTaskLinks(
78
+ modules.flatMap((module) => module.course_lesson.map((lesson) => lesson.id)),
79
+ );
80
+ const courseProject = courseProjectLinks.get(courseId);
62
81
 
63
82
  const sessoes = modules.map((module, index) => ({
64
83
  id: String(module.id),
@@ -86,6 +105,7 @@ export class CourseStructureService {
86
105
  videoUrl: parsedContent?.videoUrl,
87
106
  duracaoAutomatica: parsedContent?.duracaoAutomatica,
88
107
  transcricao: parsedContent?.transcricao,
108
+ videoConversionJobId: parsedContent?.videoConversionJobId,
89
109
  exameVinculado:
90
110
  parsedContent?.exameVinculado != null
91
111
  ? String(parsedContent.exameVinculado)
@@ -96,15 +116,20 @@ export class CourseStructureService {
96
116
  recursos: lesson.course_lesson_file.map((fileLink) => ({
97
117
  id: String(fileLink.id),
98
118
  nome: fileLink.title,
119
+ fileId: fileLink.file_id,
99
120
  tamanho: '',
100
- tipo: '',
101
- publico: true,
121
+ tipo: (fileLink as any).tipo ?? '',
122
+ publico: (fileLink as any).publico ?? true,
102
123
  })),
103
124
  instrutores: lesson.course_lesson_instructor.map((item) => ({
104
125
  id: String(item.instructor_id),
105
126
  role: item.role,
106
127
  nome: this.personName(item.instructor?.person),
107
128
  })),
129
+ operationsTaskId: lessonTaskLinks.get(lesson.id)?.taskId ?? null,
130
+ operationsTaskName: lessonTaskLinks.get(lesson.id)?.taskName ?? null,
131
+ operationsTaskStatus:
132
+ lessonTaskLinks.get(lesson.id)?.taskStatus ?? null,
108
133
  };
109
134
  }),
110
135
  );
@@ -119,14 +144,63 @@ export class CourseStructureService {
119
144
  curso: courseRecord
120
145
  ? {
121
146
  id: String(courseRecord.id),
147
+ name: courseRecord.name ?? '',
122
148
  slug: courseRecord.slug ?? '',
123
149
  titulo: courseRecord.title,
124
150
  descricao: courseRecord.description ?? '',
151
+ offeringType: courseRecord.offering_type ?? 'on_demand',
152
+ recursos: courseResources,
153
+ operationsProjectId: courseProject?.projectId ?? null,
154
+ operationsProjectCode: courseProject?.projectCode ?? null,
155
+ operationsProjectName: courseProject?.projectName ?? null,
125
156
  }
126
157
  : null,
127
158
  };
128
159
  }
129
160
 
161
+ async getCourseResources(courseId: number) {
162
+ await this.ensureCourseExists(courseId);
163
+
164
+ const rows = await this.prisma.$queryRaw<
165
+ Array<{ id: number; title: string; file_id: number | null }>
166
+ >`
167
+ SELECT id, title, file_id
168
+ FROM course_file
169
+ WHERE course_id = ${courseId}
170
+ ORDER BY id DESC
171
+ `;
172
+
173
+ return rows.map((row) => ({
174
+ id: row.id,
175
+ nome: row.title,
176
+ fileId: row.file_id,
177
+ tipo: 'file',
178
+ publico: true,
179
+ }));
180
+ }
181
+
182
+ async updateCourseResources(courseId: number, dto: UpdateCourseResourcesDto) {
183
+ await this.ensureCourseExists(courseId);
184
+
185
+ const recursos = dto.recursos ?? [];
186
+
187
+ await this.prisma.$transaction(async (tx) => {
188
+ await tx.$executeRaw`
189
+ DELETE FROM course_file
190
+ WHERE course_id = ${courseId}
191
+ `;
192
+
193
+ for (const recurso of recursos) {
194
+ await tx.$executeRaw`
195
+ INSERT INTO course_file (course_id, title, file_id)
196
+ VALUES (${courseId}, ${recurso.nome}, ${recurso.fileId ?? null})
197
+ `;
198
+ }
199
+ });
200
+
201
+ return this.getCourseResources(courseId);
202
+ }
203
+
130
204
  async createSession(courseId: number, dto: CreateCourseStructureSessionDto) {
131
205
  await this.ensureCourseExists(courseId);
132
206
  const nextOrder = await this.nextModuleOrder(courseId);
@@ -157,6 +231,13 @@ export class CourseStructureService {
157
231
  ) {
158
232
  const module = await this.prisma.course_module.findFirst({
159
233
  where: { id: sessionId, course_id: courseId },
234
+ include: {
235
+ course: {
236
+ select: {
237
+ title: true,
238
+ },
239
+ },
240
+ },
160
241
  });
161
242
 
162
243
  if (!module) {
@@ -184,6 +265,13 @@ export class CourseStructureService {
184
265
  async deleteSession(courseId: number, sessionId: number) {
185
266
  const module = await this.prisma.course_module.findFirst({
186
267
  where: { id: sessionId, course_id: courseId },
268
+ include: {
269
+ course: {
270
+ select: {
271
+ title: true,
272
+ },
273
+ },
274
+ },
187
275
  });
188
276
 
189
277
  if (!module) {
@@ -202,28 +290,54 @@ export class CourseStructureService {
202
290
  ) {
203
291
  const module = await this.prisma.course_module.findFirst({
204
292
  where: { id: sessionId, course_id: courseId },
293
+ include: {
294
+ course: {
295
+ select: {
296
+ title: true,
297
+ },
298
+ },
299
+ },
205
300
  });
206
301
 
207
302
  if (!module) {
208
303
  throw new NotFoundException('Session not found for this course');
209
304
  }
210
305
 
211
- const nextOrder = await this.nextLessonOrder(sessionId);
212
- const mappedType = this.mapUiTypeToDbType(dto.tipo);
306
+ const created = await this.prisma.$transaction(async (tx) => {
307
+ const nextOrder = await this.nextLessonOrder(sessionId, tx);
308
+ const mappedType = this.mapUiTypeToDbType(dto.tipo);
213
309
 
214
- const created = await this.prisma.course_lesson.create({
215
- data: {
216
- course_module_id: sessionId,
217
- title: dto.titulo,
218
- description: dto.descricaoPublica ?? null,
219
- type: mappedType,
220
- duration_seconds: dto.duracao * 60,
221
- order: nextOrder,
222
- content: this.serializeContent(dto),
223
- },
224
- });
310
+ const lesson = await tx.course_lesson.create({
311
+ data: {
312
+ course_module_id: sessionId,
313
+ title: dto.titulo,
314
+ description: dto.descricaoPublica ?? null,
315
+ type: mappedType,
316
+ duration_seconds: dto.duracao * 60,
317
+ order: nextOrder,
318
+ content: this.serializeContent(dto),
319
+ },
320
+ });
321
+
322
+ await this.syncLessonRelations(lesson.id, dto, tx);
225
323
 
226
- await this.syncLessonRelations(created.id, dto);
324
+ const projectLinks = await this.operationsIntegration.getCourseProjectLinks(
325
+ [courseId],
326
+ tx,
327
+ );
328
+
329
+ await this.operationsIntegration.createTaskForLesson(tx, {
330
+ courseId,
331
+ lessonId: lesson.id,
332
+ projectId: projectLinks.get(courseId)?.projectId ?? null,
333
+ courseTitle: module.course?.title ?? null,
334
+ sessionTitle: module.title,
335
+ lessonTitle: dto.titulo,
336
+ lessonDescription: dto.descricaoPublica ?? null,
337
+ });
338
+
339
+ return lesson;
340
+ });
227
341
 
228
342
  return this.getLessonById(created.id);
229
343
  }
@@ -263,6 +377,7 @@ export class CourseStructureService {
263
377
  videoUrl: dto.videoUrl,
264
378
  duracaoAutomatica: dto.duracaoAutomatica,
265
379
  transcricao: dto.transcricao,
380
+ videoConversionJobId: dto.videoConversionJobId,
266
381
  conteudoPost: dto.conteudoPost,
267
382
  exameVinculado: dto.exameVinculado,
268
383
  descricaoPrivada: dto.descricaoPrivada,
@@ -271,6 +386,7 @@ export class CourseStructureService {
271
386
  });
272
387
 
273
388
  await this.syncLessonRelations(lessonId, dto);
389
+ await this.operationsIntegration.syncTaskForLesson(lessonId);
274
390
 
275
391
  return this.getLessonById(updated.id);
276
392
  }
@@ -440,6 +556,11 @@ export class CourseStructureService {
440
556
  const sourceModule = await this.prisma.course_module.findFirst({
441
557
  where: { id: sessionId, course_id: courseId },
442
558
  include: {
559
+ course: {
560
+ select: {
561
+ title: true,
562
+ },
563
+ },
443
564
  course_lesson: {
444
565
  orderBy: { order: 'asc' },
445
566
  include: {
@@ -468,6 +589,10 @@ export class CourseStructureService {
468
589
  });
469
590
 
470
591
  const newLessons = [];
592
+ const projectLinks = await this.operationsIntegration.getCourseProjectLinks([
593
+ courseId,
594
+ ]);
595
+ const projectId = projectLinks.get(courseId)?.projectId ?? null;
471
596
  for (const lesson of sourceModule.course_lesson) {
472
597
  const lessonOrder = await this.nextLessonOrder(newModule.id);
473
598
  const newLesson = await this.prisma.course_lesson.create({
@@ -488,6 +613,8 @@ export class CourseStructureService {
488
613
  course_lesson_id: newLesson.id,
489
614
  title: f.title,
490
615
  file_id: f.file_id,
616
+ tipo: (f as any).tipo ?? null,
617
+ publico: (f as any).publico ?? true,
491
618
  })),
492
619
  });
493
620
  }
@@ -512,6 +639,16 @@ export class CourseStructureService {
512
639
  });
513
640
  }
514
641
 
642
+ await this.operationsIntegration.createTaskForLesson(this.prisma, {
643
+ courseId,
644
+ lessonId: newLesson.id,
645
+ projectId,
646
+ courseTitle: sourceModule.course?.title ?? null,
647
+ sessionTitle: newModule.title,
648
+ lessonTitle: newLesson.title,
649
+ lessonDescription: newLesson.description,
650
+ });
651
+
515
652
  newLessons.push(await this.getLessonById(newLesson.id));
516
653
  }
517
654
 
@@ -535,6 +672,16 @@ export class CourseStructureService {
535
672
  course_module: { course_id: courseId },
536
673
  },
537
674
  include: {
675
+ course_module: {
676
+ select: {
677
+ title: true,
678
+ course: {
679
+ select: {
680
+ title: true,
681
+ },
682
+ },
683
+ },
684
+ },
538
685
  course_lesson_file: true,
539
686
  course_lesson_question: true,
540
687
  course_lesson_instructor: true,
@@ -546,6 +693,10 @@ export class CourseStructureService {
546
693
  }
547
694
 
548
695
  const nextOrder = await this.nextLessonOrder(sessionId);
696
+ const projectLinks = await this.operationsIntegration.getCourseProjectLinks([
697
+ courseId,
698
+ ]);
699
+ const projectId = projectLinks.get(courseId)?.projectId ?? null;
549
700
 
550
701
  const newLesson = await this.prisma.course_lesson.create({
551
702
  data: {
@@ -565,6 +716,8 @@ export class CourseStructureService {
565
716
  course_lesson_id: newLesson.id,
566
717
  title: f.title,
567
718
  file_id: f.file_id,
719
+ tipo: (f as any).tipo ?? null,
720
+ publico: (f as any).publico ?? true,
568
721
  })),
569
722
  });
570
723
  }
@@ -589,6 +742,16 @@ export class CourseStructureService {
589
742
  });
590
743
  }
591
744
 
745
+ await this.operationsIntegration.createTaskForLesson(this.prisma, {
746
+ courseId,
747
+ lessonId: newLesson.id,
748
+ projectId,
749
+ courseTitle: sourceLesson.course_module?.course?.title ?? null,
750
+ sessionTitle: sourceLesson.course_module?.title ?? null,
751
+ lessonTitle: newLesson.title,
752
+ lessonDescription: newLesson.description,
753
+ });
754
+
592
755
  return this.getLessonById(newLesson.id);
593
756
  }
594
757
 
@@ -619,6 +782,10 @@ export class CourseStructureService {
619
782
  }
620
783
 
621
784
  const result = [];
785
+ const projectLinks = await this.operationsIntegration.getCourseProjectLinks([
786
+ courseId,
787
+ ]);
788
+ const projectId = projectLinks.get(courseId)?.projectId ?? null;
622
789
  for (const lesson of sourceLessons) {
623
790
  const lessonOrder = await this.nextLessonOrder(targetSessionId);
624
791
  const newLesson = await this.prisma.course_lesson.create({
@@ -639,6 +806,8 @@ export class CourseStructureService {
639
806
  course_lesson_id: newLesson.id,
640
807
  title: f.title,
641
808
  file_id: f.file_id,
809
+ tipo: (f as any).tipo ?? null,
810
+ publico: (f as any).publico ?? true,
642
811
  })),
643
812
  });
644
813
  }
@@ -663,19 +832,30 @@ export class CourseStructureService {
663
832
  });
664
833
  }
665
834
 
835
+ await this.operationsIntegration.createTaskForLesson(this.prisma, {
836
+ courseId,
837
+ lessonId: newLesson.id,
838
+ projectId,
839
+ sessionTitle: targetModule.title,
840
+ lessonTitle: newLesson.title,
841
+ lessonDescription: newLesson.description,
842
+ });
843
+
666
844
  result.push(await this.getLessonById(newLesson.id));
667
845
  }
668
846
 
669
847
  return { lessons: result };
670
848
  }
671
849
 
672
- private async syncLessonRelations( lessonId: number,
850
+ private async syncLessonRelations(
851
+ lessonId: number,
673
852
  dto: Partial<
674
853
  Pick<
675
854
  CreateCourseStructureLessonDto,
676
855
  'tipo' | 'exameVinculado' | 'instructorIds' | 'recursos'
677
856
  >
678
857
  >,
858
+ client: any = this.prisma,
679
859
  ) {
680
860
  const instructorIds = [...new Set(dto.instructorIds ?? [])];
681
861
 
@@ -686,7 +866,7 @@ export class CourseStructureService {
686
866
  );
687
867
  }
688
868
 
689
- await this.prisma.$transaction(async (tx) => {
869
+ const syncWithClient = async (tx: any) => {
690
870
  await tx.course_lesson_instructor.deleteMany({
691
871
  where: { course_lesson_id: lessonId },
692
872
  });
@@ -712,6 +892,8 @@ export class CourseStructureService {
712
892
  course_lesson_id: lessonId,
713
893
  title: recurso.nome,
714
894
  file_id: recurso.fileId ?? null,
895
+ tipo: recurso.tipo ?? null,
896
+ publico: recurso.publico ?? true,
715
897
  })),
716
898
  });
717
899
  }
@@ -729,7 +911,14 @@ export class CourseStructureService {
729
911
  },
730
912
  });
731
913
  }
732
- });
914
+ };
915
+
916
+ if (typeof client?.$transaction === 'function') {
917
+ await client.$transaction(async (tx: any) => syncWithClient(tx));
918
+ return;
919
+ }
920
+
921
+ await syncWithClient(client);
733
922
  }
734
923
 
735
924
  private async getLessonById(lessonId: number) {
@@ -737,7 +926,15 @@ export class CourseStructureService {
737
926
  where: { id: lessonId },
738
927
  include: {
739
928
  course_module: {
740
- select: { id: true },
929
+ select: {
930
+ id: true,
931
+ title: true,
932
+ course: {
933
+ select: {
934
+ title: true,
935
+ },
936
+ },
937
+ },
741
938
  },
742
939
  course_lesson_file: true,
743
940
  course_lesson_question: {
@@ -764,6 +961,9 @@ export class CourseStructureService {
764
961
  throw new NotFoundException('Lesson not found');
765
962
  }
766
963
 
964
+ const taskLinks = await this.operationsIntegration.getLessonTaskLinks([
965
+ lessonId,
966
+ ]);
767
967
  const parsedContent = this.parseLessonContent(lesson.content);
768
968
  const tipo = this.mapDbTypeToUiType(lesson.type, parsedContent?.sourceType);
769
969
 
@@ -780,6 +980,7 @@ export class CourseStructureService {
780
980
  videoUrl: parsedContent?.videoUrl,
781
981
  duracaoAutomatica: parsedContent?.duracaoAutomatica,
782
982
  transcricao: parsedContent?.transcricao,
983
+ videoConversionJobId: parsedContent?.videoConversionJobId,
783
984
  exameVinculado:
784
985
  parsedContent?.exameVinculado != null
785
986
  ? String(parsedContent.exameVinculado)
@@ -790,15 +991,19 @@ export class CourseStructureService {
790
991
  recursos: lesson.course_lesson_file.map((fileLink) => ({
791
992
  id: String(fileLink.id),
792
993
  nome: fileLink.title,
994
+ fileId: fileLink.file_id,
793
995
  tamanho: '',
794
- tipo: '',
795
- publico: true,
996
+ tipo: (fileLink as any).tipo ?? '',
997
+ publico: (fileLink as any).publico ?? true,
796
998
  })),
797
999
  instrutores: lesson.course_lesson_instructor.map((item) => ({
798
1000
  id: String(item.instructor_id),
799
1001
  role: item.role,
800
1002
  nome: this.personName(item.instructor?.person),
801
1003
  })),
1004
+ operationsTaskId: taskLinks.get(lessonId)?.taskId ?? null,
1005
+ operationsTaskName: taskLinks.get(lessonId)?.taskName ?? null,
1006
+ operationsTaskStatus: taskLinks.get(lessonId)?.taskStatus ?? null,
802
1007
  };
803
1008
  }
804
1009
 
@@ -823,8 +1028,8 @@ export class CourseStructureService {
823
1028
  return (last?.order ?? 0) + 1;
824
1029
  }
825
1030
 
826
- private async nextLessonOrder(sessionId: number) {
827
- const last = await this.prisma.course_lesson.findFirst({
1031
+ private async nextLessonOrder(sessionId: number, client: any = this.prisma) {
1032
+ const last = await client.course_lesson.findFirst({
828
1033
  where: { course_module_id: sessionId },
829
1034
  orderBy: { order: 'desc' },
830
1035
  select: { order: true },
@@ -863,6 +1068,7 @@ export class CourseStructureService {
863
1068
  videoUrl?: string;
864
1069
  duracaoAutomatica?: boolean;
865
1070
  transcricao?: string;
1071
+ videoConversionJobId?: number;
866
1072
  conteudoPost?: string;
867
1073
  exameVinculado?: number;
868
1074
  descricaoPrivada?: string;
@@ -877,6 +1083,9 @@ export class CourseStructureService {
877
1083
  payload.videoUrl = data.videoUrl ?? '';
878
1084
  payload.duracaoAutomatica = data.duracaoAutomatica ?? false;
879
1085
  payload.transcricao = data.transcricao ?? '';
1086
+ if (data.videoConversionJobId != null) {
1087
+ payload.videoConversionJobId = data.videoConversionJobId;
1088
+ }
880
1089
  }
881
1090
 
882
1091
  if (data.tipo === 'post' || data.tipo === 'exercicio') {