@hed-hog/lms 0.0.269 → 0.0.270

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 (40) hide show
  1. package/hedhog/query/triggers.sql +0 -0
  2. package/hedhog/table/certificate.yaml +89 -0
  3. package/hedhog/table/certificate_template.yaml +24 -0
  4. package/hedhog/table/course.yaml +67 -1
  5. package/hedhog/table/course_category.yaml +22 -0
  6. package/hedhog/table/course_class_attendance.yaml +34 -0
  7. package/hedhog/table/course_class_group.yaml +58 -0
  8. package/hedhog/table/course_class_session.yaml +38 -0
  9. package/hedhog/table/course_class_session_instructor.yaml +27 -0
  10. package/hedhog/table/course_enrollment.yaml +45 -0
  11. package/hedhog/table/course_image.yaml +33 -0
  12. package/hedhog/table/course_lesson.yaml +35 -0
  13. package/hedhog/table/course_lesson_file.yaml +23 -0
  14. package/hedhog/table/course_lesson_instructor.yaml +27 -0
  15. package/hedhog/table/course_lesson_progress.yaml +40 -0
  16. package/hedhog/table/course_lesson_question.yaml +24 -0
  17. package/hedhog/table/course_module.yaml +25 -0
  18. package/hedhog/table/course_prerequisite.yaml +48 -0
  19. package/hedhog/table/evaluation_rating.yaml +30 -0
  20. package/hedhog/table/evaluation_topic.yaml +68 -0
  21. package/hedhog/table/exam.yaml +91 -0
  22. package/hedhog/table/exam_answer.yaml +40 -0
  23. package/hedhog/table/exam_attempt.yaml +51 -0
  24. package/hedhog/table/exam_image.yaml +33 -0
  25. package/hedhog/table/exam_option.yaml +25 -0
  26. package/hedhog/table/exam_question.yaml +24 -0
  27. package/hedhog/table/image_type.yaml +28 -0
  28. package/hedhog/table/instructor.yaml +23 -0
  29. package/hedhog/table/learning_path.yaml +49 -0
  30. package/hedhog/table/learning_path_enrollment.yaml +33 -0
  31. package/hedhog/table/learning_path_image.yaml +33 -0
  32. package/hedhog/table/learning_path_step.yaml +43 -0
  33. package/hedhog/table/question.yaml +15 -0
  34. package/package.json +10 -7
  35. package/src/index.ts +1 -1
  36. package/src/lms.module.ts +15 -15
  37. package/hedhog/table/classes.yaml +0 -3
  38. package/hedhog/table/exams.yaml +0 -3
  39. package/hedhog/table/reports.yaml +0 -3
  40. package/hedhog/table/training.yaml +0 -3
