@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
@@ -0,0 +1,68 @@
1
+ columns:
2
+ - type: pk
3
+ - name: name
4
+ type: varchar
5
+ length: 255
6
+ - name: description
7
+ type: text
8
+ isNullable: true
9
+ - name: target_type
10
+ type: enum
11
+ values: [course, course_lesson, course_class_session, question, exam]
12
+ - name: course_id
13
+ type: fk
14
+ isNullable: true
15
+ references:
16
+ table: course
17
+ column: id
18
+ onDelete: SET NULL
19
+ - name: course_lesson_id
20
+ type: fk
21
+ isNullable: true
22
+ references:
23
+ table: course_lesson
24
+ column: id
25
+ onDelete: SET NULL
26
+ - name: course_class_session_id
27
+ type: fk
28
+ isNullable: true
29
+ references:
30
+ table: course_class_session
31
+ column: id
32
+ onDelete: SET NULL
33
+ - name: question_id
34
+ type: fk
35
+ isNullable: true
36
+ references:
37
+ table: question
38
+ column: id
39
+ onDelete: SET NULL
40
+ - name: exam_id
41
+ type: fk
42
+ isNullable: true
43
+ references:
44
+ table: exam
45
+ column: id
46
+ onDelete: SET NULL
47
+ - type: order
48
+ - name: is_active
49
+ type: boolean
50
+ default: true
51
+ - type: created_at
52
+ - type: updated_at
53
+
54
+ indices:
55
+ - columns: [target_type]
56
+ - columns: [course_id]
57
+ - columns: [course_lesson_id]
58
+ - columns: [course_class_session_id]
59
+ - columns: [question_id]
60
+ - columns: [exam_id]
61
+ - columns: [course_lesson_id, order]
62
+ isUnique: true
63
+ - columns: [course_class_session_id, order]
64
+ isUnique: true
65
+ - columns: [question_id, order]
66
+ isUnique: true
67
+ - columns: [exam_id, order]
68
+ isUnique: true
@@ -0,0 +1,91 @@
1
+ columns:
2
+ - type: pk
3
+ - name: course_id
4
+ type: fk
5
+ isNullable: true
6
+ references:
7
+ table: course
8
+ column: id
9
+ onDelete: SET NULL
10
+ - name: course_class_group_id
11
+ type: fk
12
+ isNullable: true
13
+ references:
14
+ table: course_class_group
15
+ column: id
16
+ onDelete: SET NULL
17
+ - name: title
18
+ type: varchar
19
+ length: 255
20
+ - name: description
21
+ type: text
22
+ isNullable: true
23
+ - name: instructions
24
+ type: text
25
+ isNullable: true
26
+ - name: exam_type
27
+ type: enum
28
+ values: [quiz, test, assignment, project]
29
+ - name: status
30
+ type: enum
31
+ values: [draft, published, closed, archived]
32
+ default: draft
33
+ - name: primary_color
34
+ type: varchar
35
+ length: 9
36
+ isNullable: true
37
+ - name: primary_contrast_color
38
+ type: varchar
39
+ length: 9
40
+ isNullable: true
41
+ - name: secondary_color
42
+ type: varchar
43
+ length: 9
44
+ isNullable: true
45
+ - name: secondary_contrast_color
46
+ type: varchar
47
+ length: 9
48
+ isNullable: true
49
+ - name: starts_at
50
+ type: datetime
51
+ isNullable: true
52
+ - name: ends_at
53
+ type: datetime
54
+ isNullable: true
55
+ - name: time_limit_minutes
56
+ type: int
57
+ isNullable: true
58
+ - name: attempts_allowed
59
+ type: int
60
+ default: 1
61
+ - name: min_score
62
+ type: int
63
+ default: 60
64
+ - name: max_score
65
+ type: int
66
+ default: 100
67
+ - name: shuffle_questions
68
+ type: boolean
69
+ default: false
70
+ - name: shuffle_options
71
+ type: boolean
72
+ default: false
73
+ - name: show_result
74
+ type: boolean
75
+ default: true
76
+ - name: show_answer_key
77
+ type: boolean
78
+ default: false
79
+ - name: show_explanation_after_answer
80
+ type: boolean
81
+ default: false
82
+ - name: require_all_questions_answered_to_finish
83
+ type: boolean
84
+ default: false
85
+ - type: created_at
86
+ - type: updated_at
87
+
88
+ indices:
89
+ - columns: [course_id]
90
+ - columns: [course_class_group_id]
91
+ - columns: [status]
@@ -0,0 +1,40 @@
1
+ columns:
2
+ - type: pk
3
+ - name: exam_attempt_id
4
+ type: fk
5
+ references:
6
+ table: exam_attempt
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
+ - name: exam_option_id
16
+ type: fk
17
+ isNullable: true
18
+ references:
19
+ table: exam_option
20
+ column: id
21
+ onDelete: SET NULL
22
+ - name: answer_text
23
+ type: text
24
+ isNullable: true
25
+ - name: is_correct
26
+ type: boolean
27
+ isNullable: true
28
+ - name: points_awarded
29
+ type: int
30
+ default: 0
31
+ - name: teacher_feedback
32
+ type: text
33
+ isNullable: true
34
+ - type: created_at
35
+ - type: updated_at
36
+
37
+ indices:
38
+ - columns: [exam_attempt_id, question_id]
39
+ isUnique: true
40
+ - columns: [question_id]
@@ -0,0 +1,51 @@
1
+ columns:
2
+ - type: pk
3
+ - name: exam_id
4
+ type: fk
5
+ references:
6
+ table: exam
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: course_enrollment_id
16
+ type: fk
17
+ isNullable: true
18
+ references:
19
+ table: course_enrollment
20
+ column: id
21
+ onDelete: SET NULL
22
+ - name: attempt_number
23
+ type: int
24
+ default: 1
25
+ - name: started_at
26
+ type: datetime
27
+ - name: finished_at
28
+ type: datetime
29
+ isNullable: true
30
+ - name: duration_seconds
31
+ type: int
32
+ isNullable: true
33
+ - name: score
34
+ type: int
35
+ isNullable: true
36
+ - name: status
37
+ type: enum
38
+ values: [in_progress, completed, abandoned, voided]
39
+ default: in_progress
40
+ - name: ip_address
41
+ type: varchar
42
+ length: 45
43
+ isNullable: true
44
+ - type: created_at
45
+ - type: updated_at
46
+
47
+ indices:
48
+ - columns: [exam_id]
49
+ - columns: [student_id]
50
+ - columns: [exam_id, student_id, attempt_number]
51
+ isUnique: true
@@ -0,0 +1,33 @@
1
+ columns:
2
+ - type: pk
3
+ - name: exam_id
4
+ type: fk
5
+ references:
6
+ table: exam
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: [exam_id]
30
+ - columns: [file_id]
31
+ - columns: [image_type_id]
32
+ - columns: [exam_id, image_type_id, order]
33
+ isUnique: true
@@ -0,0 +1,25 @@
1
+ columns:
2
+ - type: pk
3
+ - name: question_id
4
+ type: fk
5
+ references:
6
+ table: question
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: option_text
10
+ type: text
11
+ - name: is_correct
12
+ type: boolean
13
+ default: false
14
+ - name: position
15
+ type: int
16
+ default: 0
17
+ - name: feedback
18
+ type: text
19
+ isNullable: true
20
+ - type: created_at
21
+ - type: updated_at
22
+
23
+ indices:
24
+ - columns: [question_id, position]
25
+ isUnique: true
@@ -0,0 +1,24 @@
1
+ columns:
2
+ - type: pk
3
+ - name: exam_id
4
+ type: fk
5
+ references:
6
+ table: exam
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: [exam_id, question_id]
21
+ isUnique: true
22
+ - columns: [exam_id, order]
23
+ isUnique: true
24
+ - columns: [question_id]
@@ -0,0 +1,28 @@
1
+ columns:
2
+ - type: pk
3
+ - name: name
4
+ type: varchar
5
+ length: 100
6
+ - name: slug
7
+ type: varchar
8
+ length: 100
9
+ - name: applies_to_course
10
+ type: boolean
11
+ default: false
12
+ - name: applies_to_exam
13
+ type: boolean
14
+ default: false
15
+ - name: applies_to_learning_path
16
+ type: boolean
17
+ default: false
18
+ - name: status
19
+ type: enum
20
+ values: [active, inactive]
21
+ default: active
22
+ - type: created_at
23
+ - type: updated_at
24
+
25
+ indices:
26
+ - columns: [slug]
27
+ isUnique: true
28
+ - columns: [status]
@@ -0,0 +1,23 @@
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: status
10
+ type: enum
11
+ values: [active, inactive]
12
+ default: active
13
+ - name: can_teach_courses
14
+ type: boolean
15
+ default: true
16
+ - type: created_at
17
+ - type: updated_at
18
+
19
+ indices:
20
+ - columns: [person_id]
21
+ isUnique: true
22
+ - columns: [status]
23
+ - columns: [can_teach_courses]
@@ -0,0 +1,49 @@
1
+ columns:
2
+ - type: pk
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, active, 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
+ - type: created_at
44
+ - type: updated_at
45
+
46
+ indices:
47
+ - columns: [slug]
48
+ isUnique: true
49
+ - columns: [status]
@@ -0,0 +1,33 @@
1
+ columns:
2
+ - type: pk
3
+ - name: learning_path_id
4
+ type: fk
5
+ references:
6
+ table: learning_path
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: person_id
10
+ type: fk
11
+ references:
12
+ table: person
13
+ column: id
14
+ onDelete: CASCADE
15
+ - name: status
16
+ type: enum
17
+ values: [active, completed, cancelled]
18
+ default: active
19
+ - name: progress_percent
20
+ type: int
21
+ default: 0
22
+ - name: enrolled_at
23
+ type: datetime
24
+ - name: completed_at
25
+ type: datetime
26
+ isNullable: true
27
+ - type: created_at
28
+ - type: updated_at
29
+
30
+ indices:
31
+ - columns: [learning_path_id, person_id]
32
+ isUnique: true
33
+ - columns: [person_id, status]
@@ -0,0 +1,33 @@
1
+ columns:
2
+ - type: pk
3
+ - name: learning_path_id
4
+ type: fk
5
+ references:
6
+ table: learning_path
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: [learning_path_id]
30
+ - columns: [file_id]
31
+ - columns: [image_type_id]
32
+ - columns: [learning_path_id, image_type_id, order]
33
+ isUnique: true
@@ -0,0 +1,43 @@
1
+ columns:
2
+ - type: pk
3
+ - name: learning_path_id
4
+ type: fk
5
+ references:
6
+ table: learning_path
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: step_type
10
+ type: enum
11
+ values: [course, exam]
12
+ - name: course_id
13
+ type: fk
14
+ isNullable: true
15
+ references:
16
+ table: course
17
+ column: id
18
+ onDelete: CASCADE
19
+ - name: exam_id
20
+ type: fk
21
+ isNullable: true
22
+ references:
23
+ table: exam
24
+ column: id
25
+ onDelete: CASCADE
26
+ - type: order
27
+ - name: is_required
28
+ type: boolean
29
+ default: true
30
+ - type: created_at
31
+ - type: updated_at
32
+
33
+ indices:
34
+ - columns: [learning_path_id, order]
35
+ isUnique: true
36
+ - columns: [learning_path_id, course_id]
37
+ isUnique: true
38
+ - columns: [learning_path_id, exam_id]
39
+ isUnique: true
40
+ - columns: [learning_path_id]
41
+ - columns: [step_type]
42
+ - columns: [course_id]
43
+ - columns: [exam_id]
@@ -0,0 +1,15 @@
1
+ columns:
2
+ - type: pk
3
+ - name: question_type
4
+ type: enum
5
+ values: [multiple_choice, true_false, essay, fill_blank, matching]
6
+ - name: statement
7
+ type: text
8
+ - name: explanation
9
+ type: text
10
+ isNullable: true
11
+ - name: points
12
+ type: int
13
+ default: 1
14
+ - type: created_at
15
+ - type: updated_at
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hed-hog/lms",
3
- "version": "0.0.269",
3
+ "version": "0.0.270",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "dependencies": {
@@ -9,12 +9,15 @@
9
9
  "@nestjs/core": "^11",
10
10
  "@nestjs/jwt": "^11",
11
11
  "@nestjs/mapped-types": "*",
12
- "@hed-hog/api-pagination": "0.0.5",
13
- "@hed-hog/api": "0.0.3",
14
- "@hed-hog/api-locale": "0.0.11",
15
- "@hed-hog/api-prisma": "0.0.4",
16
- "@hed-hog/core": "0.0.262",
17
- "@hed-hog/api-types": "0.0.1"
12
+ "@hed-hog/api-pagination": "0.0.6",
13
+ "@hed-hog/core": "0.0.270",
14
+ "@hed-hog/api": "0.0.4",
15
+ "@hed-hog/api-locale": "0.0.13",
16
+ "@hed-hog/api-types": "0.0.1",
17
+ "@hed-hog/finance": "0.0.270",
18
+ "@hed-hog/contact": "0.0.270",
19
+ "@hed-hog/category": "0.0.270",
20
+ "@hed-hog/api-prisma": "0.0.5"
18
21
  },
