@hed-hog/lms 0.0.364 → 0.0.366

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 (290) hide show
  1. package/dist/bitcode-wallet/bitcode-wallet.service.d.ts +1 -0
  2. package/dist/bitcode-wallet/bitcode-wallet.service.d.ts.map +1 -1
  3. package/dist/bitcode-wallet/bitcode-wallet.service.js +22 -3
  4. package/dist/bitcode-wallet/bitcode-wallet.service.js.map +1 -1
  5. package/dist/class-group/class-group.controller.d.ts +1 -0
  6. package/dist/class-group/class-group.controller.d.ts.map +1 -1
  7. package/dist/class-group/class-group.service.d.ts +1 -0
  8. package/dist/class-group/class-group.service.d.ts.map +1 -1
  9. package/dist/course/course-export-scorm12-worker.service.d.ts +21 -0
  10. package/dist/course/course-export-scorm12-worker.service.d.ts.map +1 -0
  11. package/dist/course/course-export-scorm12-worker.service.js +109 -0
  12. package/dist/course/course-export-scorm12-worker.service.js.map +1 -0
  13. package/dist/course/course-export-scorm12.service.d.ts +42 -0
  14. package/dist/course/course-export-scorm12.service.d.ts.map +1 -0
  15. package/dist/course/course-export-scorm12.service.js +628 -0
  16. package/dist/course/course-export-scorm12.service.js.map +1 -0
  17. package/dist/course/course-export.service.d.ts +84 -0
  18. package/dist/course/course-export.service.d.ts.map +1 -0
  19. package/dist/course/course-export.service.js +237 -0
  20. package/dist/course/course-export.service.js.map +1 -0
  21. package/dist/course/course-structure.controller.d.ts +20 -10
  22. package/dist/course/course-structure.controller.d.ts.map +1 -1
  23. package/dist/course/course-structure.controller.js +20 -4
  24. package/dist/course/course-structure.controller.js.map +1 -1
  25. package/dist/course/course-structure.service.d.ts +12 -4
  26. package/dist/course/course-structure.service.d.ts.map +1 -1
  27. package/dist/course/course-structure.service.js +98 -23
  28. package/dist/course/course-structure.service.js.map +1 -1
  29. package/dist/course/course-video-agent-pipeline.service.d.ts +70 -0
  30. package/dist/course/course-video-agent-pipeline.service.d.ts.map +1 -0
  31. package/dist/course/course-video-agent-pipeline.service.js +398 -0
  32. package/dist/course/course-video-agent-pipeline.service.js.map +1 -0
  33. package/dist/course/course-video-hls.service.d.ts +71 -0
  34. package/dist/course/course-video-hls.service.d.ts.map +1 -0
  35. package/dist/course/course-video-hls.service.js +784 -0
  36. package/dist/course/course-video-hls.service.js.map +1 -0
  37. package/dist/course/course.controller.d.ts +47 -13
  38. package/dist/course/course.controller.d.ts.map +1 -1
  39. package/dist/course/course.controller.js +40 -26
  40. package/dist/course/course.controller.js.map +1 -1
  41. package/dist/course/course.mcp-tools.js +1 -1
  42. package/dist/course/course.mcp-tools.js.map +1 -1
  43. package/dist/course/course.module.d.ts.map +1 -1
  44. package/dist/course/course.module.js +16 -0
  45. package/dist/course/course.module.js.map +1 -1
  46. package/dist/course/course.service.d.ts +8 -9
  47. package/dist/course/course.service.d.ts.map +1 -1
  48. package/dist/course/course.service.js +93 -50
  49. package/dist/course/course.service.js.map +1 -1
  50. package/dist/course/dto/cleanup-course-storage.dto.d.ts +1 -1
  51. package/dist/course/dto/cleanup-course-storage.dto.d.ts.map +1 -1
  52. package/dist/course/dto/cleanup-course-storage.dto.js +1 -0
  53. package/dist/course/dto/cleanup-course-storage.dto.js.map +1 -1
  54. package/dist/course/dto/cleanup-upload-history.dto.d.ts +1 -1
  55. package/dist/course/dto/cleanup-upload-history.dto.d.ts.map +1 -1
  56. package/dist/course/dto/cleanup-upload-history.dto.js +1 -1
  57. package/dist/course/dto/cleanup-upload-history.dto.js.map +1 -1
  58. package/dist/course/dto/create-course-bulk-job.dto.d.ts +2 -1
  59. package/dist/course/dto/create-course-bulk-job.dto.d.ts.map +1 -1
  60. package/dist/course/dto/create-course-bulk-job.dto.js +6 -1
  61. package/dist/course/dto/create-course-bulk-job.dto.js.map +1 -1
  62. package/dist/course/dto/create-course-export.dto.d.ts +14 -0
  63. package/dist/course/dto/create-course-export.dto.d.ts.map +1 -0
  64. package/dist/course/dto/create-course-export.dto.js +71 -0
  65. package/dist/course/dto/create-course-export.dto.js.map +1 -0
  66. package/dist/course/dto/create-course-structure-lesson.dto.d.ts +2 -2
  67. package/dist/course/dto/create-course-structure-lesson.dto.d.ts.map +1 -1
  68. package/dist/course/dto/create-course-structure-lesson.dto.js +3 -2
  69. package/dist/course/dto/create-course-structure-lesson.dto.js.map +1 -1
  70. package/dist/course/ffmpeg.util.d.ts +10 -0
  71. package/dist/course/ffmpeg.util.d.ts.map +1 -0
  72. package/dist/course/ffmpeg.util.js +79 -0
  73. package/dist/course/ffmpeg.util.js.map +1 -0
  74. package/dist/course/lms-bulk-upload-automation.service.d.ts +18 -1
  75. package/dist/course/lms-bulk-upload-automation.service.d.ts.map +1 -1
  76. package/dist/course/lms-bulk-upload-automation.service.js +106 -8
  77. package/dist/course/lms-bulk-upload-automation.service.js.map +1 -1
  78. package/dist/course/lms-bulk-upload-infra.service.d.ts +1 -0
  79. package/dist/course/lms-bulk-upload-infra.service.d.ts.map +1 -1
  80. package/dist/course/lms-bulk-upload-infra.service.js +32 -8
  81. package/dist/course/lms-bulk-upload-infra.service.js.map +1 -1
  82. package/dist/course/lms-bulk-upload.controller.d.ts +30 -3
  83. package/dist/course/lms-bulk-upload.controller.d.ts.map +1 -1
  84. package/dist/course/lms-bulk-upload.controller.js +43 -2
  85. package/dist/course/lms-bulk-upload.controller.js.map +1 -1
  86. package/dist/course/lms-bulk-upload.service.d.ts +11 -0
  87. package/dist/course/lms-bulk-upload.service.d.ts.map +1 -1
  88. package/dist/course/lms-bulk-upload.service.js +59 -6
  89. package/dist/course/lms-bulk-upload.service.js.map +1 -1
  90. package/dist/course/lms-setting.controller.d.ts +2 -1
  91. package/dist/course/lms-setting.controller.d.ts.map +1 -1
  92. package/dist/course/lms-setting.controller.js +4 -2
  93. package/dist/course/lms-setting.controller.js.map +1 -1
  94. package/dist/course/scorm12-schemas.d.ts +4 -0
  95. package/dist/course/scorm12-schemas.d.ts.map +1 -0
  96. package/dist/course/scorm12-schemas.js +9 -0
  97. package/dist/course/scorm12-schemas.js.map +1 -0
  98. package/dist/enterprise/training/training-admin.controller.d.ts +2 -0
  99. package/dist/enterprise/training/training-admin.controller.d.ts.map +1 -1
  100. package/dist/enterprise/training/training-admin.service.d.ts +2 -0
  101. package/dist/enterprise/training/training-admin.service.d.ts.map +1 -1
  102. package/dist/enterprise/training/training-student.service.d.ts +51 -0
  103. package/dist/enterprise/training/training-student.service.d.ts.map +1 -1
  104. package/dist/enterprise/training/training-student.service.js +217 -4
  105. package/dist/enterprise/training/training-student.service.js.map +1 -1
  106. package/dist/evaluation/evaluation.service.d.ts +18 -0
  107. package/dist/evaluation/evaluation.service.d.ts.map +1 -1
  108. package/dist/evaluation/evaluation.service.js +125 -0
  109. package/dist/evaluation/evaluation.service.js.map +1 -1
  110. package/dist/exam/dto/create-standalone-question.dto.d.ts +12 -0
  111. package/dist/exam/dto/create-standalone-question.dto.d.ts.map +1 -0
  112. package/dist/exam/dto/create-standalone-question.dto.js +70 -0
  113. package/dist/exam/dto/create-standalone-question.dto.js.map +1 -0
  114. package/dist/exam/exam.module.d.ts.map +1 -1
  115. package/dist/exam/exam.module.js +2 -1
  116. package/dist/exam/exam.module.js.map +1 -1
  117. package/dist/exam/exam.service.d.ts +21 -0
  118. package/dist/exam/exam.service.d.ts.map +1 -1
  119. package/dist/exam/exam.service.js +80 -0
  120. package/dist/exam/exam.service.js.map +1 -1
  121. package/dist/exam/question.controller.d.ts +27 -0
  122. package/dist/exam/question.controller.d.ts.map +1 -0
  123. package/dist/exam/question.controller.js +53 -0
  124. package/dist/exam/question.controller.js.map +1 -0
  125. package/dist/lesson-xp-map/lesson-xp-ai-calculation.service.d.ts +4 -0
  126. package/dist/lesson-xp-map/lesson-xp-ai-calculation.service.d.ts.map +1 -1
  127. package/dist/lesson-xp-map/lesson-xp-ai-calculation.service.js +161 -25
  128. package/dist/lesson-xp-map/lesson-xp-ai-calculation.service.js.map +1 -1
  129. package/dist/libraries/lms/tsconfig.tsbuildinfo +1 -1
  130. package/dist/lms-commerce-access.subscriber.d.ts +11 -0
  131. package/dist/lms-commerce-access.subscriber.d.ts.map +1 -0
  132. package/dist/lms-commerce-access.subscriber.js +74 -0
  133. package/dist/lms-commerce-access.subscriber.js.map +1 -0
  134. package/dist/lms.module.d.ts.map +1 -1
  135. package/dist/lms.module.js +16 -5
  136. package/dist/lms.module.js.map +1 -1
  137. package/dist/platforma/dto/heartbeat.dto.d.ts +9 -0
  138. package/dist/platforma/dto/heartbeat.dto.d.ts.map +1 -0
  139. package/dist/platforma/dto/heartbeat.dto.js +50 -0
  140. package/dist/platforma/dto/heartbeat.dto.js.map +1 -0
  141. package/dist/platforma/handlers/emit-certificate.handler.d.ts +27 -0
  142. package/dist/platforma/handlers/emit-certificate.handler.d.ts.map +1 -0
  143. package/dist/platforma/handlers/emit-certificate.handler.js +117 -0
  144. package/dist/platforma/handlers/emit-certificate.handler.js.map +1 -0
  145. package/dist/platforma/handlers/lesson-heartbeat.handler.d.ts +31 -0
  146. package/dist/platforma/handlers/lesson-heartbeat.handler.d.ts.map +1 -0
  147. package/dist/platforma/handlers/lesson-heartbeat.handler.js +281 -0
  148. package/dist/platforma/handlers/lesson-heartbeat.handler.js.map +1 -0
  149. package/dist/platforma/platforma-heartbeat.service.d.ts +10 -0
  150. package/dist/platforma/platforma-heartbeat.service.d.ts.map +1 -0
  151. package/dist/platforma/platforma-heartbeat.service.js +50 -0
  152. package/dist/platforma/platforma-heartbeat.service.js.map +1 -0
  153. package/dist/platforma/platforma-performance.service.d.ts +121 -0
  154. package/dist/platforma/platforma-performance.service.d.ts.map +1 -0
  155. package/dist/platforma/platforma-performance.service.js +500 -0
  156. package/dist/platforma/platforma-performance.service.js.map +1 -0
  157. package/dist/platforma/platforma-search.service.d.ts +21 -0
  158. package/dist/platforma/platforma-search.service.d.ts.map +1 -0
  159. package/dist/platforma/platforma-search.service.js +64 -0
  160. package/dist/platforma/platforma-search.service.js.map +1 -0
  161. package/dist/platforma/platforma-video.service.d.ts +39 -0
  162. package/dist/platforma/platforma-video.service.d.ts.map +1 -0
  163. package/dist/platforma/platforma-video.service.js +301 -0
  164. package/dist/platforma/platforma-video.service.js.map +1 -0
  165. package/dist/platforma/platforma.controller.d.ts +209 -1
  166. package/dist/platforma/platforma.controller.d.ts.map +1 -1
  167. package/dist/platforma/platforma.controller.js +208 -2
  168. package/dist/platforma/platforma.controller.js.map +1 -1
  169. package/dist/realtime/lms-realtime.controller.d.ts +2 -0
  170. package/dist/realtime/lms-realtime.controller.d.ts.map +1 -1
  171. package/dist/realtime/lms-realtime.controller.js +31 -0
  172. package/dist/realtime/lms-realtime.controller.js.map +1 -1
  173. package/dist/realtime/lms-realtime.service.d.ts +1 -1
  174. package/dist/realtime/lms-realtime.service.d.ts.map +1 -1
  175. package/dist/realtime/lms-realtime.service.js.map +1 -1
  176. package/dist/student-xp/dto/grant-skill-card-xp.dto.d.ts +5 -0
  177. package/dist/student-xp/dto/grant-skill-card-xp.dto.d.ts.map +1 -0
  178. package/dist/student-xp/dto/grant-skill-card-xp.dto.js +26 -0
  179. package/dist/student-xp/dto/grant-skill-card-xp.dto.js.map +1 -0
  180. package/dist/student-xp/student-xp.controller.d.ts +15 -0
  181. package/dist/student-xp/student-xp.controller.d.ts.map +1 -1
  182. package/dist/student-xp/student-xp.controller.js +24 -0
  183. package/dist/student-xp/student-xp.controller.js.map +1 -1
  184. package/dist/student-xp/student-xp.service.d.ts +16 -0
  185. package/dist/student-xp/student-xp.service.d.ts.map +1 -1
  186. package/dist/student-xp/student-xp.service.js +51 -1
  187. package/dist/student-xp/student-xp.service.js.map +1 -1
  188. package/hedhog/data/evaluation_topic.yaml +17 -0
  189. package/hedhog/data/menu.yaml +0 -17
  190. package/hedhog/data/queue_definition.yaml +48 -0
  191. package/hedhog/data/route.yaml +94 -124
  192. package/hedhog/data/setting_group.yaml +19 -19
  193. package/hedhog/frontend/app/bulk-upload-sessions/page.tsx.ejs +337 -41
  194. package/hedhog/frontend/app/certificates/models/page.tsx.ejs +182 -29
  195. package/hedhog/frontend/app/classes/_components/classes-calendar-view.tsx.ejs +277 -0
  196. package/hedhog/frontend/app/classes/page.tsx.ejs +127 -20
  197. package/hedhog/frontend/app/courses/[id]/page.tsx.ejs +69 -4
  198. package/hedhog/frontend/app/courses/[id]/structure/_components/course-export-sheet.tsx.ejs +420 -0
  199. package/hedhog/frontend/app/courses/[id]/structure/_components/course-exports-tab.tsx.ejs +308 -0
  200. package/hedhog/frontend/app/courses/[id]/structure/_components/course-overview-tab.tsx.ejs +158 -45
  201. package/hedhog/frontend/app/courses/[id]/structure/_components/course-xp-overview-tab.tsx.ejs +13 -13
  202. package/hedhog/frontend/app/courses/[id]/structure/_components/detail-lesson-xp-tab.tsx.ejs +11 -23
  203. package/hedhog/frontend/app/courses/[id]/structure/_components/detail-lesson.tsx.ejs +51 -63
  204. package/hedhog/frontend/app/courses/[id]/structure/_components/detail-panel.tsx.ejs +8 -3
  205. package/hedhog/frontend/app/courses/[id]/structure/_components/detail-session.tsx.ejs +31 -8
  206. package/hedhog/frontend/app/courses/[id]/structure/_components/drag-overlay.tsx.ejs +16 -9
  207. package/hedhog/frontend/app/courses/[id]/structure/_components/editor-course.tsx.ejs +201 -401
  208. package/hedhog/frontend/app/courses/[id]/structure/_components/editor-lesson.tsx.ejs +378 -690
  209. package/hedhog/frontend/app/courses/[id]/structure/_components/mock-data.ts.ejs +1 -2
  210. package/hedhog/frontend/app/courses/[id]/structure/_components/tree-row-lesson.tsx.ejs +3 -9
  211. package/hedhog/frontend/app/courses/[id]/structure/_components/types.ts.ejs +1 -1
  212. package/hedhog/frontend/app/courses/[id]/structure/_components/xp-premium-pills.tsx.ejs +1 -8
  213. package/hedhog/frontend/app/courses/[id]/structure/_data/adapters/course-structure.adapter.ts.ejs +6 -10
  214. package/hedhog/frontend/app/courses/[id]/structure/_data/services/course-structure.service.ts.ejs +49 -0
  215. package/hedhog/frontend/app/courses/[id]/structure/_data/types/api-course.types.ts.ejs +4 -3
  216. package/hedhog/frontend/app/courses/[id]/structure/_data/use-course-content-overview.ts.ejs +2 -1
  217. package/hedhog/frontend/app/courses/[id]/structure/_data/use-course-exports.ts.ejs +106 -0
  218. package/hedhog/frontend/app/courses/[id]/structure/_data/use-course-structure-mutations.ts.ejs +28 -1
  219. package/hedhog/frontend/app/courses/[id]/structure/_data/use-lms-settings-query.ts.ejs +0 -2
  220. package/hedhog/frontend/app/courses/page.tsx.ejs +85 -9
  221. package/hedhog/frontend/app/enterprise/[id]/page.tsx.ejs +6 -0
  222. package/hedhog/frontend/app/enterprise/_components/enterprise-classes-calendar-tab.tsx.ejs +264 -0
  223. package/hedhog/frontend/app/enterprise/page.tsx.ejs +104 -47
  224. package/hedhog/frontend/app/exams/page.tsx.ejs +38 -4
  225. package/hedhog/frontend/app/instructors/page.tsx.ejs +87 -46
  226. package/hedhog/frontend/app/paths/page.tsx.ejs +38 -4
  227. package/hedhog/frontend/app/training/page.tsx.ejs +38 -4
  228. package/hedhog/frontend/messages/en.json +44 -28
  229. package/hedhog/frontend/messages/pt.json +47 -29
  230. package/hedhog/table/course_enrollment.yaml +3 -0
  231. package/hedhog/table/course_export.yaml +62 -0
  232. package/hedhog/table/lesson_view_event.yaml +66 -0
  233. package/package.json +14 -9
  234. package/src/bitcode-wallet/bitcode-wallet.service.ts +43 -4
  235. package/src/course/course-export-scorm12-worker.service.ts +124 -0
  236. package/src/course/course-export-scorm12.service.ts +668 -0
  237. package/src/course/course-export.service.ts +280 -0
  238. package/src/course/course-structure.controller.ts +16 -2
  239. package/src/course/course-structure.service.ts +100 -7
  240. package/src/course/course-video-agent-pipeline.service.ts +471 -0
  241. package/src/course/course-video-hls.service.ts +966 -0
  242. package/src/course/course.controller.ts +33 -19
  243. package/src/course/course.mcp-tools.ts +1 -1
  244. package/src/course/course.module.ts +16 -0
  245. package/src/course/course.service.ts +119 -61
  246. package/src/course/dto/cleanup-course-storage.dto.ts +1 -0
  247. package/src/course/dto/cleanup-upload-history.dto.ts +1 -1
  248. package/src/course/dto/create-course-bulk-job.dto.ts +7 -3
  249. package/src/course/dto/create-course-export.dto.ts +56 -0
  250. package/src/course/dto/create-course-structure-lesson.dto.ts +4 -3
  251. package/src/course/ffmpeg.util.ts +65 -0
  252. package/src/course/lms-bulk-upload-automation.service.ts +156 -6
  253. package/src/course/lms-bulk-upload-infra.service.ts +39 -6
  254. package/src/course/lms-bulk-upload.controller.ts +32 -2
  255. package/src/course/lms-bulk-upload.service.ts +70 -7
  256. package/src/course/lms-setting.controller.ts +4 -2
  257. package/src/course/scorm12-schemas.ts +9 -0
  258. package/src/enterprise/training/training-student.service.ts +221 -2
  259. package/src/evaluation/evaluation.service.ts +123 -0
  260. package/src/exam/dto/create-standalone-question.dto.ts +66 -0
  261. package/src/exam/exam.module.ts +2 -1
  262. package/src/exam/exam.service.ts +86 -0
  263. package/src/exam/question.controller.ts +28 -0
  264. package/src/lesson-xp-map/lesson-xp-ai-calculation.service.ts +205 -31
  265. package/src/lms-commerce-access.subscriber.ts +88 -0
  266. package/src/lms.module.ts +16 -5
  267. package/src/platforma/dto/heartbeat.dto.ts +30 -0
  268. package/src/platforma/handlers/emit-certificate.handler.ts +117 -0
  269. package/src/platforma/handlers/lesson-heartbeat.handler.ts +343 -0
  270. package/src/platforma/platforma-heartbeat.service.ts +33 -0
  271. package/src/platforma/platforma-performance.service.ts +606 -0
  272. package/src/platforma/platforma-search.service.ts +48 -0
  273. package/src/platforma/platforma-video.service.ts +346 -0
  274. package/src/platforma/platforma.controller.ts +137 -1
  275. package/src/platforma/platforma.service.ts +268 -268
  276. package/src/realtime/lms-realtime.controller.ts +27 -1
  277. package/src/realtime/lms-realtime.service.ts +2 -1
  278. package/src/student-xp/dto/grant-skill-card-xp.dto.ts +10 -0
  279. package/src/student-xp/student-xp.controller.ts +18 -2
  280. package/src/student-xp/student-xp.service.ts +84 -2
  281. package/hedhog/data/video_resolution_profile.yaml +0 -7
  282. package/hedhog/frontend/app/video-resolution-profiles/page.tsx.ejs +0 -607
  283. package/hedhog/table/course_video_resolution_profile.yaml +0 -22
  284. package/hedhog/table/video_resolution_profile.yaml +0 -18
  285. package/src/video-resolution-profile/dto/create-video-resolution-profile.dto.ts +0 -16
  286. package/src/video-resolution-profile/dto/update-video-resolution-profile.dto.ts +0 -16
  287. package/src/video-resolution-profile/video-resolution-profile.controller.ts +0 -62
  288. package/src/video-resolution-profile/video-resolution-profile.mcp-tools.ts +0 -128
  289. package/src/video-resolution-profile/video-resolution-profile.module.ts +0 -13
  290. package/src/video-resolution-profile/video-resolution-profile.service.ts +0 -117
