@hed-hog/lms 0.0.319 → 0.0.321

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 (128) hide show
  1. package/dist/class-group/class-group.controller.d.ts +64 -1
  2. package/dist/class-group/class-group.controller.d.ts.map +1 -1
  3. package/dist/class-group/class-group.controller.js +35 -0
  4. package/dist/class-group/class-group.controller.js.map +1 -1
  5. package/dist/class-group/class-group.service.d.ts +66 -1
  6. package/dist/class-group/class-group.service.d.ts.map +1 -1
  7. package/dist/class-group/class-group.service.js +164 -13
  8. package/dist/class-group/class-group.service.js.map +1 -1
  9. package/dist/class-group/dto/create-class-group.dto.d.ts.map +1 -1
  10. package/dist/class-group/dto/create-class-group.dto.js +2 -1
  11. package/dist/class-group/dto/create-class-group.dto.js.map +1 -1
  12. package/dist/class-group/dto/material.dto.d.ts +18 -0
  13. package/dist/class-group/dto/material.dto.d.ts.map +1 -0
  14. package/dist/class-group/dto/material.dto.js +86 -0
  15. package/dist/class-group/dto/material.dto.js.map +1 -0
  16. package/dist/course/course.service.d.ts +2 -0
  17. package/dist/course/course.service.d.ts.map +1 -1
  18. package/dist/course/course.service.js +27 -2
  19. package/dist/course/course.service.js.map +1 -1
  20. package/dist/course/dto/create-course.dto.d.ts +2 -2
  21. package/dist/course/dto/create-course.dto.d.ts.map +1 -1
  22. package/dist/course/dto/create-course.dto.js.map +1 -1
  23. package/dist/enterprise/enterprise.controller.d.ts +7 -1
  24. package/dist/enterprise/enterprise.controller.d.ts.map +1 -1
  25. package/dist/enterprise/enterprise.controller.js +72 -2
  26. package/dist/enterprise/enterprise.controller.js.map +1 -1
  27. package/dist/enterprise/enterprise.module.d.ts.map +1 -1
  28. package/dist/enterprise/enterprise.module.js +2 -1
  29. package/dist/enterprise/enterprise.module.js.map +1 -1
  30. package/dist/enterprise/enterprise.service.d.ts +3 -0
  31. package/dist/enterprise/enterprise.service.d.ts.map +1 -1
  32. package/dist/enterprise/enterprise.service.js +84 -1
  33. package/dist/enterprise/enterprise.service.js.map +1 -1
  34. package/dist/enterprise/training/enterprise-training.module.d.ts +3 -0
  35. package/dist/enterprise/training/enterprise-training.module.d.ts.map +1 -0
  36. package/dist/enterprise/training/enterprise-training.module.js +40 -0
  37. package/dist/enterprise/training/enterprise-training.module.js.map +1 -0
  38. package/dist/enterprise/training/training-admin.controller.d.ts +525 -0
  39. package/dist/enterprise/training/training-admin.controller.d.ts.map +1 -0
  40. package/dist/enterprise/training/training-admin.controller.js +385 -0
  41. package/dist/enterprise/training/training-admin.controller.js.map +1 -0
  42. package/dist/enterprise/training/training-admin.service.d.ts +582 -0
  43. package/dist/enterprise/training/training-admin.service.d.ts.map +1 -0
  44. package/dist/enterprise/training/training-admin.service.js +2283 -0
  45. package/dist/enterprise/training/training-admin.service.js.map +1 -0
  46. package/dist/enterprise/training/training-instructor.controller.d.ts +260 -0
  47. package/dist/enterprise/training/training-instructor.controller.d.ts.map +1 -0
  48. package/dist/enterprise/training/training-instructor.controller.js +199 -0
  49. package/dist/enterprise/training/training-instructor.controller.js.map +1 -0
  50. package/dist/enterprise/training/training-instructor.service.d.ts +280 -0
  51. package/dist/enterprise/training/training-instructor.service.d.ts.map +1 -0
  52. package/dist/enterprise/training/training-instructor.service.js +1218 -0
  53. package/dist/enterprise/training/training-instructor.service.js.map +1 -0
  54. package/dist/enterprise/training/training-student.controller.d.ts +168 -0
  55. package/dist/enterprise/training/training-student.controller.d.ts.map +1 -0
  56. package/dist/enterprise/training/training-student.controller.js +104 -0
  57. package/dist/enterprise/training/training-student.controller.js.map +1 -0
  58. package/dist/enterprise/training/training-student.service.d.ts +185 -0
  59. package/dist/enterprise/training/training-student.service.d.ts.map +1 -0
  60. package/dist/enterprise/training/training-student.service.js +674 -0
  61. package/dist/enterprise/training/training-student.service.js.map +1 -0
  62. package/dist/enterprise/training/training-viewer.controller.d.ts +298 -0
  63. package/dist/enterprise/training/training-viewer.controller.d.ts.map +1 -0
  64. package/dist/enterprise/training/training-viewer.controller.js +178 -0
  65. package/dist/enterprise/training/training-viewer.controller.js.map +1 -0
  66. package/dist/evaluation/dto/create-evaluation-topic.dto.d.ts +18 -0
  67. package/dist/evaluation/dto/create-evaluation-topic.dto.d.ts.map +1 -0
  68. package/dist/evaluation/dto/create-evaluation-topic.dto.js +59 -0
  69. package/dist/evaluation/dto/create-evaluation-topic.dto.js.map +1 -0
  70. package/dist/evaluation/dto/update-evaluation-topic.dto.d.ts +6 -0
  71. package/dist/evaluation/dto/update-evaluation-topic.dto.d.ts.map +1 -0
  72. package/dist/evaluation/dto/update-evaluation-topic.dto.js +9 -0
  73. package/dist/evaluation/dto/update-evaluation-topic.dto.js.map +1 -0
  74. package/dist/evaluation/evaluation.controller.d.ts +66 -0
  75. package/dist/evaluation/evaluation.controller.d.ts.map +1 -1
  76. package/dist/evaluation/evaluation.controller.js +73 -0
  77. package/dist/evaluation/evaluation.controller.js.map +1 -1
  78. package/dist/evaluation/evaluation.service.d.ts +71 -0
  79. package/dist/evaluation/evaluation.service.d.ts.map +1 -1
  80. package/dist/evaluation/evaluation.service.js +121 -0
  81. package/dist/evaluation/evaluation.service.js.map +1 -1
  82. package/dist/instructor/instructor.service.js +6 -6
  83. package/dist/instructor/instructor.service.js.map +1 -1
  84. package/dist/lms.module.d.ts.map +1 -1
  85. package/dist/lms.module.js +3 -0
  86. package/dist/lms.module.js.map +1 -1
  87. package/hedhog/data/menu.yaml +19 -2
  88. package/hedhog/data/route.yaml +730 -0
  89. package/hedhog/frontend/app/_components/class-form-sheet.tsx.ejs +74 -8
  90. package/hedhog/frontend/app/_components/course-avatar.tsx.ejs +10 -30
  91. package/hedhog/frontend/app/classes/[id]/_components/event-summary-popover.tsx.ejs +3 -3
  92. package/hedhog/frontend/app/classes/[id]/_components/quick-create-session-popover.tsx.ejs +1 -1
  93. package/hedhog/frontend/app/classes/[id]/page.tsx.ejs +2141 -308
  94. package/hedhog/frontend/app/classes/page.tsx.ejs +8 -7
  95. package/hedhog/frontend/app/courses/[id]/page.tsx.ejs +14 -1
  96. package/hedhog/frontend/app/courses/[id]/structure/_components/editor-course.tsx.ejs +6 -2
  97. package/hedhog/frontend/app/evaluations/_components/evaluation-topic-form-sheet.tsx.ejs +201 -0
  98. package/hedhog/frontend/app/evaluations/_components/evaluation-topic-types.ts.ejs +49 -0
  99. package/hedhog/frontend/app/evaluations/page.tsx.ejs +483 -1112
  100. package/hedhog/frontend/app/instructors/page.tsx.ejs +22 -20
  101. package/hedhog/frontend/app/reports/evaluations/page.tsx.ejs +1278 -0
  102. package/hedhog/frontend/messages/en.json +98 -7
  103. package/hedhog/frontend/messages/pt.json +98 -7
  104. package/hedhog/table/course_class_group_material.yaml +45 -0
  105. package/package.json +8 -8
  106. package/src/class-group/class-group.controller.ts +30 -0
  107. package/src/class-group/class-group.service.ts +176 -5
  108. package/src/class-group/dto/create-class-group.dto.ts +2 -2
  109. package/src/class-group/dto/material.dto.ts +69 -0
  110. package/src/course/course.service.ts +41 -8
  111. package/src/course/dto/create-course.dto.ts +2 -2
  112. package/src/enterprise/enterprise.controller.ts +62 -1
  113. package/src/enterprise/enterprise.module.ts +2 -1
  114. package/src/enterprise/enterprise.service.ts +84 -1
  115. package/src/enterprise/training/enterprise-training.module.ts +27 -0
  116. package/src/enterprise/training/training-admin.controller.ts +278 -0
  117. package/src/enterprise/training/training-admin.service.ts +2523 -0
  118. package/src/enterprise/training/training-instructor.controller.ts +141 -0
  119. package/src/enterprise/training/training-instructor.service.ts +1303 -0
  120. package/src/enterprise/training/training-student.controller.ts +65 -0
  121. package/src/enterprise/training/training-student.service.ts +762 -0
  122. package/src/enterprise/training/training-viewer.controller.ts +115 -0
  123. package/src/evaluation/dto/create-evaluation-topic.dto.ts +48 -0
  124. package/src/evaluation/dto/update-evaluation-topic.dto.ts +6 -0
  125. package/src/evaluation/evaluation.controller.ts +63 -1
  126. package/src/evaluation/evaluation.service.ts +150 -1
  127. package/src/instructor/instructor.service.ts +4 -4
  128. package/src/lms.module.ts +3 -0