19
22
  "exports": {
20
23
  ".": {
package/src/index.ts CHANGED
@@ -1 +1 @@
1
- export * from './lms.module';
1
+ export * from './lms.module';
package/src/lms.module.ts CHANGED
@@ -1,15 +1,15 @@
1
- import { forwardRef, Module } from '@nestjs/common';
2
- import { ConfigModule } from '@nestjs/config';
3
- import { LocaleModule } from '@hed-hog/api-locale';
4
- import { PaginationModule } from '@hed-hog/api-pagination';
5
- import { PrismaModule } from '@hed-hog/api-prisma';
6
-
7
- @Module({
8
- imports: [
9
- ConfigModule.forRoot(),
10
- forwardRef(() => PaginationModule),
11
- forwardRef(() => PrismaModule),
12
- forwardRef(() => LocaleModule)
13
- ]
14
- })
15
- export class LmsModule {}
1
+ import { forwardRef, Module } from '@nestjs/common';
2
+ import { ConfigModule } from '@nestjs/config';
3
+ import { LocaleModule } from '@hed-hog/api-locale';
4
+ import { PaginationModule } from '@hed-hog/api-pagination';
5
+ import { PrismaModule } from '@hed-hog/api-prisma';
6
+
7
+ @Module({
8
+ imports: [
9
+ ConfigModule.forRoot(),
10
+ forwardRef(() => PaginationModule),
11
+ forwardRef(() => PrismaModule),
12
+ forwardRef(() => LocaleModule)
13
+ ]
14
+ })
15
+ export class LmsModule {}
@@ -1,3 +0,0 @@
1
- columns:
2
- - type: pk
3
- - name: name
@@ -1,3 +0,0 @@
1
- columns:
2
- - type: pk
3
- - name: name
@@ -1,3 +0,0 @@
1
- columns:
2
- - type: pk
3
- - name: name
@@ -1,3 +0,0 @@
1
- columns:
2
- - type: pk
3
- - name: name