@@ -1,62 +0,0 @@
1
- import { Role } from '@hed-hog/api';
2
- import {
3
- Body,
4
- Controller,
5
- Delete,
6
- Get,
7
- HttpCode,
8
- HttpStatus,
9
- Param,
10
- ParseIntPipe,
11
- Patch,
12
- Post,
13
- Query,
14
- } from '@nestjs/common';
15
- import { CreateVideoResolutionProfileDto } from './dto/create-video-resolution-profile.dto';
16
- import { UpdateVideoResolutionProfileDto } from './dto/update-video-resolution-profile.dto';
17
- import { VideoResolutionProfileService } from './video-resolution-profile.service';
18
-
19
- @Role()
20
- @Controller('lms/video-resolution-profiles')
21
- export class VideoResolutionProfileController {
22
- constructor(
23
- private readonly videoResolutionProfileService: VideoResolutionProfileService,
24
- ) {}
25
-
26
- @Get()
27
- list(
28
- @Query('page') page?: string,
29
- @Query('pageSize') pageSize?: string,
30
- @Query('search') search?: string,
31
- ) {
32
- return this.videoResolutionProfileService.list({
33
- page: page ? Number(page) : 1,
34
- pageSize: pageSize ? Number(pageSize) : 20,
35
- search,
36
- });
37
- }
38
-
39
- @Get('all')
40
- getAll() {
41
- return this.videoResolutionProfileService.getAll();
42
- }
43
-
44
- @Post()
45
- create(@Body() dto: CreateVideoResolutionProfileDto) {
46
- return this.videoResolutionProfileService.create(dto);
47
- }
48
-
49
- @Patch(':id')
50
- update(
51
- @Param('id', ParseIntPipe) id: number,
52
- @Body() dto: UpdateVideoResolutionProfileDto,
53
- ) {
54
- return this.videoResolutionProfileService.update(id, dto);
55
- }
56
-
57
- @Delete(':id')
58
- @HttpCode(HttpStatus.NO_CONTENT)
59
- remove(@Param('id', ParseIntPipe) id: number) {
60
- return this.videoResolutionProfileService.delete(id);
61
- }
62
- }
@@ -1,128 +0,0 @@
1
- import { McpContext, McpTool } from '@hed-hog/core';
2
- import { Injectable } from '@nestjs/common';
3
- import { CreateVideoResolutionProfileDto } from './dto/create-video-resolution-profile.dto';
4
- import { UpdateVideoResolutionProfileDto } from './dto/update-video-resolution-profile.dto';
5
- import { VideoResolutionProfileService } from './video-resolution-profile.service';
6
-
7
- @Injectable()
8
- export class VideoResolutionProfileMcpTools {
9
- constructor(
10
- private readonly videoResolutionProfileService: VideoResolutionProfileService,
11
- ) {}
12
-
13
- @McpTool({
14
- name: 'lms.video-resolution-profiles.list',
15
- description: 'Lists video resolution profiles with optional pagination and search.',
16
- inputSchema: {
17
- type: 'object',
18
- properties: {
19
- page: { type: 'number', description: 'Page number (default: 1)' },
20
- pageSize: { type: 'number', description: 'Items per page (default: 20)' },
21
- search: { type: 'string', description: 'Search term by profile name' },
22
- },
23
- },
24
- readOnly: true,
25
- })
26
- async listProfiles(
27
- args: { page?: number; pageSize?: number; search?: string },
28
- _context: McpContext,
29
- ): Promise<any> {
30
- return this.videoResolutionProfileService.list(args);
31
- }
32
-
33
- @McpTool({
34
- name: 'lms.video-resolution-profiles.list-active',
35
- description: 'Lists all active video resolution profiles.',
36
- inputSchema: {
37
- type: 'object',
38
- properties: {},
39
- },
40
- readOnly: true,
41
- })
42
- async listActiveProfiles(
43
- _args: Record<string, never>,
44
- _context: McpContext,
45
- ): Promise<any> {
46
- return this.videoResolutionProfileService.getAll();
47
- }
48
-
49
- @McpTool({
50
- name: 'lms.video-resolution-profiles.create',
51
- description: 'Creates a new video resolution profile.',
52
- inputSchema: {
53
- type: 'object',
54
- properties: {
55
- name: { type: 'string', description: 'Profile name (required, max 100 chars)' },
56
- ffmpeg_params: { type: 'string', description: 'FFmpeg params string (required)' },
57
- status: { type: 'string', description: 'Status (active|inactive)' },
58
- },
59
- required: ['name', 'ffmpeg_params'],
60
- },
61
- })
62
- async createProfile(
63
- args: CreateVideoResolutionProfileDto,
64
- _context: McpContext,
65
- ): Promise<any> {
66
- return this.videoResolutionProfileService.create(args);
67
- }
68
-
69
- @McpTool({
70
- name: 'lms.video-resolution-profiles.update',
71
- description: 'Updates an existing video resolution profile.',
72
- inputSchema: {
73
- type: 'object',
74
- properties: {
75
- id: { type: 'number', description: 'Profile ID' },
76
- name: { type: 'string', description: 'Profile name (max 100 chars)' },
77
- ffmpeg_params: { type: 'string', description: 'FFmpeg params string' },
78
- status: { type: 'string', description: 'Status (active|inactive)' },
79
- },
80
- required: ['id'],
81
- },
82
- })
83
- async updateProfile(
84
- args: { id: number } & UpdateVideoResolutionProfileDto,
85
- _context: McpContext,
86
- ): Promise<any> {
87
- const { id, ...dto } = args;
88
- return this.videoResolutionProfileService.update(id, dto);
89
- }
90
-
91
- @McpTool({
92
- name: 'lms.video-resolution-profiles.delete',
93
- description: 'Removes a video resolution profile by ID.',
94
- inputSchema: {
95
- type: 'object',
96
- properties: {
97
- id: { type: 'number', description: 'Profile ID' },
98
- },
99
- required: ['id'],
100
- },
101
- })
102
- async deleteProfile(
103
- args: { id: number },
104
- _context: McpContext,
105
- ): Promise<any> {
106
- return this.videoResolutionProfileService.delete(args.id);
107
- }
108
-
109
- @McpTool({
110
- name: 'lms.video-resolution-profiles.toggle-status',
111
- description: 'Toggles profile status between active and inactive.',
112
- inputSchema: {
113
- type: 'object',
114
- properties: {
115
- id: { type: 'number', description: 'Profile ID' },
116
- status: { type: 'string', description: 'Target status (active|inactive)' },
117
- },
118
- required: ['id', 'status'],
119
- },
120
- })
121
- async toggleProfileStatus(
122
- args: { id: number; status: 'active' | 'inactive' },
123
- _context: McpContext,
124
- ): Promise<any> {
125
- const { id, status } = args;
126
- return this.videoResolutionProfileService.update(id, { status });
127
- }
128
- }
@@ -1,13 +0,0 @@
1
- import { PrismaModule } from '@hed-hog/api-prisma';
2
- import { forwardRef, Module } from '@nestjs/common';
3
- import { VideoResolutionProfileController } from './video-resolution-profile.controller';
4
- import { VideoResolutionProfileMcpTools } from './video-resolution-profile.mcp-tools';
5
- import { VideoResolutionProfileService } from './video-resolution-profile.service';
6
-
7
- @Module({
8
- imports: [forwardRef(() => PrismaModule)],
9
- controllers: [VideoResolutionProfileController],
10
- providers: [VideoResolutionProfileService, VideoResolutionProfileMcpTools],
11
- exports: [forwardRef(() => VideoResolutionProfileService)],
12
- })
13
- export class VideoResolutionProfileModule {}
@@ -1,117 +0,0 @@
1
- import { PrismaService } from '@hed-hog/api-prisma';
2
- import { Injectable, NotFoundException } from '@nestjs/common';
3
- import { CreateVideoResolutionProfileDto } from './dto/create-video-resolution-profile.dto';
4
- import { UpdateVideoResolutionProfileDto } from './dto/update-video-resolution-profile.dto';
5
-
6
- @Injectable()
7
- export class VideoResolutionProfileService {
8
- constructor(private readonly prisma: PrismaService) {}
9
-
10
- private get profileClient() {
11
- return (this.prisma as any).video_resolution_profile;
12
- }
13
-
14
- async list(params: { page?: number; pageSize?: number; search?: string }) {
15
- const page = Math.max(Number(params.page) || 1, 1);
16
- const pageSize = Math.max(Number(params.pageSize) || 20, 1);
17
- const skip = (page - 1) * pageSize;
18
- const search = params.search?.trim();
19
-
20
- const where: any = {};
21
- if (search) {
22
- where.name = { contains: search, mode: 'insensitive' };
23
- }
24
-
25
- const [rows, total] = await Promise.all([
26
- this.profileClient.findMany({
27
- where,
28
- skip,
29
- take: pageSize,
30
- orderBy: { name: 'asc' },
31
- }),
32
- this.profileClient.count({ where }),
33
- ]);
34
-
35
- return {
36
- data: (rows as any[]).map((row) => this.mapRow(row)),
37
- total,
38
- page,
39
- pageSize,
40
- };
41
- }
42
-
43
- async getAll() {
44
- const rows = await this.profileClient.findMany({
45
- where: { status: 'active' },
46
- orderBy: { name: 'asc' },
47
- });
48
-
49
- return (rows as any[]).map((row) => this.mapRow(row));
50
- }
51
-
52
- async create(dto: CreateVideoResolutionProfileDto) {
53
- const profile = await this.profileClient.create({
54
- data: {
55
- name: dto.name,
56
- ffmpeg_params: dto.ffmpeg_params,
57
- status: dto.status ?? 'active',
58
- },
59
- });
60
-
61
- return this.getProfileById(profile.id);
62
- }
63
-
64
- async update(id: number, dto: UpdateVideoResolutionProfileDto) {
65
- const profile = await this.profileClient.findUnique({
66
- where: { id },
67
- select: { id: true },
68
- });
69
-
70
- if (!profile) {
71
- throw new NotFoundException('Video resolution profile not found');
72
- }
73
-
74
- const data: any = {};
75
- if (dto.name !== undefined) data.name = dto.name;
76
- if (dto.ffmpeg_params !== undefined) data.ffmpeg_params = dto.ffmpeg_params;
77
- if (dto.status !== undefined) data.status = dto.status;
78
-
79
- if (Object.keys(data).length > 0) {
80
- await this.profileClient.update({ where: { id }, data });
81
- }
82
-
83
- return this.getProfileById(id);
84
- }
85
-
86
- async delete(id: number) {
87
- const profile = await this.profileClient.findUnique({
88
- where: { id },
89
- select: { id: true },
90
- });
91
-
92
- if (!profile) {
93
- throw new NotFoundException('Video resolution profile not found');
94
- }
95
-
96
- await this.profileClient.delete({ where: { id } });
97
- }
98
-
99
- private async getProfileById(id: number) {
100
- const row = await this.profileClient.findUnique({ where: { id } });
101
-
102
- if (!row) {
103
- throw new NotFoundException('Video resolution profile not found');
104
- }
105
-
106
- return this.mapRow(row);
107
- }
108
-
109
- private mapRow(row: any) {
110
- return {
111
- id: row.id,
112
- name: row.name,
113
- ffmpeg_params: row.ffmpeg_params,
114
- status: row.status,
115
- };
116
- }
117
- }