@hed-hog/lms 0.0.366 → 0.0.370

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 (169) hide show
  1. package/dist/certificate/certificate.controller.d.ts +1 -1
  2. package/dist/certificate/certificate.controller.d.ts.map +1 -1
  3. package/dist/certificate/certificate.controller.js +4 -2
  4. package/dist/certificate/certificate.controller.js.map +1 -1
  5. package/dist/certificate/certificate.service.d.ts +50 -0
  6. package/dist/certificate/certificate.service.d.ts.map +1 -1
  7. package/dist/certificate/certificate.service.js +73 -0
  8. package/dist/certificate/certificate.service.js.map +1 -1
  9. package/dist/course/course-ai-usage.service.d.ts +58 -0
  10. package/dist/course/course-ai-usage.service.d.ts.map +1 -0
  11. package/dist/course/course-ai-usage.service.js +176 -0
  12. package/dist/course/course-ai-usage.service.js.map +1 -0
  13. package/dist/course/course-audio-transcription.service.d.ts +65 -1
  14. package/dist/course/course-audio-transcription.service.d.ts.map +1 -1
  15. package/dist/course/course-audio-transcription.service.js +381 -29
  16. package/dist/course/course-audio-transcription.service.js.map +1 -1
  17. package/dist/course/course-export-scorm12.service.d.ts +3 -0
  18. package/dist/course/course-export-scorm12.service.d.ts.map +1 -1
  19. package/dist/course/course-export-scorm12.service.js +141 -6
  20. package/dist/course/course-export-scorm12.service.js.map +1 -1
  21. package/dist/course/course-export.service.d.ts.map +1 -1
  22. package/dist/course/course-export.service.js +2 -1
  23. package/dist/course/course-export.service.js.map +1 -1
  24. package/dist/course/course-lesson.controller.d.ts +25 -3
  25. package/dist/course/course-lesson.controller.d.ts.map +1 -1
  26. package/dist/course/course-lesson.controller.js +71 -8
  27. package/dist/course/course-lesson.controller.js.map +1 -1
  28. package/dist/course/course-structure.controller.d.ts +26 -5
  29. package/dist/course/course-structure.controller.d.ts.map +1 -1
  30. package/dist/course/course-structure.controller.js +31 -1
  31. package/dist/course/course-structure.controller.js.map +1 -1
  32. package/dist/course/course-structure.service.d.ts +37 -5
  33. package/dist/course/course-structure.service.d.ts.map +1 -1
  34. package/dist/course/course-structure.service.js +165 -20
  35. package/dist/course/course-structure.service.js.map +1 -1
  36. package/dist/course/course-transcription-translation.service.d.ts +31 -0
  37. package/dist/course/course-transcription-translation.service.d.ts.map +1 -0
  38. package/dist/course/course-transcription-translation.service.js +227 -0
  39. package/dist/course/course-transcription-translation.service.js.map +1 -0
  40. package/dist/course/course-video-agent-pipeline.service.js +7 -7
  41. package/dist/course/course-video-agent-pipeline.service.js.map +1 -1
  42. package/dist/course/course.module.d.ts.map +1 -1
  43. package/dist/course/course.module.js +4 -0
  44. package/dist/course/course.module.js.map +1 -1
  45. package/dist/course/dto/create-course-bulk-job.dto.d.ts +2 -1
  46. package/dist/course/dto/create-course-bulk-job.dto.d.ts.map +1 -1
  47. package/dist/course/dto/create-course-bulk-job.dto.js +6 -1
  48. package/dist/course/dto/create-course-bulk-job.dto.js.map +1 -1
  49. package/dist/course/dto/create-course-export.dto.d.ts +1 -0
  50. package/dist/course/dto/create-course-export.dto.d.ts.map +1 -1
  51. package/dist/course/dto/create-course-export.dto.js +6 -0
  52. package/dist/course/dto/create-course-export.dto.js.map +1 -1
  53. package/dist/course/lms-bulk-upload-automation.service.d.ts.map +1 -1
  54. package/dist/course/lms-bulk-upload-automation.service.js +26 -13
  55. package/dist/course/lms-bulk-upload-automation.service.js.map +1 -1
  56. package/dist/course/lms-bulk-upload.controller.d.ts +3 -0
  57. package/dist/course/lms-bulk-upload.controller.d.ts.map +1 -1
  58. package/dist/course/lms-bulk-upload.service.d.ts +3 -0
  59. package/dist/course/lms-bulk-upload.service.d.ts.map +1 -1
  60. package/dist/course/lms-bulk-upload.service.js +48 -29
  61. package/dist/course/lms-bulk-upload.service.js.map +1 -1
  62. package/dist/course/subtitle.util.d.ts +46 -0
  63. package/dist/course/subtitle.util.d.ts.map +1 -0
  64. package/dist/course/subtitle.util.js +206 -0
  65. package/dist/course/subtitle.util.js.map +1 -0
  66. package/dist/enterprise/training/training-student.service.d.ts +27 -0
  67. package/dist/enterprise/training/training-student.service.d.ts.map +1 -1
  68. package/dist/enterprise/training/training-student.service.js +197 -10
  69. package/dist/enterprise/training/training-student.service.js.map +1 -1
  70. package/dist/lesson-xp-map/lesson-xp-ai-calculation.service.d.ts +3 -1
  71. package/dist/lesson-xp-map/lesson-xp-ai-calculation.service.d.ts.map +1 -1
  72. package/dist/lesson-xp-map/lesson-xp-ai-calculation.service.js +19 -5
  73. package/dist/lesson-xp-map/lesson-xp-ai-calculation.service.js.map +1 -1
  74. package/dist/lesson-xp-map/lesson-xp-map.module.d.ts.map +1 -1
  75. package/dist/lesson-xp-map/lesson-xp-map.module.js +2 -1
  76. package/dist/lesson-xp-map/lesson-xp-map.module.js.map +1 -1
  77. package/dist/libraries/lms/tsconfig.tsbuildinfo +1 -1
  78. package/dist/lms.module.d.ts.map +1 -1
  79. package/dist/lms.module.js +4 -0
  80. package/dist/lms.module.js.map +1 -1
  81. package/dist/platforma/platforma-performance.service.js +121 -121
  82. package/dist/platforma/platforma-video.service.d.ts +8 -0
  83. package/dist/platforma/platforma-video.service.d.ts.map +1 -1
  84. package/dist/platforma/platforma-video.service.js +45 -2
  85. package/dist/platforma/platforma-video.service.js.map +1 -1
  86. package/dist/platforma/platforma.controller.d.ts +99 -1
  87. package/dist/platforma/platforma.controller.d.ts.map +1 -1
  88. package/dist/platforma/platforma.controller.js +111 -2
  89. package/dist/platforma/platforma.controller.js.map +1 -1
  90. package/dist/training/dto/create-training.dto.d.ts +9 -0
  91. package/dist/training/dto/create-training.dto.d.ts.map +1 -1
  92. package/dist/training/dto/create-training.dto.js +45 -1
  93. package/dist/training/dto/create-training.dto.js.map +1 -1
  94. package/dist/training/training.controller.d.ts +144 -0
  95. package/dist/training/training.controller.d.ts.map +1 -1
  96. package/dist/training/training.service.d.ts +149 -0
  97. package/dist/training/training.service.d.ts.map +1 -1
  98. package/dist/training/training.service.js +332 -167
  99. package/dist/training/training.service.js.map +1 -1
  100. package/hedhog/data/image_type.yaml +10 -0
  101. package/hedhog/data/route.yaml +251 -0
  102. package/hedhog/data/setting_group.yaml +97 -0
  103. package/hedhog/frontend/app/bulk-upload-sessions/page.tsx.ejs +139 -27
  104. package/hedhog/frontend/app/courses/[id]/_components/CourseFlagsCard.tsx.ejs +69 -57
  105. package/hedhog/frontend/app/courses/[id]/_components/CourseIssuedCertificatesCard.tsx.ejs +168 -0
  106. package/hedhog/frontend/app/courses/[id]/structure/_components/course-ai-costs-tab.tsx.ejs +191 -0
  107. package/hedhog/frontend/app/courses/[id]/structure/_components/course-export-sheet.tsx.ejs +81 -1
  108. package/hedhog/frontend/app/courses/[id]/structure/_components/course-exports-tab.tsx.ejs +12 -0
  109. package/hedhog/frontend/app/courses/[id]/structure/_components/detail-course.tsx.ejs +69 -1
  110. package/hedhog/frontend/app/courses/[id]/structure/_components/detail-lesson.tsx.ejs +267 -19
  111. package/hedhog/frontend/app/courses/[id]/structure/_components/editor-bulk.tsx.ejs +114 -86
  112. package/hedhog/frontend/app/courses/[id]/structure/_components/editor-course.tsx.ejs +239 -31
  113. package/hedhog/frontend/app/courses/[id]/structure/_components/editor-lesson.tsx.ejs +344 -59
  114. package/hedhog/frontend/app/courses/[id]/structure/_components/lesson-video-preview.tsx.ejs +200 -0
  115. package/hedhog/frontend/app/courses/[id]/structure/_components/tree-row-lesson.tsx.ejs +1 -0
  116. package/hedhog/frontend/app/courses/[id]/structure/_components/types.ts.ejs +3 -0
  117. package/hedhog/frontend/app/courses/[id]/structure/_data/adapters/course-structure.adapter.ts.ejs +19 -7
  118. package/hedhog/frontend/app/courses/[id]/structure/_data/types/api-course.types.ts.ejs +4 -0
  119. package/hedhog/frontend/app/courses/[id]/structure/_data/use-course-ai-costs.ts.ejs +40 -0
  120. package/hedhog/frontend/app/courses/[id]/structure/_data/use-course-exports.ts.ejs +25 -0
  121. package/hedhog/frontend/app/courses/[id]/structure/_data/use-course-structure-mutations.ts.ejs +148 -0
  122. package/hedhog/frontend/app/courses/[id]/structure/_data/use-transcription-segments.ts.ejs +157 -8
  123. package/hedhog/frontend/app/courses/_components/CourseRowActions.tsx.ejs +1 -22
  124. package/hedhog/frontend/app/courses/page.tsx.ejs +26 -4
  125. package/hedhog/frontend/app/paths/page.tsx.ejs +612 -164
  126. package/hedhog/frontend/messages/en.json +23 -12
  127. package/hedhog/frontend/messages/pt.json +23 -12
  128. package/hedhog/query/triggers.sql +33 -0
  129. package/hedhog/table/course_ai_usage.yaml +46 -0
  130. package/hedhog/table/course_lesson.yaml +3 -0
  131. package/hedhog/table/course_lesson_answer.yaml +37 -0
  132. package/hedhog/table/course_lesson_transcription_segment.yaml +8 -0
  133. package/hedhog/table/learning_path.yaml +6 -0
  134. package/hedhog/table/learning_path_module.yaml +22 -0
  135. package/hedhog/table/learning_path_step.yaml +9 -6
  136. package/hedhog/table/lesson_view_event.yaml +66 -66
  137. package/package.json +9 -9
  138. package/src/certificate/certificate.controller.ts +2 -0
  139. package/src/certificate/certificate.service.ts +99 -0
  140. package/src/course/course-ai-usage.service.ts +221 -0
  141. package/src/course/course-audio-transcription.service.ts +471 -43
  142. package/src/course/course-export-scorm12.service.ts +149 -5
  143. package/src/course/course-export.service.ts +1 -0
  144. package/src/course/course-lesson.controller.ts +59 -6
  145. package/src/course/course-structure.controller.ts +16 -0
  146. package/src/course/course-structure.service.ts +184 -10
  147. package/src/course/course-transcription-translation.service.ts +293 -0
  148. package/src/course/course-video-agent-pipeline.service.ts +471 -471
  149. package/src/course/course.module.ts +4 -0
  150. package/src/course/dto/create-course-bulk-job.dto.ts +7 -3
  151. package/src/course/dto/create-course-export.dto.ts +6 -0
  152. package/src/course/ffmpeg.util.ts +65 -65
  153. package/src/course/lms-bulk-upload-automation.service.ts +29 -7
  154. package/src/course/lms-bulk-upload.service.ts +20 -1
  155. package/src/course/subtitle.util.ts +220 -0
  156. package/src/enterprise/training/training-student.service.ts +224 -4
  157. package/src/lesson-xp-map/lesson-xp-ai-calculation.service.ts +14 -0
  158. package/src/lesson-xp-map/lesson-xp-map.module.ts +2 -1
  159. package/src/lms.module.ts +4 -0
  160. package/src/platforma/dto/heartbeat.dto.ts +30 -30
  161. package/src/platforma/handlers/emit-certificate.handler.ts +117 -117
  162. package/src/platforma/handlers/lesson-heartbeat.handler.ts +343 -343
  163. package/src/platforma/platforma-heartbeat.service.ts +33 -33
  164. package/src/platforma/platforma-performance.service.ts +606 -606
  165. package/src/platforma/platforma-search.service.ts +48 -48
  166. package/src/platforma/platforma-video.service.ts +59 -3
  167. package/src/platforma/platforma.controller.ts +88 -0
  168. package/src/training/dto/create-training.dto.ts +36 -0
  169. package/src/training/training.service.ts +360 -163