File without changes
@@ -0,0 +1,89 @@
1
+ columns:
2
+ - type: pk
3
+ - name: verification_code
4
+ type: varchar
5
+ length: 50
6
+ - name: student_id
7
+ type: fk
8
+ references:
9
+ table: person
10
+ column: id
11
+ onDelete: CASCADE
12
+ - name: course_enrollment_id
13
+ type: fk
14
+ isNullable: true
15
+ references:
16
+ table: course_enrollment
17
+ column: id
18
+ onDelete: SET NULL
19
+ - name: course_id
20
+ type: fk
21
+ isNullable: true
22
+ references:
23
+ table: course
24
+ column: id
25
+ onDelete: SET NULL
26
+ - name: exam_id
27
+ type: fk
28
+ isNullable: true
29
+ references:
30
+ table: exam
31
+ column: id
32
+ onDelete: SET NULL
33
+ - name: course_class_group_id
34
+ type: fk
35
+ isNullable: true
36
+ references:
37
+ table: course_class_group
38
+ column: id
39
+ onDelete: SET NULL
40
+ - name: learning_path_id
41
+ type: fk
42
+ isNullable: true
43
+ references:
44
+ table: learning_path
45
+ column: id
46
+ onDelete: SET NULL
47
+ - name: certificate_template_id
48
+ type: fk
49
+ references:
50
+ table: certificate_template
51
+ column: id
52
+ - name: certificate_type
53
+ type: enum
54
+ values: [course, exam, course_class_group, learning_path]
55
+ - name: student_name
56
+ type: varchar
57
+ length: 255
58
+ - name: course_name
59
+ type: varchar
60
+ length: 255
61
+ - name: workload_hours
62
+ type: int
63
+ - name: issued_at
64
+ type: datetime
65
+ - name: completed_at
66
+ type: datetime
67
+ - name: final_score
68
+ type: int
69
+ isNullable: true
70
+ - name: verification_url
71
+ type: varchar
72
+ length: 500
73
+ isNullable: true
74
+ - name: pdf_url
75
+ type: varchar
76
+ length: 500
77
+ isNullable: true
78
+ - type: created_at
79
+ - type: updated_at
80
+
81
+ indices:
82
+ - columns: [verification_code]
83
+ isUnique: true
84
+ - columns: [student_id]
85
+ - columns: [course_id]
86
+ - columns: [exam_id]
87
+ - columns: [course_class_group_id]
88
+ - columns: [learning_path_id]
89
+ - columns: [certificate_template_id]
@@ -0,0 +1,24 @@
1
+ columns:
2
+ - type: pk
3
+ - name: name
4
+ type: varchar
5
+ length: 255
6
+ - name: slug
7
+ type: varchar
8
+ length: 255
9
+ - name: description
10
+ type: text
11
+ isNullable: true
12
+ - name: template_content
13
+ type: text
14
+ - name: status
15
+ type: enum
16
+ values: [draft, active, inactive]
17
+ default: draft
18
+ - type: created_at
19
+ - type: updated_at
20
+
21
+ indices:
22
+ - columns: [slug]
23
+ isUnique: true
24
+ - columns: [status]
@@ -1,3 +1,69 @@
1
1
  columns:
2
2
  - type: pk