@@ -0,0 +1,525 @@
1
+ import { TrainingAdminService } from './training-admin.service';
2
+ export declare class TrainingAdminController {
3
+ private readonly trainingAdminService;
4
+ constructor(trainingAdminService: TrainingAdminService);
5
+ getDashboard(userId: number, enterpriseId?: number): Promise<{
6
+ kpis: {
7
+ totalStudents: {
8
+ value: number;
9
+ change: number;
10
+ changeType: "percent";
11
+ };
12
+ activeClasses: {
13
+ value: number;
14
+ change: number;
15
+ changeType: "absolute";
16
+ };
17
+ slotsInUse: {
18
+ value: number;
19
+ change: number;
20
+ changeType: "absolute";
21
+ };
22
+ averageProgress: {
23
+ value: number;
24
+ change: any;
25
+ changeType: "percent";
26
+ };
27
+ };
28
+ upcomingClasses: {
29
+ id: number;
30
+ name: string;
31
+ courseId: number;
32
+ courseName: string;
33
+ courseLogoUrl: string;
34
+ instructor: string;
35
+ startDate: Date;
36
+ nextSession: {
37
+ date: Date;
38
+ time: string;
39
+ location: string;
40
+ };
41
+ slots: number;
42
+ totalSlots: number;
43
+ status: import("@prisma/client").$Enums.course_class_group_status_d840783477_enum;
44
+ deliveryMode: import("@prisma/client").$Enums.course_class_group_delivery_mode_1f1dcad009_enum;
45
+ }[];
46
+ alerts: {
47
+ type: string;
48
+ message: string;
49
+ severity: "info" | "warning" | "danger";
50
+ }[];
51
+ licenseInfo: {
52
+ limit: number;
53
+ totalStudents: number;
54
+ activeStudents: number;
55
+ };
56
+ }>;
57
+ getCourseStats(userId: number, enterpriseId?: number): Promise<{
58
+ totalCourses: number;
59
+ totalEnrolled: number;
60
+ totalCompleted: number;
61
+ avgCompletion: number;
62
+ }>;
63
+ getCourseDetail(userId: number, courseId: number, enterpriseId?: number): Promise<{
64
+ id: number;
65
+ title: string;
66
+ description: string;
67
+ level: import("@prisma/client").$Enums.course_level_de6adae713_enum;
68
+ categories: string[];
69
+ durationHours: number;
70
+ moduleCount: number;
71
+ lessonCount: number;
72
+ instructors: {
73
+ id: number;
74
+ name: string;
75
+ avatarId: number | null;
76
+ }[];
77
+ createdAt: Date;
78
+ objectives: string;
79
+ requirements: string;
80
+ enrolledCount: number;
81
+ completedCount: number;
82
+ inProgressCount: number;
83
+ avgProgress: number;
84
+ structure: {
85
+ id: number;
86
+ order: number;
87
+ title: string;
88
+ lessons: {
89
+ id: number;
90
+ order: number;
91
+ title: string;
92
+ type: import("@prisma/client").$Enums.course_lesson_type_c6739e3633_enum;
93
+ durationMinutes: number;
94
+ }[];
95
+ }[];
96
+ students: {
97
+ id: number;
98
+ name: string;
99
+ email: string;
100
+ department: string | null;
101
+ status: import("@prisma/client").$Enums.course_enrollment_status_22007f5947_enum;
102
+ progress: number;
103
+ enrolledAt: Date;
104
+ completedAt: Date;
105
+ lastAccess: Date | null;
106
+ }[];
107
+ }>;
108
+ getCourses(userId: number, enterpriseId?: number, page?: number, pageSize?: number, search?: string, level?: string, category?: string): Promise<{
109
+ total: number;
110
+ page: number;
111
+ pageSize: number;
112
+ lastPage: number;
113
+ data: {
114
+ id: number;
115
+ title: string;
116
+ description: string;
117
+ level: import("@prisma/client").$Enums.course_level_de6adae713_enum;
118
+ categories: string[];
119
+ durationHours: number;
120
+ moduleCount: number;
121
+ lessonCount: number;
122
+ instructors: {
123
+ id: number;
124
+ name: string;
125
+ avatarId: number | null;
126
+ }[];
127
+ createdAt: Date;
128
+ enrolledCount: number;
129
+ completedCount: number;
130
+ inProgressCount: number;
131
+ avgProgress: number;
132
+ }[];
133
+ }>;
134
+ getClassGroups(userId: number, enterpriseId?: number, search?: string, status?: string, deliveryMode?: string, instructorId?: number): Promise<{
135
+ data: {
136
+ id: number;
137
+ name: string;
138
+ code: string;
139
+ courseId: number;
140
+ courseName: string;
141
+ courseLogoUrl: string;
142
+ courseBannerUrl: string;
143
+ instructorName: any;
144
+ instructorAvatarUrl: string | null;
145
+ startDate: Date;
146
+ endDate: Date;
147
+ nextSession: {
148
+ date: Date;
149
+ time: string;
150
+ location: string;
151
+ };
152
+ slots: number;
153
+ totalSlots: number;
154
+ status: import("@prisma/client").$Enums.course_class_group_status_d840783477_enum;
155
+ deliveryMode: import("@prisma/client").$Enums.course_class_group_delivery_mode_1f1dcad009_enum;
156
+ completionRate: number;
157
+ }[];
158
+ total: number;
159
+ }>;
160
+ getClassGroupDetail(userId: number, classGroupId: number): Promise<{
161
+ id: number;
162
+ courseName: string;
163
+ className: string;
164
+ code: string;
165
+ instructorName: string;
166
+ instructorAvatarUrl: string | null;
167
+ instructorBio: string | null;
168
+ startDate: Date;
169
+ endDate: Date;
170
+ status: import("@prisma/client").$Enums.course_class_group_status_d840783477_enum;
171
+ deliveryMode: import("@prisma/client").$Enums.course_class_group_delivery_mode_1f1dcad009_enum;
172
+ totalSlots: number;
173
+ enrolledCount: number;
174
+ totalSessions: number;
175
+ completedSessions: number;
176
+ avgAttendance: number;
177
+ completionRate: number;
178
+ nextSession: {
179
+ date: Date;
180
+ time: string;
181
+ location: string;
182
+ meetingUrl: string;
183
+ };
184
+ }>;
185
+ getClassGroupStudents(userId: number, classGroupId: number, page?: number, pageSize?: number, search?: string, status?: string): Promise<{
186
+ total: number;
187
+ page: number;
188
+ pageSize: number;
189
+ lastPage: number;
190
+ data: {
191
+ id: number;
192
+ name: string;
193
+ avatarUrl: string | null;
194
+ progress: number;
195
+ attendance: number;
196
+ grade: number;
197
+ status: "ok" | "inactive" | "risk";
198
+ }[];
199
+ }>;
200
+ getClassGroupSessions(userId: number, classGroupId: number): Promise<{
201
+ id: number;
202
+ title: string;
203
+ date: Date;
204
+ time: string;
205
+ endTime: string;
206
+ location: string;
207
+ meetingUrl: string;
208
+ status: "next" | "completed" | "upcoming";
209
+ attendanceCount: number;
210
+ totalStudents: number;
211
+ }[]>;
212
+ getClassGroupMaterials(userId: number, classGroupId: number): Promise<{
213
+ id: number;
214
+ title: string;
215
+ description: string;
216
+ materialType: import("@prisma/client").$Enums.course_class_group_material_material_type_6e6c399501_enum;
217
+ url: string;
218
+ }[]>;
219
+ getLicenseAvailability(userId: number): Promise<{
220
+ limit: number;
221
+ totalStudents: number;
222
+ hasAvailableSlot: boolean;
223
+ }>;
224
+ listLicenses(userId: number, page?: number, pageSize?: number, search?: string, status?: string, department?: string): Promise<{
225
+ total: number;
226
+ page: number;
227
+ pageSize: number;
228
+ lastPage: number;
229
+ licenseLimit: number;
230
+ data: {
231
+ id: number;
232
+ personId: number;
233
+ name: string;
234
+ email: string;
235
+ status: import("@prisma/client").$Enums.enterprise_student_status_2597741ae7_enum;
236
+ createdAt: Date;
237
+ }[];
238
+ }>;
239
+ assignLicense(userId: number, dto: {
240
+ name: string;
241
+ email?: string;
242
+ department?: string;
243
+ }): Promise<{
244
+ id: number;
245
+ created_at: Date;
246
+ status: import("@prisma/client").$Enums.enterprise_student_status_2597741ae7_enum;
247
+ person_id: number;
248
+ }>;
249
+ revokeLicense(userId: number, personId: number): Promise<{
250
+ id: number;
251
+ }>;
252
+ getEnrollableStudents(userId: number, classGroupId: number, search?: string): Promise<{
253
+ data: {
254
+ id: number;
255
+ personId: number;
256
+ name: string;
257
+ email: string;
258
+ status: import("@prisma/client").$Enums.enterprise_student_status_2597741ae7_enum;
259
+ }[];
260
+ }>;
261
+ enrollExistingStudent(userId: number, classGroupId: number, dto: {
262
+ personId: number;
263
+ }): Promise<{
264
+ id: number;
265
+ created_at: Date;
266
+ updated_at: Date;
267
+ status: import("@prisma/client").$Enums.course_enrollment_status_22007f5947_enum;
268
+ person_id: number;
269
+ course_id: number;
270
+ course_class_group_id: number | null;
271
+ completed_at: Date | null;
272
+ final_score: number | null;
273
+ enrolled_at: Date;
274
+ progress_percent: number;
275
+ }>;
276
+ createAndEnrollNewStudent(userId: number, classGroupId: number, dto: {
277
+ name: string;
278
+ email?: string;
279
+ department?: string;
280
+ }): Promise<{
281
+ id: number;
282
+ created_at: Date;
283
+ updated_at: Date;
284
+ status: import("@prisma/client").$Enums.course_enrollment_status_22007f5947_enum;
285
+ person_id: number;
286
+ course_id: number;
287
+ course_class_group_id: number | null;
288
+ completed_at: Date | null;
289
+ final_score: number | null;
290
+ enrolled_at: Date;
291
+ progress_percent: number;
292
+ }>;
293
+ getStudentStats(userId: number, enterpriseId?: number): Promise<{
294
+ totalStudents: number;
295
+ activeStudents: number;
296
+ inactiveStudents: number;
297
+ pendingStudents: number;
298
+ avgProgress: number;
299
+ }>;
300
+ getStudentDetail(userId: number, personId: number, enterpriseId?: number): Promise<{
301
+ id: number;
302
+ name: string;
303
+ email: string;
304
+ department: any;
305
+ status: import("@prisma/client").$Enums.enterprise_student_status_2597741ae7_enum;
306
+ joinedAt: Date;
307
+ enrolledClasses: number;
308
+ completedCourses: number;
309
+ certificates: number;
310
+ avgProgress: number;
311
+ turmas: {
312
+ id: number;
313
+ code: string;
314
+ title: string;
315
+ status: import("@prisma/client").$Enums.course_class_group_status_d840783477_enum;
316
+ progress: number;
317
+ instructorName: any;
318
+ startDate: Date;
319
+ endDate: Date;
320
+ }[];
321
+ cursos: {
322
+ id: number;
323
+ title: string;
324
+ categories: string[];
325
+ durationHours: number;
326
+ status: import("@prisma/client").$Enums.course_enrollment_status_22007f5947_enum;
327
+ progress: number;
328
+ enrolledAt: Date;
329
+ completedAt: Date;
330
+ }[];
331
+ certificados: {
332
+ id: number;
333
+ verificationCode: string;
334
+ courseName: string;
335
+ issuedAt: Date;
336
+ type: import("@prisma/client").$Enums.certificate_certificate_type_d05ce6e32f_enum;
337
+ }[];
338
+ avaliacoes: {
339
+ id: number;
340
+ title: string;
341
+ score: number;
342
+ status: string;
343
+ submittedAt: Date;
344
+ }[];
345
+ acessos: {
346
+ id: number;
347
+ ipAddress: string;
348
+ userAgent: string;
349
+ createdAt: Date;
350
+ }[];
351
+ }>;
352
+ getStudents(userId: number, enterpriseId?: number, page?: number, pageSize?: number, search?: string, status?: string): Promise<{
353
+ total: number;
354
+ page: number;
355
+ pageSize: number;
356
+ lastPage: number;
357
+ data: {
358
+ id: number;
359
+ personId: number;
360
+ name: string;
361
+ email: string;
362
+ department: any;
363
+ status: import("@prisma/client").$Enums.enterprise_student_status_2597741ae7_enum;
364
+ enrolledClasses: number;
365
+ completedCourses: number;
366
+ certificates: number;
367
+ avgProgress: number;
368
+ joinedAt: Date;
369
+ }[];
370
+ }>;
371
+ getAdminStats(userId: number, enterpriseId?: number): Promise<{
372
+ total: number;
373
+ adminCount: number;
374
+ hrManagerCount: number;
375
+ viewerCount: number;
376
+ }>;
377
+ getAdmins(userId: number, enterpriseId?: number, page?: number, pageSize?: number, search?: string, role?: string): Promise<{
378
+ total: number;
379
+ page: number;
380
+ pageSize: number;
381
+ lastPage: number;
382
+ data: {
383
+ id: number;
384
+ personId: number;
385
+ name: string;
386
+ email: string;
387
+ department: any;
388
+ permission: "viewer" | "admin" | "hr-manager";
389
+ status: import("@prisma/client").$Enums.enterprise_user_status_8a1e21341c_enum;
390
+ addedAt: string;
391
+ lastAccess: string;
392
+ }[];
393
+ }>;
394
+ addAdmin(userId: number, dto: {
395
+ name: string;
396
+ email?: string;
397
+ department?: string;
398
+ role?: string;
399
+ }): Promise<{
400
+ id: number;
401
+ created_at: Date;
402
+ status: import("@prisma/client").$Enums.enterprise_user_status_8a1e21341c_enum;
403
+ role: import("@prisma/client").$Enums.enterprise_user_role_43b5c384bf_enum;
404
+ }>;
405
+ updateAdminRole(userId: number, enterpriseUserId: number, role: string): Promise<{
406
+ id: number;
407
+ role: import("@prisma/client").$Enums.enterprise_user_role_43b5c384bf_enum;
408
+ }>;
409
+ removeAdmin(userId: number, enterpriseUserId: number): Promise<{
410
+ success: boolean;
411
+ }>;
412
+ getAdminReports(userId: number, enterpriseId?: number, dateFrom?: string, dateTo?: string): Promise<{
413
+ kpis: {
414
+ totalStudents: number;
415
+ enrollmentsInPeriod: number;
416
+ completedInPeriod: number;
417
+ activeClassGroups: number;
418
+ avgSatisfaction: number;
419
+ certificatesIssued: number;
420
+ atRiskStudentsCount: number;
421
+ activeCoursesCount: number;
422
+ };
423
+ enrollmentEvents: {
424
+ enrolledDate: string | null;
425
+ completedDate: string | null;
426
+ }[];
427
+ sessionAttendance: {
428
+ date: string;
429
+ title: string;
430
+ totalStudents: number;
431
+ presentCount: number;
432
+ pct: number;
433
+ }[];
434
+ courseStats: {
435
+ courseId: number;
436
+ title: string;
437
+ enrolledCount: number;
438
+ completedCount: number;
439
+ completionPct: number;
440
+ avgSatisfaction: number;
441
+ }[];
442
+ studentStatusCounts: {
443
+ active: number;
444
+ atRisk: number;
445
+ inactive: number;
446
+ };
447
+ evalSessions: {
448
+ date: string;
449
+ sessionTitle: string;
450
+ scores: {
451
+ topicName: string;
452
+ avg: number;
453
+ }[];
454
+ overallAvg: number;
455
+ }[];
456
+ evalTopicAverages: {
457
+ topicName: string;
458
+ avgScore: number;
459
+ }[];
460
+ atRiskStudents: {
461
+ personId: number;
462
+ name: string;
463
+ attendancePct: number;
464
+ lastPresentDate: string | null;
465
+ classGroupTitle: string | null;
466
+ }[];
467
+ }>;
468
+ getEvaluationStats(userId: number, enterpriseId?: number): Promise<{
469
+ activeClassGroups: number;
470
+ totalEvaluations: number;
471
+ avgScore: number;
472
+ evaluatedStudentCount: number;
473
+ }>;
474
+ getEvaluationClassGroups(userId: number, enterpriseId?: number, page?: number, pageSize?: number, search?: string): Promise<{
475
+ total: number;
476
+ page: number;
477
+ pageSize: number;
478
+ lastPage: number;
479
+ data: {
480
+ id: number;
481
+ title: string;
482
+ courseId: number;
483
+ courseTitle: string;
484
+ startDate: Date;
485
+ endDate: Date;
486
+ totalStudentCount: number;
487
+ sessionCount: number;
488
+ evaluatedSessionCount: number;
489
+ avgScore: number;
490
+ evaluatedStudentCount: number;
491
+ }[];
492
+ }>;
493
+ getEvaluationClassGroupDetail(userId: number, classGroupId: number, enterpriseId?: number): Promise<{
494
+ classGroup: {
495
+ id: number;
496
+ title: string;
497
+ courseId: number;
498
+ courseTitle: string;
499
+ startDate: Date;
500
+ endDate: Date;
501
+ };
502
+ topics: {
503
+ id: number;
504
+ name: string;
505
+ }[];
506
+ sessions: {
507
+ id: number;
508
+ title: string;
509
+ date: Date;
510
+ avg: number;
511
+ ratings: {
512
+ personId: number;
513
+ name: string;
514
+ topicScores: Record<number, number>;
515
+ comment: string;
516
+ evaluatedCourse: boolean;
517
+ }[];
518
+ }[];
519
+ courseTopics: {
520
+ id: number;
521
+ name: string;
522
+ }[];
523
+ }>;
524
+ }
525
+ //# sourceMappingURL=training-admin.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"training-admin.controller.d.ts","sourceRoot":"","sources":["../../../src/enterprise/training/training-admin.controller.ts"],"names":[],"mappings":"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"}