@@ -108,9 +108,18 @@ let CourseStructureController = class CourseStructureController {
108
108
  getVideoProcessingStats(courseId) {
109
109
  return this.courseStructureService.getVideoProcessingStats(courseId);
110
110
  }
111
+ getCourseTranscriptionLocales(courseId) {
112
+ return this.courseStructureService.getCourseTranscriptionLocales(courseId);
113
+ }
114
+ deleteAllCourseTranscriptions(courseId) {
115
+ return this.courseStructureService.deleteAllCourseTranscriptions(courseId);
116
+ }
117
+ getCourseAiCosts(courseId) {
118
+ return this.courseStructureService.getCourseAiCosts(courseId);
119
+ }
111
120
  createBulkJobs(user, courseId, dto) {
112
121
  var _a;
113
- return this.courseStructureService.bulkEnqueueJobs(courseId, dto.jobType, (_a = user === null || user === void 0 ? void 0 : user.id) !== null && _a !== void 0 ? _a : 0, dto.reprocessAlreadyProcessed);
122
+ return this.courseStructureService.bulkEnqueueJobs(courseId, dto.jobType, (_a = user === null || user === void 0 ? void 0 : user.id) !== null && _a !== void 0 ? _a : 0, dto.reprocessAlreadyProcessed, dto.targetLocaleId);
114
123
  }
115
124
  };