3
- - name: name
3
+ - name: title
4
+ type: varchar
5
+ length: 255
6
+ - name: slug
7
+ type: varchar
8
+ length: 255
9
+ - name: description
10
+ type: text
11
+ isNullable: true
12
+ - name: short_description
13
+ type: varchar
14
+ length: 500
15
+ isNullable: true
16
+ - name: level
17
+ type: enum
18
+ values: [beginner, intermediate, advanced]
19
+ default: beginner
20
+ - name: duration_hours
21
+ type: int
22
+ default: 0
23
+ - name: status
24
+ type: enum
25
+ values: [draft, published, archived]
26
+ default: draft
27
+ - name: primary_color
28
+ type: varchar
29
+ length: 9
30
+ isNullable: true
31
+ - name: primary_contrast_color
32
+ type: varchar
33
+ length: 9
34
+ isNullable: true
35
+ - name: secondary_color
36
+ type: varchar
37
+ length: 9
38
+ isNullable: true
39
+ - name: secondary_contrast_color
40
+ type: varchar
41
+ length: 9
42
+ isNullable: true
43
+ - name: certificate_workload
44
+ type: int
45
+ isNullable: true
46
+ - name: certificate_template_id
47
+ type: fk
48
+ isNullable: true
49
+ references:
50
+ table: certificate_template
51
+ column: id
52
+ onDelete: SET NULL
53
+ - name: requirements
54
+ type: text
55
+ isNullable: true
56
+ - name: objectives
57
+ type: text
58
+ isNullable: true
59
+ - name: target_audience
60
+ type: text
61
+ isNullable: true
62
+ - type: created_at
63
+ - type: updated_at
64
+
65
+ indices:
66
+ - columns: [slug]
67
+ isUnique: true
68
+ - columns: [certificate_template_id]
69
+ - columns: [status]
@@ -0,0 +1,22 @@
1
+ columns:
2
+ - type: pk
3
+ - name: course_id
4
+ type: fk
5
+ references:
6
+ table: course
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: category_id
10
+ type: fk
11
+ references:
12
+ table: category
13
+ column: id
14
+ onDelete: CASCADE
15
+ - type: created_at
16
+ - type: updated_at
17
+
18
+ indices:
19
+ - columns: [course_id, category_id]
20
+ isUnique: true
21
+ - columns: [course_id]
22
+ - columns: [category_id]
@@ -0,0 +1,34 @@
1
+ columns:
2
+ - type: pk
3
+ - name: course_class_session_id
4
+ type: fk
5
+ references:
6
+ table: course_class_session
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: student_id
10
+ type: fk
11
+ references:
12
+ table: person
13
+ column: id
14
+ onDelete: CASCADE
15
+ - name: present
16
+ type: boolean
17
+ default: false
18
+ - name: justification
19
+ type: text
20
+ isNullable: true
21
+ - name: recorded_by_id
22
+ type: fk
23
+ isNullable: true
24
+ references:
25
+ table: person
26
+ column: id
27
+ onDelete: SET NULL
28
+ - type: created_at
29
+ - type: updated_at
30
+
31
+ indices:
32
+ - columns: [course_class_session_id, student_id]
33
+ isUnique: true
34
+ - columns: [course_class_session_id]
@@ -0,0 +1,58 @@
1
+ columns:
2
+ - type: pk
3
+ - name: course_id
4
+ type: fk
5
+ references:
6
+ table: course
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: title
10
+ type: varchar
11
+ length: 255
12
+ - name: code
13
+ type: varchar
14
+ length: 50
15
+ - name: description
16
+ type: text
17
+ isNullable: true
18
+ - name: delivery_mode
19
+ type: enum
20
+ values: [presential, online, hybrid]
21
+ - name: status
22
+ type: enum
23
+ values: [open, ongoing, completed, cancelled]
24
+ default: open
25
+ - name: start_date
26
+ type: datetime
27
+ - name: end_date
28
+ type: datetime
29
+ isNullable: true
30
+ - name: start_time
31
+ type: varchar
32
+ length: 5
33
+ isNullable: true
34
+ - name: end_time
35
+ type: varchar
36
+ length: 5
37
+ isNullable: true
38
+ - name: week_days
39
+ type: text
40
+ isNullable: true
41
+ - name: capacity
42
+ type: int
43
+ default: 30
44
+ - name: location
45
+ type: text
46
+ isNullable: true
47
+ - name: virtual_room_url
48
+ type: varchar
49
+ length: 500
50
+ isNullable: true
51
+ - type: created_at
52
+ - type: updated_at
53
+
54
+ indices:
55
+ - columns: [code]
56
+ isUnique: true
57
+ - columns: [course_id]
58
+ - columns: [status]
@@ -0,0 +1,38 @@
1
+ columns:
2
+ - type: pk
3
+ - name: course_class_group_id
4
+ type: fk
5
+ references:
6
+ table: course_class_group
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: title
10
+ type: varchar
11
+ length: 255
12
+ - name: description
13
+ type: text
14
+ isNullable: true
15
+ - name: session_date
16
+ type: datetime
17
+ - name: start_time
18
+ type: varchar
19
+ length: 5
20
+ - name: end_time
21
+ type: varchar
22
+ length: 5
23
+ - name: location
24
+ type: text
25
+ isNullable: true
26
+ - name: meeting_url
27
+ type: varchar
28
+ length: 500
29
+ isNullable: true
30
+ - name: status
31
+ type: enum
32
+ values: [scheduled, completed, cancelled]
33
+ default: scheduled
34
+ - type: created_at
35
+ - type: updated_at
36
+
37
+ indices:
38
+ - columns: [course_class_group_id, session_date]
@@ -0,0 +1,27 @@
1
+ columns:
2
+ - type: pk
3
+ - name: course_class_session_id
4
+ type: fk
5
+ references:
6
+ table: course_class_session
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: instructor_id
10
+ type: fk
11
+ references:
12
+ table: instructor
13
+ column: id
14
+ onDelete: CASCADE
15
+ - name: role
16
+ type: enum
17
+ values: [lead, assistant]
18
+ default: assistant
19
+ - type: created_at
20
+ - type: updated_at
21
+
22
+ indices:
23
+ - columns: [course_class_session_id, instructor_id]
24
+ isUnique: true
25
+ - columns: [course_class_session_id]
26
+ - columns: [instructor_id]
27
+ - columns: [role]
@@ -0,0 +1,45 @@
1
+ columns:
2
+ - type: pk
3
+ - name: person_id
4
+ type: fk
5
+ references:
6
+ table: person
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: course_class_group_id
10
+ type: fk
11
+ isNullable: true
12
+ references:
13
+ table: course_class_group
14
+ column: id
15
+ onDelete: SET NULL
16
+ - name: course_id
17
+ type: fk
18
+ references:
19
+ table: course
20
+ column: id
21
+ onDelete: CASCADE
22
+ - name: status
23
+ type: enum
24
+ values: [pending, active, completed, cancelled, paused]
25
+ default: active
26
+ - name: enrolled_at
27
+ type: datetime
28
+ - name: completed_at
29
+ type: datetime
30
+ isNullable: true
31
+ - name: progress_percent
32
+ type: int
33
+ default: 0
34
+ - name: final_score
35
+ type: int
36
+ isNullable: true
37
+ - type: created_at
38
+ - type: updated_at
39
+
40
+ indices:
41
+ - columns: [person_id, course_class_group_id]
42
+ isUnique: true
43
+ - columns: [person_id, course_id]
44
+ - columns: [course_class_group_id]
45
+ - columns: [status]
@@ -0,0 +1,33 @@
1
+ columns:
2
+ - type: pk
3
+ - name: course_id
4
+ type: fk
5
+ references:
6
+ table: course
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: file_id
10
+ type: fk
11
+ references:
12
+ table: file
13
+ column: id
14
+ onDelete: CASCADE
15
+ - name: image_type_id
16
+ type: fk
17
+ references:
18
+ table: image_type
19
+ column: id
20
+ onDelete: CASCADE
21
+ - type: order
22
+ - name: is_primary
23
+ type: boolean
24
+ default: false
25
+ - type: created_at
26
+ - type: updated_at
27
+
28
+ indices:
29
+ - columns: [course_id]
30
+ - columns: [file_id]
31
+ - columns: [image_type_id]
32
+ - columns: [course_id, image_type_id, order]
33
+ isUnique: true
@@ -0,0 +1,35 @@
1
+ columns:
2
+ - type: pk
3
+ - name: course_module_id
4
+ type: fk
5
+ references:
6
+ table: course_module
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: title
10
+ type: varchar
11
+ length: 255
12
+ - name: description
13
+ type: text
14
+ isNullable: true
15
+ - name: type
16
+ type: enum
17
+ values: [video, text, quiz]
18
+ default: video
19
+ - name: content
20
+ type: text
21
+ isNullable: true
22
+ - name: duration_seconds
23
+ type: int
24
+ default: 0
25
+ - type: order
26
+ - name: is_released
27
+ type: boolean
28
+ default: true
29
+ - type: created_at
30
+ - type: updated_at
31
+
32
+ indices:
33
+ - columns: [course_module_id]
34
+ - columns: [course_module_id, order]
35
+ isUnique: true
@@ -0,0 +1,23 @@
1
+ columns:
2
+ - type: pk
3
+ - name: course_lesson_id
4
+ type: fk
5
+ references:
6
+ table: course_lesson
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: file_id
10
+ type: fk
11
+ isNullable: true
12
+ references:
13
+ table: file
14
+ column: id
15
+ onDelete: SET NULL
16
+ - name: title
17
+ type: varchar
18
+ length: 255
19
+ - type: created_at
20
+ - type: updated_at
21
+
22
+ indices:
23
+ - columns: [course_lesson_id]
@@ -0,0 +1,27 @@
1
+ columns:
2
+ - type: pk
3
+ - name: course_lesson_id
4
+ type: fk
5
+ references:
6
+ table: course_lesson
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: instructor_id
10
+ type: fk
11
+ references:
12
+ table: instructor
13
+ column: id
14
+ onDelete: CASCADE
15
+ - name: role
16
+ type: enum
17
+ values: [lead, assistant]
18
+ default: assistant
19
+ - type: created_at
20
+ - type: updated_at
21
+
22
+ indices:
23
+ - columns: [course_lesson_id, instructor_id]
24
+ isUnique: true
25
+ - columns: [course_lesson_id]
26
+ - columns: [instructor_id]
27
+ - columns: [role]
@@ -0,0 +1,40 @@
1
+ columns:
2
+ - type: pk
3
+ - name: course_enrollment_id
4
+ type: fk
5
+ references:
6
+ table: course_enrollment
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: course_lesson_id
10
+ type: fk
11
+ references:
12
+ table: course_lesson
13
+ column: id
14
+ onDelete: CASCADE
15
+ - name: status
16
+ type: enum
17
+ values: [not_started, in_progress, completed]
18
+ default: not_started
19
+ - name: progress_percent
20
+ type: int
21
+ default: 0
22
+ - name: video_progress_seconds
23
+ type: int
24
+ default: 0
25
+ - name: started_at
26
+ type: datetime
27
+ isNullable: true
28
+ - name: completed_at
29
+ type: datetime
30
+ isNullable: true
31
+ - name: time_spent_seconds
32
+ type: int
33
+ default: 0
34
+ - type: created_at
35
+ - type: updated_at
36
+
37
+ indices:
38
+ - columns: [course_enrollment_id, course_lesson_id]
39
+ isUnique: true
40
+ - columns: [course_lesson_id]
@@ -0,0 +1,24 @@
1
+ columns:
2
+ - type: pk
3
+ - name: course_lesson_id
4
+ type: fk
5
+ references:
6
+ table: course_lesson
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: question_id
10
+ type: fk
11
+ references:
12
+ table: question
13
+ column: id
14
+ onDelete: CASCADE
15
+ - type: order
16
+ - type: created_at
17
+ - type: updated_at
18
+
19
+ indices:
20
+ - columns: [course_lesson_id, question_id]
21
+ isUnique: true
22
+ - columns: [course_lesson_id, order]
23
+ isUnique: true
24
+ - columns: [question_id]
@@ -0,0 +1,25 @@
1
+ columns:
2
+ - type: pk
3
+ - name: course_id
4
+ type: fk
5
+ references:
6
+ table: course
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: title
10
+ type: varchar
11
+ length: 255
12
+ - name: description
13
+ type: text
14
+ isNullable: true
15
+ - type: order
16
+ - name: duration_minutes
17
+ type: int
18
+ default: 0
19
+ - type: created_at
20
+ - type: updated_at
21
+
22
+ indices:
23
+ - columns: [course_id]
24
+ - columns: [course_id, order]
25
+ isUnique: true
@@ -0,0 +1,48 @@
1
+ columns:
2
+ - type: pk
3
+ - name: course_id
4
+ type: fk
5
+ references:
6
+ table: course
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: prerequisite_type
10
+ type: enum
11
+ values: [course, learning_path, exam]
12
+ default: course
13
+ - name: prerequisite_course_id
14
+ type: fk
15
+ isNullable: true
16
+ references:
17
+ table: course
18
+ column: id
19
+ onDelete: CASCADE
20
+ - name: prerequisite_learning_path_id
21
+ type: fk
22
+ isNullable: true
23
+ references:
24
+ table: learning_path
25
+ column: id
26
+ onDelete: CASCADE
27
+ - name: prerequisite_exam_id
28
+ type: fk
29
+ isNullable: true
30
+ references:
31
+ table: exam
32
+ column: id
33
+ onDelete: CASCADE
34
+ - type: created_at
35
+ - type: updated_at
36
+
37
+ indices:
38
+ - columns: [course_id, prerequisite_course_id]
39
+ isUnique: true
40
+ - columns: [course_id, prerequisite_learning_path_id]
41
+ isUnique: true
42
+ - columns: [course_id, prerequisite_exam_id]
43
+ isUnique: true
44
+ - columns: [course_id]
45
+ - columns: [prerequisite_type]
46
+ - columns: [prerequisite_course_id]
47
+ - columns: [prerequisite_learning_path_id]
48
+ - columns: [prerequisite_exam_id]
@@ -0,0 +1,30 @@
1
+ columns:
2
+ - type: pk
3
+ - name: evaluation_topic_id
4
+ type: fk
5
+ references:
6
+ table: evaluation_topic
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: evaluator_id
10
+ type: fk
11
+ isNullable: true
12
+ references:
13
+ table: person
14
+ column: id
15
+ onDelete: SET NULL
16
+ - name: score
17
+ type: decimal
18
+ precision: 2
19
+ scale: 1
20
+ - name: comment
21
+ type: text
22
+ isNullable: true
23
+ - type: created_at
24
+ - type: updated_at
25
+
26
+ indices:
27
+ - columns: [evaluation_topic_id]
28
+ - columns: [evaluator_id]
29
+ - columns: [evaluation_topic_id, evaluator_id]
30
+ isUnique: true