116
125
  exports.CourseStructureController = CourseStructureController;
@@ -291,6 +300,27 @@ __decorate([
291
300
  __metadata("design:paramtypes", [Number]),
292
301
  __metadata("design:returntype", void 0)
293
302
  ], CourseStructureController.prototype, "getVideoProcessingStats", null);
303
+ __decorate([
304
+ (0, common_1.Get)('transcription-locales'),
305
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
306
+ __metadata("design:type", Function),
307
+ __metadata("design:paramtypes", [Number]),
308
+ __metadata("design:returntype", void 0)
309
+ ], CourseStructureController.prototype, "getCourseTranscriptionLocales", null);
310
+ __decorate([
311
+ (0, common_1.Delete)('transcription-segments'),
312
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
313
+ __metadata("design:type", Function),
314
+ __metadata("design:paramtypes", [Number]),
315
+ __metadata("design:returntype", void 0)
316
+ ], CourseStructureController.prototype, "deleteAllCourseTranscriptions", null);
317
+ __decorate([
318
+ (0, common_1.Get)('ai-costs'),
319
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
320
+ __metadata("design:type", Function),
321
+ __metadata("design:paramtypes", [Number]),
322
+ __metadata("design:returntype", void 0)
323
+ ], CourseStructureController.prototype, "getCourseAiCosts", null);
294
324
  __decorate([
295
325
  (0, common_1.Post)('bulk-jobs'),
296
326
  __param(0, (0, api_1.User)()),
@@ -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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"}
@@ -2,6 +2,7 @@ import { PrismaService } from '@hed-hog/api-prisma';
2
2
  import { FileService } from '@hed-hog/core';
3
3
  import { QueueJobService } from '@hed-hog/queue';
4
4
  import { InstructorService } from '../instructor/instructor.service';
5
+ import { CourseAiUsageService } from './course-ai-usage.service';
5
6
  import { CourseOperationsIntegrationService } from './course-operations-integration.service';
6
7
  import { CourseVideoHlsService } from './course-video-hls.service';
7
8
  import { CreateCourseLessonFrameDto } from './dto/create-course-lesson-frame.dto';
@@ -26,8 +27,24 @@ export declare class CourseStructureService {
26
27
  private readonly operationsIntegration;
27
28
  private readonly queueJob;
28
29
  private readonly courseVideoHlsService;
30
+ private readonly aiUsageService;
29
31
  private readonly logger;
30
- constructor(prisma: PrismaService, fileService: FileService, instructorService: InstructorService, operationsIntegration: CourseOperationsIntegrationService, queueJob: QueueJobService, courseVideoHlsService: CourseVideoHlsService);
32
+ constructor(prisma: PrismaService, fileService: FileService, instructorService: InstructorService, operationsIntegration: CourseOperationsIntegrationService, queueJob: QueueJobService, courseVideoHlsService: CourseVideoHlsService, aiUsageService: CourseAiUsageService);
33
+ getCourseAiCosts(courseId: number): Promise<{
34
+ currency: string;
35
+ totalCostUsd: number;
36
+ byJobType: Array<{
37
+ jobType: string;
38
+ costUsd: number;
39
+ runs: number;
40
+ }>;
41
+ byLesson: Array<{
42
+ lessonId: number | null;
43
+ lessonTitle: string | null;
44
+ costUsd: number;
45
+ runs: number;
46
+ }>;
47
+ }>;
31
48
  getStructure(courseId: number): Promise<{
32
49
  sessoes: {
33
50
  id: string;
@@ -55,11 +72,12 @@ export declare class CourseStructureService {
55
72
  conteudoPost: any;
56
73
  statusProducao: LessonProductionStatus;
57
74
  published: boolean;
75
+ temTranscricao: boolean;
58
76
  recursos: {
59
77
  id: string;
60
78
  nome: string;
61
79
  fileId: number;
62
- tamanho: string;
80
+ tamanho: number;
63
81
  type: LessonFileType;
64
82
  is_public: boolean;
65
83
  }[];
@@ -284,8 +302,21 @@ export declare class CourseStructureService {
284
302
  pasteLessons(courseId: number, targetSessionId: number, dto: PasteLessonsDto): Promise<{
285
303
  lessons: any[];
286
304
  }>;
287
- getTranscriptionSegments(lessonId: number): Promise<any>;
288
- updateTranscriptionSegments(lessonId: number, dto: UpdateTranscriptionSegmentsDTO): Promise<[any, any]>;
305
+ getTranscriptionSegments(lessonId: number, localeId?: number | null): Promise<any>;
306
+ getAvailableTranscriptionLocales(lessonId: number): Promise<any[]>;
307
+ updateTranscriptionSegments(lessonId: number, dto: UpdateTranscriptionSegmentsDTO, localeId?: number | null): Promise<[any, any]>;
308
+ deleteTranscriptionLocale(lessonId: number, localeId: number | null): Promise<{
309
+ success: boolean;
310
+ deleted: any;
311
+ }>;
312
+ deleteAllCourseTranscriptions(courseId: number): Promise<{
313
+ success: boolean;
314
+ deleted: any;
315
+ }>;
316
+ translateTranscription(lessonId: number, sourceLocaleId: number | null, targetLocaleId: number, notificationId?: number, notificationUserId?: number): Promise<{
317
+ queueJobId: any;
318
+ status: any;
319
+ }>;
289
320
  getAudioFiles(lessonId: number): Promise<any>;
290
321
  startTranscription(lessonId: number): Promise<{
291
322
  queueJobId: any;
@@ -297,12 +328,13 @@ export declare class CourseStructureService {
297
328
  withoutOriginal: number;
298
329
  alreadyProcessed: number;
299
330
  }>;
300
- bulkEnqueueJobs(courseId: number, jobType: 'transcription' | 'xp_recalculation' | 'video_processing', userId: number, reprocessAlreadyProcessed?: boolean): Promise<{
331
+ bulkEnqueueJobs(courseId: number, jobType: 'transcription' | 'xp_recalculation' | 'video_processing' | 'translate_transcription', userId: number, reprocessAlreadyProcessed?: boolean, targetLocaleId?: number): Promise<{
301
332
  queued: number;
302
333
  skipped: number;
303
334
  skippedWithoutTranscription: number;
304
335
  warnings: string[];
305
336
  }>;
337
+ getCourseTranscriptionLocales(courseId: number): Promise<any>;
306
338
  private syncLessonRelations;
307
339
  private getLessonById;
308
340
  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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"}
@@ -16,18 +16,23 @@ const core_1 = require("@hed-hog/core");
16
16
  const queue_1 = require("@hed-hog/queue");
17
17
  const common_1 = require("@nestjs/common");
18
18
  const instructor_service_1 = require("../instructor/instructor.service");
19
+ const course_ai_usage_service_1 = require("./course-ai-usage.service");
19
20
  const course_operations_integration_service_1 = require("./course-operations-integration.service");
20
21
  const course_video_hls_service_1 = require("./course-video-hls.service");
21
22
  let CourseStructureService = CourseStructureService_1 = class CourseStructureService {
22
- constructor(prisma, fileService, instructorService, operationsIntegration, queueJob, courseVideoHlsService) {
23
+ constructor(prisma, fileService, instructorService, operationsIntegration, queueJob, courseVideoHlsService, aiUsageService) {
23
24
  this.prisma = prisma;
24
25
  this.fileService = fileService;
25
26
  this.instructorService = instructorService;
26
27
  this.operationsIntegration = operationsIntegration;
27
28
  this.queueJob = queueJob;
28
29
  this.courseVideoHlsService = courseVideoHlsService;
30
+ this.aiUsageService = aiUsageService;
29
31
  this.logger = new common_1.Logger(CourseStructureService_1.name);
30
32
  }
33
+ getCourseAiCosts(courseId) {
34
+ return this.aiUsageService.getCourseAiCosts(courseId);
35
+ }
31
36
  async getStructure(courseId) {
32
37
  var _a, _b, _c, _d, _e, _f, _g, _h;
33
38
  await this.ensureCourseExists(courseId);
@@ -40,7 +45,9 @@ let CourseStructureService = CourseStructureService_1 = class CourseStructureSer
40
45
  course_lesson: {
41
46
  orderBy: { order: 'asc' },
42
47
  include: {
43
- course_lesson_file: true,
48
+ course_lesson_file: {
49
+ include: { file: { select: { size: true } } },
50
+ },
44
51
  course_lesson_video_frame: {
45
52
  orderBy: { id: 'asc' },
46
53
  include: {
@@ -133,14 +140,18 @@ let CourseStructureService = CourseStructureService_1 = class CourseStructureSer
133
140
  conteudoPost: parsedContent === null || parsedContent === void 0 ? void 0 : parsedContent.conteudoPost,
134
141
  statusProducao: this.normalizeProductionStatus(parsedContent === null || parsedContent === void 0 ? void 0 : parsedContent.statusProducao),
135
142
  published: (_g = lessonPublishedById.get(lesson.id)) !== null && _g !== void 0 ? _g : false,
136
- recursos: lesson.course_lesson_file.map((fileLink) => ({
137
- id: String(fileLink.id),
138
- nome: fileLink.title,
139
- fileId: fileLink.file_id,
140
- tamanho: '',
141
- type: this.readLessonFileType(fileLink),
142
- is_public: this.readLessonFileVisibility(fileLink),
143
- })),
143
+ temTranscricao: Boolean(lesson.has_transcription),
144
+ recursos: lesson.course_lesson_file.map((fileLink) => {
145
+ var _a, _b;
146
+ return ({
147
+ id: String(fileLink.id),
148
+ nome: fileLink.title,
149
+ fileId: fileLink.file_id,
150
+ tamanho: (_b = (_a = fileLink.file) === null || _a === void 0 ? void 0 : _a.size) !== null && _b !== void 0 ? _b : 0,
151
+ type: this.readLessonFileType(fileLink),
152
+ is_public: this.readLessonFileVisibility(fileLink),
153
+ });
154
+ }),
144
155
  frames: lesson.course_lesson_video_frame.map((frame) => {
145
156
  var _a, _b, _c, _d;
146
157
  return ({
@@ -887,27 +898,53 @@ let CourseStructureService = CourseStructureService_1 = class CourseStructureSer
887
898
  }
888
899
  return { lessons: result };
889
900
  }
890
- async getTranscriptionSegments(lessonId) {
901
+ async getTranscriptionSegments(lessonId, localeId) {
902
+ const where = { course_lesson_id: lessonId };
903
+ if (localeId !== undefined) {
904
+ where.locale_id = localeId !== null && localeId !== void 0 ? localeId : null;
905
+ }
891
906
  return this.prisma.course_lesson_transcription_segment.findMany({
892
- where: { course_lesson_id: lessonId },
907
+ where,
893
908
  orderBy: { start_seconds: 'asc' },
894
909
  select: {
895
910
  id: true,
911
+ locale_id: true,
896
912
  start_seconds: true,
897
913
  end_seconds: true,
898
914
  text: true,
899
915
  },
900
916
  });
901
917
  }
902
- async updateTranscriptionSegments(lessonId, dto) {
918
+ async getAvailableTranscriptionLocales(lessonId) {
919
+ const rows = await this.prisma.course_lesson_transcription_segment.findMany({
920
+ where: { course_lesson_id: lessonId },
921
+ select: { locale_id: true },
922
+ distinct: ['locale_id'],
923
+ });
924
+ const localeIds = rows.map((r) => r.locale_id);
925
+ const locales = await Promise.all(localeIds.map(async (id) => {
926
+ if (id === null)
927
+ return { id: null, code: null, name: null, region: null };
928
+ const locale = await this.prisma.locale.findUnique({
929
+ where: { id },
930
+ select: { id: true, code: true, name: true, region: true },
931
+ });
932
+ return locale !== null && locale !== void 0 ? locale : { id, code: null, name: null, region: null };
933
+ }));
934
+ return locales;
935
+ }
936
+ async updateTranscriptionSegments(lessonId, dto, localeId) {
903
937
  var _a;
938
+ const where = { course_lesson_id: lessonId };
939
+ if (localeId !== undefined) {
940
+ where.locale_id = localeId !== null && localeId !== void 0 ? localeId : null;
941
+ }
904
942
  return this.prisma.$transaction([
905
- this.prisma.course_lesson_transcription_segment.deleteMany({
906
- where: { course_lesson_id: lessonId },
907
- }),
943
+ this.prisma.course_lesson_transcription_segment.deleteMany({ where }),
908
944
  this.prisma.course_lesson_transcription_segment.createMany({
909
945
  data: ((_a = dto.segments) !== null && _a !== void 0 ? _a : []).map((segment) => ({
910
946
  course_lesson_id: lessonId,
947
+ locale_id: localeId !== null && localeId !== void 0 ? localeId : null,
911
948
  start_seconds: segment.startSeconds,
912
949
  end_seconds: segment.endSeconds,
913
950
  text: segment.text,
@@ -915,6 +952,51 @@ let CourseStructureService = CourseStructureService_1 = class CourseStructureSer
915
952
  }),
916
953
  ]);
917
954
  }
955
+ async deleteTranscriptionLocale(lessonId, localeId) {
956
+ const result = await this.prisma.course_lesson_transcription_segment.deleteMany({
957
+ where: { course_lesson_id: lessonId, locale_id: localeId },
958
+ });
959
+ return { success: true, deleted: result.count };
960
+ }
961
+ async deleteAllCourseTranscriptions(courseId) {
962
+ const lessons = await this.prisma.course_lesson.findMany({
963
+ where: { course_module: { course_id: courseId } },
964
+ select: { id: true },
965
+ });
966
+ const lessonIds = lessons.map((l) => l.id);
967
+ if (lessonIds.length === 0) {
968
+ return { success: true, deleted: 0 };
969
+ }
970
+ const result = await this.prisma.course_lesson_transcription_segment.deleteMany({
971
+ where: { course_lesson_id: { in: lessonIds } },
972
+ });
973
+ return { success: true, deleted: result.count };
974
+ }
975
+ async translateTranscription(lessonId, sourceLocaleId, targetLocaleId, notificationId, notificationUserId) {
976
+ const lesson = await this.prisma.course_lesson.findUnique({
977
+ where: { id: lessonId },
978
+ select: { id: true },
979
+ });
980
+ if (!lesson) {
981
+ throw new common_1.NotFoundException(`Lesson ${lessonId} not found`);
982
+ }
983
+ const job = await this.queueJob.enqueue({
984
+ type: 'lms.transcription.translate',
985
+ queueName: 'lms.transcription.translate',
986
+ payload: Object.assign(Object.assign({ lessonId,
987
+ sourceLocaleId,
988
+ targetLocaleId }, (notificationId != null ? { notificationId } : {})), (notificationUserId != null ? { notificationUserId } : {})),
989
+ sourceModule: 'lms',
990
+ sourceEntity: 'course_lesson',
991
+ sourceEntityId: `${lessonId}:${targetLocaleId}`,
992
+ maxAttempts: 3,
993
+ });
994
+ const startedOnDemand = await this.startTranscriptionOnDemandIfNeeded(job.id);
995
+ if (startedOnDemand) {
996
+ return { queueJobId: job.id, status: 'processing' };
997
+ }
998
+ return { queueJobId: job.id, status: job.status };
999
+ }
918
1000
  async getAudioFiles(lessonId) {
919
1001
  return this.prisma.course_lesson_file.findMany({
920
1002
  where: {
@@ -1009,7 +1091,8 @@ let CourseStructureService = CourseStructureService_1 = class CourseStructureSer
1009
1091
  }
1010
1092
  return { withOriginal, withoutOriginal, alreadyProcessed };
1011
1093
  }
1012
- async bulkEnqueueJobs(courseId, jobType, userId, reprocessAlreadyProcessed) {
1094
+ async bulkEnqueueJobs(courseId, jobType, userId, reprocessAlreadyProcessed, targetLocaleId) {
1095
+ var _a;
1013
1096
  const lessons = await this.prisma.course_lesson.findMany({
1014
1097
  where: {
1015
1098
  course_module: { course_id: courseId },
@@ -1084,7 +1167,7 @@ let CourseStructureService = CourseStructureService_1 = class CourseStructureSer
1084
1167
  }
1085
1168
  }
1086
1169
  }
1087
- else {
1170
+ else if (jobType === 'xp_recalculation') {
1088
1171
  for (const lesson of lessons) {
1089
1172
  const segments = await this.prisma.course_lesson_transcription_segment.findFirst({
1090
1173
  where: { course_lesson_id: lesson.id },
@@ -1124,8 +1207,67 @@ let CourseStructureService = CourseStructureService_1 = class CourseStructureSer
1124
1207
  warnings.push(`${skippedWithoutTranscription} aula(s) sem transcrição foram ignoradas. Gere a transcrição antes de recalcular o XP.`);
1125
1208
  }
1126
1209
  }
1210
+ else if (jobType === 'translate_transcription') {
1211
+ if (!targetLocaleId) {
1212
+ warnings.push('targetLocaleId é obrigatório para o job de tradução em massa.');
1213
+ return { queued, skipped, skippedWithoutTranscription, warnings };
1214
+ }
1215
+ for (const lesson of lessons) {
1216
+ const sourceSegment = await this.prisma.course_lesson_transcription_segment.findFirst({
1217
+ where: {
1218
+ course_lesson_id: lesson.id,
1219
+ NOT: { locale_id: targetLocaleId },
1220
+ },
1221
+ select: { id: true, locale_id: true },
1222
+ orderBy: { id: 'asc' },
1223
+ });
1224
+ if (!sourceSegment) {
1225
+ skipped++;
1226
+ skippedWithoutTranscription++;
1227
+ continue;
1228
+ }
1229
+ await this.queueJob.enqueue({
1230
+ type: 'lms.transcription.translate',
1231
+ queueName: 'lms.transcription.translate',
1232
+ payload: {
1233
+ lessonId: lesson.id,
1234
+ sourceLocaleId: (_a = sourceSegment.locale_id) !== null && _a !== void 0 ? _a : null,
1235
+ targetLocaleId,
1236
+ },
1237
+ sourceModule: 'lms',
1238
+ sourceEntity: 'course_lesson',
1239
+ sourceEntityId: `${lesson.id}:${targetLocaleId}`,
1240
+ maxAttempts: 3,
1241
+ });
1242
+ queued++;
1243
+ }
1244
+ if (skippedWithoutTranscription > 0) {
1245
+ warnings.push(`${skippedWithoutTranscription} aula(s) sem transcrição foram ignoradas.`);
1246
+ }
1247
+ }
1127
1248
  return { queued, skipped, skippedWithoutTranscription, warnings };
1128
1249
  }
1250
+ async getCourseTranscriptionLocales(courseId) {
1251
+ const rows = await this.prisma.course_lesson_transcription_segment.findMany({
1252
+ where: {
1253
+ course_lesson: {
1254
+ course_module: { course_id: courseId },
1255
+ },
1256
+ },
1257
+ select: { locale_id: true },
1258
+ distinct: ['locale_id'],
1259
+ });
1260
+ const localeIds = rows
1261
+ .map((r) => r.locale_id)
1262
+ .filter((id) => id !== null);
1263
+ if (localeIds.length === 0)
1264
+ return [];
1265
+ return this.prisma.locale.findMany({
1266
+ where: { id: { in: localeIds } },
1267
+ select: { id: true, code: true, name: true, region: true },
1268
+ orderBy: { name: 'asc' },
1269
+ });
1270
+ }
1129
1271
  async syncLessonRelations(lessonId, dto, client = this.prisma) {
1130
1272
  var _a;
1131
1273
  const shouldSyncInstructors = Object.prototype.hasOwnProperty.call(dto, 'instructorIds');
@@ -1198,7 +1340,9 @@ let CourseStructureService = CourseStructureService_1 = class CourseStructureSer
1198
1340
  },
1199
1341
  },
1200
1342
  },
1201
- course_lesson_file: true,
1343
+ course_lesson_file: {
1344
+ include: { file: { select: { size: true } } },
1345
+ },
1202
1346
  course_lesson_question: {
1203
1347
  orderBy: { order: 'asc' },
1204
1348
  },
@@ -1474,6 +1618,7 @@ exports.CourseStructureService = CourseStructureService = CourseStructureService
1474
1618
  instructor_service_1.InstructorService,
1475
1619
  course_operations_integration_service_1.CourseOperationsIntegrationService,
1476
1620
  queue_1.QueueJobService,
1477
- course_video_hls_service_1.CourseVideoHlsService])
1621
+ course_video_hls_service_1.CourseVideoHlsService,
1622
+ course_ai_usage_service_1.CourseAiUsageService])
1478
1623
  ], CourseStructureService);
1479
1624
  //# sourceMappingURL=course-structure.service.js.map