@hed-hog/lms 0.0.347 → 0.0.350
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.
- package/dist/achievement/achievement.controller.d.ts +62 -0
- package/dist/achievement/achievement.controller.d.ts.map +1 -0
- package/dist/achievement/achievement.controller.js +90 -0
- package/dist/achievement/achievement.controller.js.map +1 -0
- package/dist/achievement/achievement.mcp-tools.d.ts +19 -0
- package/dist/achievement/achievement.mcp-tools.d.ts.map +1 -0
- package/dist/achievement/achievement.mcp-tools.js +157 -0
- package/dist/achievement/achievement.mcp-tools.js.map +1 -0
- package/dist/achievement/achievement.module.d.ts +3 -0
- package/dist/achievement/achievement.module.d.ts.map +1 -0
- package/dist/achievement/achievement.module.js +26 -0
- package/dist/achievement/achievement.module.js.map +1 -0
- package/dist/achievement/achievement.service.d.ts +72 -0
- package/dist/achievement/achievement.service.d.ts.map +1 -0
- package/dist/achievement/achievement.service.js +200 -0
- package/dist/achievement/achievement.service.js.map +1 -0
- package/dist/achievement/dto/create-achievement.dto.d.ts +12 -0
- package/dist/achievement/dto/create-achievement.dto.d.ts.map +1 -0
- package/dist/achievement/dto/create-achievement.dto.js +60 -0
- package/dist/achievement/dto/create-achievement.dto.js.map +1 -0
- package/dist/achievement/dto/update-achievement.dto.d.ts +11 -0
- package/dist/achievement/dto/update-achievement.dto.d.ts.map +1 -0
- package/dist/achievement/dto/update-achievement.dto.js +57 -0
- package/dist/achievement/dto/update-achievement.dto.js.map +1 -0
- package/dist/bitcode-wallet/bitcode-wallet.controller.d.ts +114 -0
- package/dist/bitcode-wallet/bitcode-wallet.controller.d.ts.map +1 -0
- package/dist/bitcode-wallet/bitcode-wallet.controller.js +102 -0
- package/dist/bitcode-wallet/bitcode-wallet.controller.js.map +1 -0
- package/dist/bitcode-wallet/bitcode-wallet.mcp-tools.d.ts +25 -0
- package/dist/bitcode-wallet/bitcode-wallet.mcp-tools.d.ts.map +1 -0
- package/dist/bitcode-wallet/bitcode-wallet.mcp-tools.js +160 -0
- package/dist/bitcode-wallet/bitcode-wallet.mcp-tools.js.map +1 -0
- package/dist/bitcode-wallet/bitcode-wallet.module.d.ts +3 -0
- package/dist/bitcode-wallet/bitcode-wallet.module.d.ts.map +1 -0
- package/dist/bitcode-wallet/bitcode-wallet.module.js +26 -0
- package/dist/bitcode-wallet/bitcode-wallet.module.js.map +1 -0
- package/dist/bitcode-wallet/bitcode-wallet.service.d.ts +127 -0
- package/dist/bitcode-wallet/bitcode-wallet.service.d.ts.map +1 -0
- package/dist/bitcode-wallet/bitcode-wallet.service.js +264 -0
- package/dist/bitcode-wallet/bitcode-wallet.service.js.map +1 -0
- package/dist/bitcode-wallet/dto/create-bitcode-wallet-transaction.dto.d.ts +8 -0
- package/dist/bitcode-wallet/dto/create-bitcode-wallet-transaction.dto.d.ts.map +1 -0
- package/dist/bitcode-wallet/dto/create-bitcode-wallet-transaction.dto.js +33 -0
- package/dist/bitcode-wallet/dto/create-bitcode-wallet-transaction.dto.js.map +1 -0
- package/dist/bitcode-wallet/dto/create-bitcode-wallet.dto.d.ts +4 -0
- package/dist/bitcode-wallet/dto/create-bitcode-wallet.dto.d.ts.map +1 -0
- package/dist/bitcode-wallet/dto/create-bitcode-wallet.dto.js +22 -0
- package/dist/bitcode-wallet/dto/create-bitcode-wallet.dto.js.map +1 -0
- package/dist/bitcode-wallet/dto/update-bitcode-wallet-transaction.dto.d.ts +7 -0
- package/dist/bitcode-wallet/dto/update-bitcode-wallet-transaction.dto.d.ts.map +1 -0
- package/dist/bitcode-wallet/dto/update-bitcode-wallet-transaction.dto.js +35 -0
- package/dist/bitcode-wallet/dto/update-bitcode-wallet-transaction.dto.js.map +1 -0
- package/dist/bitcode-wallet/dto/update-bitcode-wallet.dto.d.ts +4 -0
- package/dist/bitcode-wallet/dto/update-bitcode-wallet.dto.d.ts.map +1 -0
- package/dist/bitcode-wallet/dto/update-bitcode-wallet.dto.js +23 -0
- package/dist/bitcode-wallet/dto/update-bitcode-wallet.dto.js.map +1 -0
- package/dist/certificate/certificate.controller.d.ts +22 -0
- package/dist/certificate/certificate.controller.d.ts.map +1 -1
- package/dist/certificate/certificate.controller.js +12 -0
- package/dist/certificate/certificate.controller.js.map +1 -1
- package/dist/certificate/certificate.mcp-tools.d.ts +24 -0
- package/dist/certificate/certificate.mcp-tools.d.ts.map +1 -0
- package/dist/certificate/certificate.mcp-tools.js +188 -0
- package/dist/certificate/certificate.mcp-tools.js.map +1 -0
- package/dist/certificate/certificate.module.d.ts.map +1 -1
- package/dist/certificate/certificate.module.js +2 -1
- package/dist/certificate/certificate.module.js.map +1 -1
- package/dist/certificate/certificate.service.d.ts +25 -2
- package/dist/certificate/certificate.service.d.ts.map +1 -1
- package/dist/certificate/certificate.service.js +87 -2
- package/dist/certificate/certificate.service.js.map +1 -1
- package/dist/certificate/dto/update-certificate-public-access.dto.d.ts +4 -0
- package/dist/certificate/dto/update-certificate-public-access.dto.d.ts.map +1 -0
- package/dist/certificate/dto/update-certificate-public-access.dto.js +21 -0
- package/dist/certificate/dto/update-certificate-public-access.dto.js.map +1 -0
- package/dist/class-group/class-group.controller.d.ts +3 -3
- package/dist/class-group/class-group.mcp-tools.d.ts +87 -0
- package/dist/class-group/class-group.mcp-tools.d.ts.map +1 -0
- package/dist/class-group/class-group.mcp-tools.js +553 -0
- package/dist/class-group/class-group.mcp-tools.js.map +1 -0
- package/dist/class-group/class-group.module.d.ts.map +1 -1
- package/dist/class-group/class-group.module.js +2 -1
- package/dist/class-group/class-group.module.js.map +1 -1
- package/dist/class-group/class-group.service.d.ts +6 -4
- package/dist/class-group/class-group.service.d.ts.map +1 -1
- package/dist/class-group/class-group.service.js +45 -2
- package/dist/class-group/class-group.service.js.map +1 -1
- package/dist/course/course-operations-integration.service.d.ts +40 -0
- package/dist/course/course-operations-integration.service.d.ts.map +1 -0
- package/dist/course/course-operations-integration.service.js +372 -0
- package/dist/course/course-operations-integration.service.js.map +1 -0
- package/dist/course/course-structure.controller.d.ts +43 -4
- package/dist/course/course-structure.controller.d.ts.map +1 -1
- package/dist/course/course-structure.controller.js +22 -0
- package/dist/course/course-structure.controller.js.map +1 -1
- package/dist/course/course-structure.service.d.ts +42 -1
- package/dist/course/course-structure.service.d.ts.map +1 -1
- package/dist/course/course-structure.service.js +199 -32
- package/dist/course/course-structure.service.js.map +1 -1
- package/dist/course/course.controller.d.ts +12 -0
- package/dist/course/course.controller.d.ts.map +1 -1
- package/dist/course/course.mcp-tools.d.ts +90 -0
- package/dist/course/course.mcp-tools.d.ts.map +1 -0
- package/dist/course/course.mcp-tools.js +520 -0
- package/dist/course/course.mcp-tools.js.map +1 -0
- package/dist/course/course.module.d.ts.map +1 -1
- package/dist/course/course.module.js +8 -1
- package/dist/course/course.module.js.map +1 -1
- package/dist/course/course.service.d.ts +15 -1
- package/dist/course/course.service.d.ts.map +1 -1
- package/dist/course/course.service.js +70 -35
- package/dist/course/course.service.js.map +1 -1
- package/dist/course/dto/create-course.dto.d.ts +1 -0
- package/dist/course/dto/create-course.dto.d.ts.map +1 -1
- package/dist/course/dto/create-course.dto.js +7 -0
- package/dist/course/dto/create-course.dto.js.map +1 -1
- package/dist/course/dto/update-course-resources.dto.d.ts +11 -0
- package/dist/course/dto/update-course-resources.dto.d.ts.map +1 -0
- package/dist/course/dto/update-course-resources.dto.js +51 -0
- package/dist/course/dto/update-course-resources.dto.js.map +1 -0
- package/dist/course-lesson-discussion/course-lesson-discussion.controller.d.ts +23 -0
- package/dist/course-lesson-discussion/course-lesson-discussion.controller.d.ts.map +1 -0
- package/dist/course-lesson-discussion/course-lesson-discussion.controller.js +78 -0
- package/dist/course-lesson-discussion/course-lesson-discussion.controller.js.map +1 -0
- package/dist/course-lesson-discussion/course-lesson-discussion.mcp-tools.d.ts +22 -0
- package/dist/course-lesson-discussion/course-lesson-discussion.mcp-tools.d.ts.map +1 -0
- package/dist/course-lesson-discussion/course-lesson-discussion.mcp-tools.js +120 -0
- package/dist/course-lesson-discussion/course-lesson-discussion.mcp-tools.js.map +1 -0
- package/dist/course-lesson-discussion/course-lesson-discussion.module.d.ts +3 -0
- package/dist/course-lesson-discussion/course-lesson-discussion.module.d.ts.map +1 -0
- package/dist/course-lesson-discussion/course-lesson-discussion.module.js +26 -0
- package/dist/course-lesson-discussion/course-lesson-discussion.module.js.map +1 -0
- package/dist/course-lesson-discussion/course-lesson-discussion.service.d.ts +49 -0
- package/dist/course-lesson-discussion/course-lesson-discussion.service.d.ts.map +1 -0
- package/dist/course-lesson-discussion/course-lesson-discussion.service.js +272 -0
- package/dist/course-lesson-discussion/course-lesson-discussion.service.js.map +1 -0
- package/dist/course-lesson-discussion/dto/create-course-lesson-discussion-topic.dto.d.ts +6 -0
- package/dist/course-lesson-discussion/dto/create-course-lesson-discussion-topic.dto.d.ts.map +1 -0
- package/dist/course-lesson-discussion/dto/create-course-lesson-discussion-topic.dto.js +33 -0
- package/dist/course-lesson-discussion/dto/create-course-lesson-discussion-topic.dto.js.map +1 -0
- package/dist/course-lesson-note/course-lesson-note.controller.d.ts +53 -0
- package/dist/course-lesson-note/course-lesson-note.controller.d.ts.map +1 -0
- package/dist/course-lesson-note/course-lesson-note.controller.js +93 -0
- package/dist/course-lesson-note/course-lesson-note.controller.js.map +1 -0
- package/dist/course-lesson-note/course-lesson-note.mcp-tools.d.ts +27 -0
- package/dist/course-lesson-note/course-lesson-note.mcp-tools.d.ts.map +1 -0
- package/dist/course-lesson-note/course-lesson-note.mcp-tools.js +145 -0
- package/dist/course-lesson-note/course-lesson-note.mcp-tools.js.map +1 -0
- package/dist/course-lesson-note/course-lesson-note.module.d.ts +3 -0
- package/dist/course-lesson-note/course-lesson-note.module.d.ts.map +1 -0
- package/dist/course-lesson-note/course-lesson-note.module.js +26 -0
- package/dist/course-lesson-note/course-lesson-note.module.js.map +1 -0
- package/dist/course-lesson-note/course-lesson-note.service.d.ts +59 -0
- package/dist/course-lesson-note/course-lesson-note.service.d.ts.map +1 -0
- package/dist/course-lesson-note/course-lesson-note.service.js +195 -0
- package/dist/course-lesson-note/course-lesson-note.service.js.map +1 -0
- package/dist/course-lesson-note/dto/create-course-lesson-note.dto.d.ts +6 -0
- package/dist/course-lesson-note/dto/create-course-lesson-note.dto.d.ts.map +1 -0
- package/dist/course-lesson-note/dto/create-course-lesson-note.dto.js +33 -0
- package/dist/course-lesson-note/dto/create-course-lesson-note.dto.js.map +1 -0
- package/dist/course-lesson-note/dto/update-course-lesson-note.dto.d.ts +6 -0
- package/dist/course-lesson-note/dto/update-course-lesson-note.dto.d.ts.map +1 -0
- package/dist/course-lesson-note/dto/update-course-lesson-note.dto.js +35 -0
- package/dist/course-lesson-note/dto/update-course-lesson-note.dto.js.map +1 -0
- package/dist/dashboard/dashboard.mcp-tools.d.ts +10 -0
- package/dist/dashboard/dashboard.mcp-tools.d.ts.map +1 -0
- package/dist/dashboard/dashboard.mcp-tools.js +46 -0
- package/dist/dashboard/dashboard.mcp-tools.js.map +1 -0
- package/dist/dashboard/dashboard.module.d.ts.map +1 -1
- package/dist/dashboard/dashboard.module.js +2 -1
- package/dist/dashboard/dashboard.module.js.map +1 -1
- package/dist/enterprise/enterprise.mcp-tools.d.ts +82 -0
- package/dist/enterprise/enterprise.mcp-tools.d.ts.map +1 -0
- package/dist/enterprise/enterprise.mcp-tools.js +516 -0
- package/dist/enterprise/enterprise.mcp-tools.js.map +1 -0
- package/dist/enterprise/enterprise.module.d.ts.map +1 -1
- package/dist/enterprise/enterprise.module.js +2 -1
- package/dist/enterprise/enterprise.module.js.map +1 -1
- package/dist/enterprise/training/enterprise-training.module.d.ts.map +1 -1
- package/dist/enterprise/training/enterprise-training.module.js +11 -1
- package/dist/enterprise/training/enterprise-training.module.js.map +1 -1
- package/dist/enterprise/training/training-admin.controller.d.ts +2 -2
- package/dist/enterprise/training/training-admin.mcp-tools.d.ts +79 -0
- package/dist/enterprise/training/training-admin.mcp-tools.d.ts.map +1 -0
- package/dist/enterprise/training/training-admin.mcp-tools.js +620 -0
- package/dist/enterprise/training/training-admin.mcp-tools.js.map +1 -0
- package/dist/enterprise/training/training-admin.service.d.ts +2 -2
- package/dist/enterprise/training/training-instructor.mcp-tools.d.ts +47 -0
- package/dist/enterprise/training/training-instructor.mcp-tools.d.ts.map +1 -0
- package/dist/enterprise/training/training-instructor.mcp-tools.js +275 -0
- package/dist/enterprise/training/training-instructor.mcp-tools.js.map +1 -0
- package/dist/enterprise/training/training-student.controller.d.ts +24 -0
- package/dist/enterprise/training/training-student.controller.d.ts.map +1 -1
- package/dist/enterprise/training/training-student.controller.js +22 -0
- package/dist/enterprise/training/training-student.controller.js.map +1 -1
- package/dist/enterprise/training/training-student.mcp-tools.d.ts +27 -0
- package/dist/enterprise/training/training-student.mcp-tools.d.ts.map +1 -0
- package/dist/enterprise/training/training-student.mcp-tools.js +186 -0
- package/dist/enterprise/training/training-student.mcp-tools.js.map +1 -0
- package/dist/enterprise/training/training-student.service.d.ts +32 -0
- package/dist/enterprise/training/training-student.service.d.ts.map +1 -1
- package/dist/enterprise/training/training-student.service.js +138 -0
- package/dist/enterprise/training/training-student.service.js.map +1 -1
- package/dist/evaluation/evaluation.controller.d.ts +4 -4
- package/dist/evaluation/evaluation.mcp-tools.d.ts +25 -0
- package/dist/evaluation/evaluation.mcp-tools.d.ts.map +1 -0
- package/dist/evaluation/evaluation.mcp-tools.js +220 -0
- package/dist/evaluation/evaluation.mcp-tools.js.map +1 -0
- package/dist/evaluation/evaluation.module.d.ts.map +1 -1
- package/dist/evaluation/evaluation.module.js +2 -1
- package/dist/evaluation/evaluation.module.js.map +1 -1
- package/dist/evaluation/evaluation.service.d.ts +4 -4
- package/dist/exam/dto/create-exam-question.dto.d.ts +2 -0
- package/dist/exam/dto/create-exam-question.dto.d.ts.map +1 -1
- package/dist/exam/dto/create-exam-question.dto.js +10 -0
- package/dist/exam/dto/create-exam-question.dto.js.map +1 -1
- package/dist/exam/dto/create-exam.dto.d.ts +2 -0
- package/dist/exam/dto/create-exam.dto.d.ts.map +1 -1
- package/dist/exam/dto/create-exam.dto.js +10 -0
- package/dist/exam/dto/create-exam.dto.js.map +1 -1
- package/dist/exam/dto/create-question-subject.dto.d.ts +5 -0
- package/dist/exam/dto/create-question-subject.dto.d.ts.map +1 -0
- package/dist/exam/dto/create-question-subject.dto.js +28 -0
- package/dist/exam/dto/create-question-subject.dto.js.map +1 -0
- package/dist/exam/exam-attempt.controller.d.ts +4 -0
- package/dist/exam/exam-attempt.controller.d.ts.map +1 -1
- package/dist/exam/exam-attempt.service.d.ts +7 -1
- package/dist/exam/exam-attempt.service.d.ts.map +1 -1
- package/dist/exam/exam-attempt.service.js +47 -17
- package/dist/exam/exam-attempt.service.js.map +1 -1
- package/dist/exam/exam.controller.d.ts +34 -0
- package/dist/exam/exam.controller.d.ts.map +1 -1
- package/dist/exam/exam.controller.js +27 -0
- package/dist/exam/exam.controller.js.map +1 -1
- package/dist/exam/exam.mcp-tools.d.ts +62 -0
- package/dist/exam/exam.mcp-tools.d.ts.map +1 -0
- package/dist/exam/exam.mcp-tools.js +430 -0
- package/dist/exam/exam.mcp-tools.js.map +1 -0
- package/dist/exam/exam.module.d.ts.map +1 -1
- package/dist/exam/exam.module.js +2 -1
- package/dist/exam/exam.module.js.map +1 -1
- package/dist/exam/exam.service.d.ts +38 -0
- package/dist/exam/exam.service.d.ts.map +1 -1
- package/dist/exam/exam.service.js +114 -17
- package/dist/exam/exam.service.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/instructor/instructor.mcp-tools.d.ts +41 -0
- package/dist/instructor/instructor.mcp-tools.d.ts.map +1 -0
- package/dist/instructor/instructor.mcp-tools.js +326 -0
- package/dist/instructor/instructor.mcp-tools.js.map +1 -0
- package/dist/instructor/instructor.module.d.ts.map +1 -1
- package/dist/instructor/instructor.module.js +2 -1
- package/dist/instructor/instructor.module.js.map +1 -1
- package/dist/lms.module.d.ts.map +1 -1
- package/dist/lms.module.js +15 -0
- package/dist/lms.module.js.map +1 -1
- package/dist/realtime/lms-realtime.controller.d.ts +7 -0
- package/dist/realtime/lms-realtime.controller.d.ts.map +1 -0
- package/dist/realtime/lms-realtime.controller.js +34 -0
- package/dist/realtime/lms-realtime.controller.js.map +1 -0
- package/dist/realtime/lms-realtime.module.d.ts +3 -0
- package/dist/realtime/lms-realtime.module.d.ts.map +1 -0
- package/dist/realtime/lms-realtime.module.js +25 -0
- package/dist/realtime/lms-realtime.module.js.map +1 -0
- package/dist/realtime/lms-realtime.service.d.ts +36 -0
- package/dist/realtime/lms-realtime.service.d.ts.map +1 -0
- package/dist/realtime/lms-realtime.service.js +59 -0
- package/dist/realtime/lms-realtime.service.js.map +1 -0
- package/dist/realtime/lms-realtime.subscriber.d.ts +10 -0
- package/dist/realtime/lms-realtime.subscriber.d.ts.map +1 -0
- package/dist/realtime/lms-realtime.subscriber.js +70 -0
- package/dist/realtime/lms-realtime.subscriber.js.map +1 -0
- package/dist/reports/reports.mcp-tools.d.ts +10 -0
- package/dist/reports/reports.mcp-tools.d.ts.map +1 -0
- package/dist/reports/reports.mcp-tools.js +50 -0
- package/dist/reports/reports.mcp-tools.js.map +1 -0
- package/dist/reports/reports.module.d.ts.map +1 -1
- package/dist/reports/reports.module.js +2 -1
- package/dist/reports/reports.module.js.map +1 -1
- package/dist/training/training.mcp-tools.d.ts +20 -0
- package/dist/training/training.mcp-tools.d.ts.map +1 -0
- package/dist/training/training.mcp-tools.js +181 -0
- package/dist/training/training.mcp-tools.js.map +1 -0
- package/dist/training/training.module.d.ts.map +1 -1
- package/dist/training/training.module.js +2 -1
- package/dist/training/training.module.js.map +1 -1
- package/hedhog/data/integration_event_catalog.yaml +69 -0
- package/hedhog/data/menu.yaml +34 -0
- package/hedhog/data/route.yaml +2351 -0
- package/hedhog/frontend/app/_components/class-form-sheet.tsx.ejs +168 -103
- package/hedhog/frontend/app/_components/course-form-sheet.tsx.ejs +80 -1
- package/hedhog/frontend/app/_components/course-picker.tsx.ejs +228 -0
- package/hedhog/frontend/app/_lib/hooks/use-lms-realtime-refresh.ts.ejs +58 -0
- package/hedhog/frontend/app/achievements/page.tsx.ejs +844 -0
- package/hedhog/frontend/app/bitcodes/page.tsx.ejs +1010 -0
- package/hedhog/frontend/app/certificates/issued/page.tsx.ejs +61 -2
- package/hedhog/frontend/app/classes/[id]/page.tsx.ejs +7 -0
- package/hedhog/frontend/app/classes/page.tsx.ejs +55 -2060
- package/hedhog/frontend/app/courses/[id]/_components/CourseRelationsCard.tsx.ejs +28 -0
- package/hedhog/frontend/app/courses/[id]/_components/course-edit-types.ts.ejs +1 -0
- package/hedhog/frontend/app/courses/[id]/page.tsx.ejs +0 -9
- package/hedhog/frontend/app/courses/[id]/structure/_components/course-tree-dnd.tsx.ejs +80 -66
- package/hedhog/frontend/app/courses/[id]/structure/_components/editor-course.tsx.ejs +583 -8
- package/hedhog/frontend/app/courses/[id]/structure/_components/editor-lesson.tsx.ejs +527 -57
- package/hedhog/frontend/app/courses/[id]/structure/_components/mock-data.ts.ejs +1 -1
- package/hedhog/frontend/app/courses/[id]/structure/_components/tree-context-menu.tsx.ejs +106 -4
- package/hedhog/frontend/app/courses/[id]/structure/_components/types.ts.ejs +2 -1
- package/hedhog/frontend/app/courses/[id]/structure/_data/adapters/course-structure.adapter.ts.ejs +11 -1
- package/hedhog/frontend/app/courses/[id]/structure/_data/services/course-structure.service.ts.ejs +53 -6
- package/hedhog/frontend/app/courses/[id]/structure/_data/types/api-course.types.ts.ejs +13 -2
- package/hedhog/frontend/app/courses/page.tsx.ejs +175 -29
- package/hedhog/frontend/app/enterprise/_components/enterprise-course-create-sheet.tsx.ejs +3 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-course-edit-sheet.tsx.ejs +7 -0
- package/hedhog/frontend/app/exams/[id]/questions/page.tsx.ejs +169 -2
- package/hedhog/frontend/app/exams/page.tsx.ejs +77 -22
- package/hedhog/frontend/app/instructor-skills/page.tsx.ejs +1 -0
- package/hedhog/frontend/app/instructors/page.tsx.ejs +1 -0
- package/hedhog/frontend/app/paths/page.tsx.ejs +6 -24
- package/hedhog/frontend/app/training/page.tsx.ejs +6 -24
- package/hedhog/frontend/messages/en.json +314 -12
- package/hedhog/frontend/messages/pt.json +314 -12
- package/hedhog/query/triggers.sql +53 -0
- package/hedhog/table/achievement.yaml +46 -0
- package/hedhog/table/bitcode_wallet.yaml +18 -0
- package/hedhog/table/bitcode_wallet_transaction.yaml +22 -0
- package/hedhog/table/certificate.yaml +3 -0
- package/hedhog/table/course.yaml +4 -0
- package/hedhog/table/course_file.yaml +23 -0
- package/hedhog/table/course_lesson.yaml +5 -0
- package/hedhog/table/course_lesson_discussion_like.yaml +21 -0
- package/hedhog/table/course_lesson_discussion_topic.yaml +35 -0
- package/hedhog/table/course_lesson_note.yaml +34 -0
- package/hedhog/table/exam.yaml +5 -0
- package/hedhog/table/learning_path_enrollment.yaml +6 -0
- package/hedhog/table/question.yaml +10 -0
- package/hedhog/table/question_subject.yaml +17 -0
- package/hedhog/table/student_activity_streak.yaml +25 -0
- package/package.json +7 -7
- package/src/achievement/achievement.controller.ts +60 -0
- package/src/achievement/achievement.mcp-tools.ts +108 -0
- package/src/achievement/achievement.module.ts +13 -0
- package/src/achievement/achievement.service.ts +252 -0
- package/src/achievement/dto/create-achievement.dto.ts +50 -0
- package/src/achievement/dto/update-achievement.dto.ts +47 -0
- package/src/bitcode-wallet/bitcode-wallet.controller.ts +69 -0
- package/src/bitcode-wallet/bitcode-wallet.mcp-tools.ts +107 -0
- package/src/bitcode-wallet/bitcode-wallet.module.ts +13 -0
- package/src/bitcode-wallet/bitcode-wallet.service.ts +361 -0
- package/src/bitcode-wallet/dto/create-bitcode-wallet-transaction.dto.ts +27 -0
- package/src/bitcode-wallet/dto/create-bitcode-wallet.dto.ts +7 -0
- package/src/bitcode-wallet/dto/update-bitcode-wallet-transaction.dto.ts +28 -0
- package/src/bitcode-wallet/dto/update-bitcode-wallet.dto.ts +8 -0
- package/src/certificate/certificate.controller.ts +20 -11
- package/src/certificate/certificate.mcp-tools.ts +131 -0
- package/src/certificate/certificate.module.ts +2 -1
- package/src/certificate/certificate.service.ts +95 -4
- package/src/certificate/dto/update-certificate-public-access.dto.ts +6 -0
- package/src/class-group/class-group.mcp-tools.ts +435 -0
- package/src/class-group/class-group.module.ts +2 -1
- package/src/class-group/class-group.service.ts +51 -1
- package/src/course/course-operations-integration.service.ts +520 -0
- package/src/course/course-structure.controller.ts +22 -8
- package/src/course/course-structure.service.ts +215 -23
- package/src/course/course.mcp-tools.ts +409 -0
- package/src/course/course.module.ts +8 -1
- package/src/course/course.service.ts +106 -27
- package/src/course/dto/create-course.dto.ts +8 -0
- package/src/course/dto/update-course-resources.dto.ts +39 -0
- package/src/course-lesson-discussion/course-lesson-discussion.controller.ts +55 -0
- package/src/course-lesson-discussion/course-lesson-discussion.mcp-tools.ts +75 -0
- package/src/course-lesson-discussion/course-lesson-discussion.module.ts +13 -0
- package/src/course-lesson-discussion/course-lesson-discussion.service.ts +354 -0
- package/src/course-lesson-discussion/dto/create-course-lesson-discussion-topic.dto.ts +16 -0
- package/src/course-lesson-note/course-lesson-note.controller.ts +68 -0
- package/src/course-lesson-note/course-lesson-note.mcp-tools.ts +96 -0
- package/src/course-lesson-note/course-lesson-note.module.ts +13 -0
- package/src/course-lesson-note/course-lesson-note.service.ts +248 -0
- package/src/course-lesson-note/dto/create-course-lesson-note.dto.ts +16 -0
- package/src/course-lesson-note/dto/update-course-lesson-note.dto.ts +18 -0
- package/src/dashboard/dashboard.mcp-tools.ts +23 -0
- package/src/dashboard/dashboard.module.ts +2 -1
- package/src/enterprise/enterprise.mcp-tools.ts +403 -0
- package/src/enterprise/enterprise.module.ts +2 -1
- package/src/enterprise/training/enterprise-training.module.ts +11 -1
- package/src/enterprise/training/training-admin.mcp-tools.ts +479 -0
- package/src/enterprise/training/training-instructor.mcp-tools.ts +210 -0
- package/src/enterprise/training/training-student.controller.ts +17 -1
- package/src/enterprise/training/training-student.mcp-tools.ts +136 -0
- package/src/enterprise/training/training-student.service.ts +167 -1
- package/src/evaluation/evaluation.mcp-tools.ts +155 -0
- package/src/evaluation/evaluation.module.ts +2 -1
- package/src/exam/dto/create-exam-question.dto.ts +8 -0
- package/src/exam/dto/create-exam.dto.ts +8 -0
- package/src/exam/dto/create-question-subject.dto.ts +12 -0
- package/src/exam/exam-attempt.service.ts +46 -14
- package/src/exam/exam.controller.ts +19 -0
- package/src/exam/exam.mcp-tools.ts +337 -0
- package/src/exam/exam.module.ts +2 -1
- package/src/exam/exam.service.ts +121 -0
- package/src/index.ts +9 -0
- package/src/instructor/instructor.mcp-tools.ts +243 -0
- package/src/instructor/instructor.module.ts +2 -1
- package/src/lms.module.ts +15 -1
- package/src/realtime/lms-realtime.controller.ts +12 -0
- package/src/realtime/lms-realtime.module.ts +12 -0
- package/src/realtime/lms-realtime.service.ts +98 -0
- package/src/realtime/lms-realtime.subscriber.ts +61 -0
- package/src/reports/reports.mcp-tools.ts +27 -0
- package/src/reports/reports.module.ts +2 -1
- package/src/training/training.mcp-tools.ts +128 -0
- package/src/training/training.module.ts +2 -1
|
@@ -382,6 +382,36 @@
|
|
|
382
382
|
"technology": "Tecnologia - Tema Escuro",
|
|
383
383
|
"corporate": "Corporativo - Formal"
|
|
384
384
|
},
|
|
385
|
+
"structureEditor": {
|
|
386
|
+
"tabs": {
|
|
387
|
+
"structure": "Estrutura",
|
|
388
|
+
"about": "Sobre",
|
|
389
|
+
"media": "Mídia",
|
|
390
|
+
"resources": "Recursos",
|
|
391
|
+
"extra": "Extra",
|
|
392
|
+
"publish": "Publicação"
|
|
393
|
+
},
|
|
394
|
+
"publishChecklist": {
|
|
395
|
+
"title": "Checklist de publicação",
|
|
396
|
+
"required": "Obrigatório para publicação",
|
|
397
|
+
"recommended": "Recomendado",
|
|
398
|
+
"done": "Feito",
|
|
399
|
+
"missing": "Falta",
|
|
400
|
+
"statusTitle": "Status da publicação",
|
|
401
|
+
"statusProgress": "{completed}/{total} itens obrigatórios concluídos",
|
|
402
|
+
"ready": "Pronto para publicar",
|
|
403
|
+
"notReady": "Ainda não pronto",
|
|
404
|
+
"items": {
|
|
405
|
+
"title": "Título comercial preenchido",
|
|
406
|
+
"description": "Descrição pública preenchida",
|
|
407
|
+
"media": "Logo ou banner definido",
|
|
408
|
+
"session": "Pelo menos uma sessão criada",
|
|
409
|
+
"lesson": "Pelo menos uma aula criada",
|
|
410
|
+
"publishedLessons": "Pelo menos uma aula publicada",
|
|
411
|
+
"certificate": "Modelo de certificado definido (quando habilitado)"
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
},
|
|
385
415
|
"deleteDialog": {
|
|
386
416
|
"title": "Confirmar Exclusão",
|
|
387
417
|
"description": "Tem certeza que deseja excluir o curso",
|
|
@@ -917,9 +947,21 @@
|
|
|
917
947
|
"transcriptionHint": "Transcrição completa do vídeo.",
|
|
918
948
|
"transcriptionVideoOnly": "A transcrição está disponível somente para aulas do tipo vídeo.",
|
|
919
949
|
"transcriptionPlaceholder": "Escreva ou cole a transcrição aqui...",
|
|
950
|
+
"transcriptionSegments": "Segmentos da transcrição",
|
|
951
|
+
"newTranscriptionSegment": "Novo trecho",
|
|
952
|
+
"transcriptionSegmentPlaceholder": "Texto do trecho {count}",
|
|
953
|
+
"removeTranscriptionSegment": "Remover trecho {count}",
|
|
954
|
+
"transcriptionAcceptedFormats": "Formatos aceitos: mm:ss e hh:mm:ss.",
|
|
920
955
|
"resourcesCount": "{count} recurso(s)",
|
|
921
956
|
"addResource": "Adicionar recurso",
|
|
922
957
|
"noResources": "Nenhum recurso adicionado",
|
|
958
|
+
"fileStorageVideosByResolution": "Vídeos por resolução (File Storage)",
|
|
959
|
+
"videoResolutionPlaceholder": "Ex.: 1080p",
|
|
960
|
+
"uploadVideoForResolution": "Enviar vídeo para esta resolução",
|
|
961
|
+
"noResolutionVideosYet": "Nenhum vídeo por resolução enviado ainda.",
|
|
962
|
+
"openVideoAria": "Abrir vídeo {name}",
|
|
963
|
+
"downloadVideoAria": "Baixar vídeo {name}",
|
|
964
|
+
"removeVideoAria": "Remover vídeo {name}",
|
|
923
965
|
"public": "Público",
|
|
924
966
|
"private": "Privado"
|
|
925
967
|
},
|
|
@@ -969,8 +1011,16 @@
|
|
|
969
1011
|
"questao": "Questão",
|
|
970
1012
|
"exercicio": "Exercício"
|
|
971
1013
|
},
|
|
1014
|
+
"statuses": {
|
|
1015
|
+
"preparada": "Preparada",
|
|
1016
|
+
"gravada": "Gravada",
|
|
1017
|
+
"editada": "Editada",
|
|
1018
|
+
"finalizada": "Finalizada",
|
|
1019
|
+
"publicada": "Publicada"
|
|
1020
|
+
},
|
|
972
1021
|
"providers": {
|
|
973
|
-
"custom": "Personalizado"
|
|
1022
|
+
"custom": "Personalizado",
|
|
1023
|
+
"fileStorage": "File Storage (HedHog)"
|
|
974
1024
|
},
|
|
975
1025
|
"questionEditor": {
|
|
976
1026
|
"identification": "Identificação",
|
|
@@ -993,6 +1043,9 @@
|
|
|
993
1043
|
"resourceUploadFailed": "{count} arquivo(s) não puderam ser enviados",
|
|
994
1044
|
"resourceRemoveError": "Erro ao remover arquivo",
|
|
995
1045
|
"resourceDownloadSoon": "Download de {name} em breve",
|
|
1046
|
+
"resourceOpenError": "Não foi possível abrir o arquivo.",
|
|
1047
|
+
"videoResolutionRequired": "Informe a resolução antes de enviar o vídeo.",
|
|
1048
|
+
"videoUploadFailed": "Falha ao enviar {count} arquivo(s) de vídeo.",
|
|
996
1049
|
"newQuestion": "Nova questão",
|
|
997
1050
|
"editQuestion": "Editar questão",
|
|
998
1051
|
"selectQuestion": "Selecionar questão...",
|
|
@@ -1112,9 +1165,14 @@
|
|
|
1112
1165
|
"sheetTitle": "{title} — Estrutura"
|
|
1113
1166
|
},
|
|
1114
1167
|
"contextMenu": {
|
|
1168
|
+
"courseFallback": "Curso",
|
|
1115
1169
|
"edit": "Editar",
|
|
1116
1170
|
"addLesson": "Adicionar aula",
|
|
1117
1171
|
"addSession": "Nova sessão",
|
|
1172
|
+
"pasteSession": "Colar sessão",
|
|
1173
|
+
"pasteLesson": "Colar aula",
|
|
1174
|
+
"pasteLessons": "Colar aulas ({count})",
|
|
1175
|
+
"selectSessionToPasteLessons": "Selecione uma sessão para colar aulas.",
|
|
1118
1176
|
"duplicate": "Duplicar",
|
|
1119
1177
|
"mergeWith": "Mesclar com...",
|
|
1120
1178
|
"moveTo": "Mover para...",
|
|
@@ -1269,6 +1327,19 @@
|
|
|
1269
1327
|
"shuffle": {
|
|
1270
1328
|
"label": "Embaralhar questões",
|
|
1271
1329
|
"description": "Ordem aleatória para cada tentativa"
|
|
1330
|
+
},
|
|
1331
|
+
"level": {
|
|
1332
|
+
"label": "Nivel",
|
|
1333
|
+
"placeholder": "Selecione o nivel",
|
|
1334
|
+
"options": {
|
|
1335
|
+
"beginner": "Iniciante",
|
|
1336
|
+
"intermediate": "Intermediário",
|
|
1337
|
+
"advanced": "Avançado"
|
|
1338
|
+
}
|
|
1339
|
+
},
|
|
1340
|
+
"showAnswerKeyAfterFinish": {
|
|
1341
|
+
"label": "Mostrar respostas corretas após conclusão",
|
|
1342
|
+
"description": "Permite ao aluno ver as questões respondidas e o gabarito ao concluir"
|
|
1272
1343
|
}
|
|
1273
1344
|
},
|
|
1274
1345
|
"actions": {
|
|
@@ -1379,7 +1450,17 @@
|
|
|
1379
1450
|
"matchingDescription": "Defina os pares corretos entre coluna esquerda e direita.",
|
|
1380
1451
|
"matchingItem": "Par {number}",
|
|
1381
1452
|
"matchingLeftPlaceholder": "Texto da coluna esquerda",
|
|
1382
|
-
"matchingRightPlaceholder": "Texto da coluna direita"
|
|
1453
|
+
"matchingRightPlaceholder": "Texto da coluna direita",
|
|
1454
|
+
"subject": "Assunto",
|
|
1455
|
+
"subjectPlaceholder": "Selecione um assunto",
|
|
1456
|
+
"subjectSearchPlaceholder": "Buscar assunto...",
|
|
1457
|
+
"subjectEntityLabel": "assunto",
|
|
1458
|
+
"subjectNoResults": "Nenhum assunto encontrado",
|
|
1459
|
+
"subjectCreateTitle": "Novo assunto",
|
|
1460
|
+
"subjectCreateDescription": "Cadastre um assunto para reutilizar em outras questoes.",
|
|
1461
|
+
"subjectCreateNameLabel": "Nome do assunto",
|
|
1462
|
+
"subjectCreateNamePlaceholder": "Ex: React Hooks",
|
|
1463
|
+
"explanation": "Explicação (opcional)"
|
|
1383
1464
|
},
|
|
1384
1465
|
"actions": {
|
|
1385
1466
|
"add": "Adicionar",
|
|
@@ -1389,7 +1470,8 @@
|
|
|
1389
1470
|
"validation": {
|
|
1390
1471
|
"minAlternatives": "Mínimo de 2 alternativas necessárias.",
|
|
1391
1472
|
"statementMin": "Enunciado deve ter pelo menos 5 caracteres",
|
|
1392
|
-
"scoreMin": "Pontuação mínima de 0.5"
|
|
1473
|
+
"scoreMin": "Pontuação mínima de 0.5",
|
|
1474
|
+
"subjectRequired": "Selecione um assunto para a questao."
|
|
1393
1475
|
}
|
|
1394
1476
|
},
|
|
1395
1477
|
"deleteDialog": {
|
|
@@ -1410,7 +1492,10 @@
|
|
|
1410
1492
|
"questionDuplicated": "Questão duplicada!",
|
|
1411
1493
|
"changesSaved": "Alterações salvas com sucesso!",
|
|
1412
1494
|
"fillBlankNeedsAnswers": "Informe pelo menos uma resposta esperada para questão de lacuna.",
|
|
1413
|
-
"matchingNeedsPairs": "Informe pelo menos dois pares válidos para questão de associação."
|
|
1495
|
+
"matchingNeedsPairs": "Informe pelo menos dois pares válidos para questão de associação.",
|
|
1496
|
+
"subjectNameRequired": "Informe o nome do assunto.",
|
|
1497
|
+
"subjectCreated": "Assunto criado com sucesso!",
|
|
1498
|
+
"subjectRequiredToDuplicate": "Esta questao precisa ter um assunto para ser duplicada."
|
|
1414
1499
|
},
|
|
1415
1500
|
"copySuffix": " (cópia)",
|
|
1416
1501
|
"viewMode": {
|
|
@@ -1430,7 +1515,8 @@
|
|
|
1430
1515
|
"headers": {
|
|
1431
1516
|
"question": "Questão",
|
|
1432
1517
|
"type": "Tipo",
|
|
1433
|
-
"points": "Pontos"
|
|
1518
|
+
"points": "Pontos",
|
|
1519
|
+
"subject": "Assunto"
|
|
1434
1520
|
},
|
|
1435
1521
|
"actions": {
|
|
1436
1522
|
"label": "Ações"
|
|
@@ -2502,6 +2588,11 @@
|
|
|
2502
2588
|
"workload": "Carga horária",
|
|
2503
2589
|
"finalScore": "Nota final",
|
|
2504
2590
|
"verificationCode": "Código de verificação",
|
|
2591
|
+
"publicAccess": {
|
|
2592
|
+
"label": "Acesso público",
|
|
2593
|
+
"enabled": "Público",
|
|
2594
|
+
"disabled": "Privado"
|
|
2595
|
+
},
|
|
2505
2596
|
"actions": {
|
|
2506
2597
|
"newTemplate": "Novo Template",
|
|
2507
2598
|
"editTemplate": "Editar Template",
|
|
@@ -2509,6 +2600,11 @@
|
|
|
2509
2600
|
"verify": "Verificar"
|
|
2510
2601
|
}
|
|
2511
2602
|
},
|
|
2603
|
+
"messages": {
|
|
2604
|
+
"publicAccessEnabled": "Acesso público ativado para este certificado.",
|
|
2605
|
+
"publicAccessDisabled": "Acesso público desativado para este certificado.",
|
|
2606
|
+
"publicAccessError": "Não foi possível atualizar o acesso público do certificado."
|
|
2607
|
+
},
|
|
2512
2608
|
"sheet": {
|
|
2513
2609
|
"title": "Criar template de certificado",
|
|
2514
2610
|
"description": "Preencha os campos iniciais do template. Depois voce pode editar o layout no editor visual.",
|
|
@@ -3476,7 +3572,9 @@
|
|
|
3476
3572
|
},
|
|
3477
3573
|
"status": {
|
|
3478
3574
|
"active": "Ativo",
|
|
3479
|
-
"inactive": "Inativo"
|
|
3575
|
+
"inactive": "Inativo",
|
|
3576
|
+
"draft": "Rascunho",
|
|
3577
|
+
"archived": "Arquivado"
|
|
3480
3578
|
},
|
|
3481
3579
|
"contractType": {
|
|
3482
3580
|
"monthly": "Mensal",
|
|
@@ -3645,12 +3743,6 @@
|
|
|
3645
3743
|
"beginner": "Iniciante",
|
|
3646
3744
|
"intermediate": "Intermediário",
|
|
3647
3745
|
"advanced": "Avançado"
|
|
3648
|
-
},
|
|
3649
|
-
"status": {
|
|
3650
|
-
"active": "Ativo",
|
|
3651
|
-
"inactive": "Inativo",
|
|
3652
|
-
"draft": "Rascunho",
|
|
3653
|
-
"archived": "Arquivado"
|
|
3654
3746
|
}
|
|
3655
3747
|
},
|
|
3656
3748
|
"InstructorsPage": {
|
|
@@ -3872,6 +3964,216 @@
|
|
|
3872
3964
|
"description": "Tem certeza que deseja excluir a skill \"{slug}\"? Esta ação não pode ser desfeita."
|
|
3873
3965
|
}
|
|
3874
3966
|
},
|
|
3967
|
+
"AchievementsPage": {
|
|
3968
|
+
"title": "Conquistas",
|
|
3969
|
+
"description": "Gerencie o catálogo de conquistas do LMS, incluindo imagens, tipo, valor em BitCodes e regras de repetição.",
|
|
3970
|
+
"breadcrumbs": {
|
|
3971
|
+
"home": "Início",
|
|
3972
|
+
"lms": "LMS",
|
|
3973
|
+
"current": "Conquistas"
|
|
3974
|
+
},
|
|
3975
|
+
"filters": {
|
|
3976
|
+
"searchPlaceholder": "Buscar por nome, descrição ou tipo..."
|
|
3977
|
+
},
|
|
3978
|
+
"table": {
|
|
3979
|
+
"name": "Nome",
|
|
3980
|
+
"type": "Tipo",
|
|
3981
|
+
"bitCodesValue": "BitCodes",
|
|
3982
|
+
"repeatable": "Pode repetir",
|
|
3983
|
+
"images": "Imagens"
|
|
3984
|
+
},
|
|
3985
|
+
"form": {
|
|
3986
|
+
"name": "Nome",
|
|
3987
|
+
"namePlaceholder": "Ex.: Mestre da Trilha",
|
|
3988
|
+
"description": "Descrição",
|
|
3989
|
+
"descriptionPlaceholder": "Explique quando essa conquista é concedida.",
|
|
3990
|
+
"iconImage": "Imagem do ícone",
|
|
3991
|
+
"iconImageDescription": "Use uma imagem quadrada para representar a conquista em listas e cards.",
|
|
3992
|
+
"mainImage": "Imagem principal",
|
|
3993
|
+
"mainImageDescription": "Imagem de destaque usada em detalhes, campanhas ou comunicações.",
|
|
3994
|
+
"imageUpload": "Enviar imagem",
|
|
3995
|
+
"imageReplace": "Trocar imagem",
|
|
3996
|
+
"imageRemove": "Remover",
|
|
3997
|
+
"type": "Tipo",
|
|
3998
|
+
"typePlaceholder": "Selecione um tipo",
|
|
3999
|
+
"bitCodesValue": "Valor em BitCodes",
|
|
4000
|
+
"canReceiveMultipleTimes": "Permitir receber mais de uma vez",
|
|
4001
|
+
"canReceiveMultipleTimesDescription": "Ative quando a mesma pessoa puder conquistar este item múltiplas vezes.",
|
|
4002
|
+
"validation": {
|
|
4003
|
+
"required": "Obrigatório",
|
|
4004
|
+
"max255": "Máximo 255 caracteres",
|
|
4005
|
+
"integer": "Informe um número inteiro",
|
|
4006
|
+
"nonNegative": "Informe um valor maior ou igual a zero"
|
|
4007
|
+
}
|
|
4008
|
+
},
|
|
4009
|
+
"types": {
|
|
4010
|
+
"course_completion": "Conclusão de curso",
|
|
4011
|
+
"learning_path_completion": "Conclusão de trilha",
|
|
4012
|
+
"exam_approval": "Aprovação em exame",
|
|
4013
|
+
"attendance": "Participação",
|
|
4014
|
+
"engagement": "Engajamento",
|
|
4015
|
+
"custom": "Personalizada"
|
|
4016
|
+
},
|
|
4017
|
+
"repeatable": {
|
|
4018
|
+
"yes": "Sim",
|
|
4019
|
+
"no": "Não"
|
|
4020
|
+
},
|
|
4021
|
+
"sheet": {
|
|
4022
|
+
"createTitle": "Nova conquista",
|
|
4023
|
+
"editTitle": "Editar conquista"
|
|
4024
|
+
},
|
|
4025
|
+
"actions": {
|
|
4026
|
+
"create": "Nova conquista",
|
|
4027
|
+
"edit": "Editar",
|
|
4028
|
+
"delete": "Excluir",
|
|
4029
|
+
"save": "Salvar",
|
|
4030
|
+
"saving": "Salvando...",
|
|
4031
|
+
"cancel": "Cancelar",
|
|
4032
|
+
"deleting": "Excluindo..."
|
|
4033
|
+
},
|
|
4034
|
+
"messages": {
|
|
4035
|
+
"createSuccess": "Conquista criada com sucesso.",
|
|
4036
|
+
"updateSuccess": "Conquista atualizada com sucesso.",
|
|
4037
|
+
"saveError": "Erro ao salvar conquista. Tente novamente.",
|
|
4038
|
+
"deleteSuccess": "Conquista removida com sucesso.",
|
|
4039
|
+
"deleteError": "Erro ao remover conquista. Tente novamente.",
|
|
4040
|
+
"uploadError": "Erro ao enviar imagem. Tente novamente."
|
|
4041
|
+
},
|
|
4042
|
+
"empty": {
|
|
4043
|
+
"title": "Nenhuma conquista encontrada",
|
|
4044
|
+
"description": "Crie uma nova conquista ou ajuste os filtros de busca."
|
|
4045
|
+
},
|
|
4046
|
+
"deleteDialog": {
|
|
4047
|
+
"title": "Excluir conquista",
|
|
4048
|
+
"description": "Tem certeza que deseja excluir a conquista \"{name}\"? Esta ação não pode ser desfeita."
|
|
4049
|
+
}
|
|
4050
|
+
},
|
|
4051
|
+
"BitcodesPage": {
|
|
4052
|
+
"title": "BitCodes",
|
|
4053
|
+
"description": "Gerencie carteiras por pessoa e registre créditos e débitos da moeda virtual do LMS.",
|
|
4054
|
+
"breadcrumbs": {
|
|
4055
|
+
"home": "Início",
|
|
4056
|
+
"lms": "LMS",
|
|
4057
|
+
"current": "BitCodes"
|
|
4058
|
+
},
|
|
4059
|
+
"kpis": {
|
|
4060
|
+
"wallets": "Carteiras",
|
|
4061
|
+
"walletsDescription": "pessoas com carteira ativa",
|
|
4062
|
+
"balance": "Saldo total",
|
|
4063
|
+
"balanceDescription": "BitCodes disponíveis",
|
|
4064
|
+
"transactions": "Transações",
|
|
4065
|
+
"transactionsDescription": "lançamentos registrados",
|
|
4066
|
+
"movement": "Crédito / Débito",
|
|
4067
|
+
"movementDescription": "movimento acumulado"
|
|
4068
|
+
},
|
|
4069
|
+
"filters": {
|
|
4070
|
+
"searchPlaceholder": "Buscar por nome da pessoa..."
|
|
4071
|
+
},
|
|
4072
|
+
"table": {
|
|
4073
|
+
"person": "Pessoa",
|
|
4074
|
+
"personId": "Pessoa #{id}",
|
|
4075
|
+
"balance": "Saldo",
|
|
4076
|
+
"credits": "Créditos",
|
|
4077
|
+
"debits": "Débitos",
|
|
4078
|
+
"transactions": "Transações",
|
|
4079
|
+
"updatedAt": "Atualizado em"
|
|
4080
|
+
},
|
|
4081
|
+
"form": {
|
|
4082
|
+
"title": "Carteira",
|
|
4083
|
+
"description": "Vincule a carteira a uma pessoa do cadastro.",
|
|
4084
|
+
"person": "Pessoa",
|
|
4085
|
+
"personPlaceholder": "Selecione uma pessoa",
|
|
4086
|
+
"personSearchPlaceholder": "Buscar pessoa...",
|
|
4087
|
+
"personEntityLabel": "pessoa",
|
|
4088
|
+
"personEmpty": "Nenhuma pessoa encontrada",
|
|
4089
|
+
"currentBalance": "Saldo atual: {value} BitCodes",
|
|
4090
|
+
"validation": {
|
|
4091
|
+
"personRequired": "Selecione uma pessoa"
|
|
4092
|
+
}
|
|
4093
|
+
},
|
|
4094
|
+
"transactions": {
|
|
4095
|
+
"types": {
|
|
4096
|
+
"credit": "Crédito",
|
|
4097
|
+
"debit": "Débito"
|
|
4098
|
+
},
|
|
4099
|
+
"kpis": {
|
|
4100
|
+
"balance": "Saldo atual",
|
|
4101
|
+
"balanceDescription": "saldo consolidado pela trigger",
|
|
4102
|
+
"credits": "Total de créditos",
|
|
4103
|
+
"creditsDescription": "entradas acumuladas",
|
|
4104
|
+
"debits": "Total de débitos",
|
|
4105
|
+
"debitsDescription": "saídas acumuladas"
|
|
4106
|
+
},
|
|
4107
|
+
"form": {
|
|
4108
|
+
"createTitle": "Novo lançamento",
|
|
4109
|
+
"editTitle": "Editar lançamento",
|
|
4110
|
+
"description": "Registre um crédito ou débito para atualizar o saldo da carteira.",
|
|
4111
|
+
"cancelEdit": "Cancelar edição",
|
|
4112
|
+
"type": "Tipo",
|
|
4113
|
+
"typePlaceholder": "Selecione o tipo",
|
|
4114
|
+
"amount": "Quantidade",
|
|
4115
|
+
"descriptionLabel": "Descrição",
|
|
4116
|
+
"descriptionPlaceholder": "Ex.: bônus por conclusão de curso",
|
|
4117
|
+
"createAction": "Registrar transação",
|
|
4118
|
+
"saveEdit": "Salvar transação",
|
|
4119
|
+
"validation": {
|
|
4120
|
+
"integer": "Informe um número inteiro",
|
|
4121
|
+
"positive": "Informe um valor maior que zero",
|
|
4122
|
+
"max2000": "Máximo 2000 caracteres"
|
|
4123
|
+
}
|
|
4124
|
+
},
|
|
4125
|
+
"table": {
|
|
4126
|
+
"title": "Extrato",
|
|
4127
|
+
"description": "{count} lançamento(s) nesta carteira",
|
|
4128
|
+
"type": "Tipo",
|
|
4129
|
+
"amount": "Quantidade",
|
|
4130
|
+
"descriptionLabel": "Descrição",
|
|
4131
|
+
"createdAt": "Criado em"
|
|
4132
|
+
},
|
|
4133
|
+
"empty": "Ainda não há transações registradas para esta carteira.",
|
|
4134
|
+
"deleteDialog": {
|
|
4135
|
+
"title": "Excluir transação",
|
|
4136
|
+
"description": "Tem certeza que deseja excluir esta transação? O saldo da carteira será recalculado automaticamente."
|
|
4137
|
+
}
|
|
4138
|
+
},
|
|
4139
|
+
"sheet": {
|
|
4140
|
+
"createTitle": "Nova carteira",
|
|
4141
|
+
"editTitle": "Editar carteira",
|
|
4142
|
+
"createDescription": "Crie uma carteira BitCodes para uma pessoa.",
|
|
4143
|
+
"editDescription": "Ajuste a carteira e registre as transações no extrato."
|
|
4144
|
+
},
|
|
4145
|
+
"actions": {
|
|
4146
|
+
"createWallet": "Nova carteira",
|
|
4147
|
+
"saveWallet": "Salvar carteira",
|
|
4148
|
+
"edit": "Editar",
|
|
4149
|
+
"delete": "Excluir",
|
|
4150
|
+
"save": "Salvar",
|
|
4151
|
+
"saving": "Salvando...",
|
|
4152
|
+
"clear": "Limpar",
|
|
4153
|
+
"cancel": "Cancelar",
|
|
4154
|
+
"deleting": "Excluindo..."
|
|
4155
|
+
},
|
|
4156
|
+
"messages": {
|
|
4157
|
+
"walletCreated": "Carteira criada com sucesso.",
|
|
4158
|
+
"walletUpdated": "Carteira atualizada com sucesso.",
|
|
4159
|
+
"walletDeleted": "Carteira removida com sucesso.",
|
|
4160
|
+
"walletSaveError": "Erro ao salvar carteira. Tente novamente.",
|
|
4161
|
+
"walletDeleteError": "Erro ao remover carteira. Tente novamente.",
|
|
4162
|
+
"transactionCreated": "Transação registrada com sucesso.",
|
|
4163
|
+
"transactionUpdated": "Transação atualizada com sucesso.",
|
|
4164
|
+
"transactionDeleted": "Transação removida com sucesso.",
|
|
4165
|
+
"transactionSaveError": "Erro ao salvar transação. Tente novamente.",
|
|
4166
|
+
"transactionDeleteError": "Erro ao remover transação. Tente novamente."
|
|
4167
|
+
},
|
|
4168
|
+
"empty": {
|
|
4169
|
+
"title": "Nenhuma carteira encontrada",
|
|
4170
|
+
"description": "Crie uma nova carteira ou ajuste a busca para localizar uma pessoa."
|
|
4171
|
+
},
|
|
4172
|
+
"deleteDialog": {
|
|
4173
|
+
"title": "Excluir carteira",
|
|
4174
|
+
"description": "Tem certeza que deseja excluir a carteira de \"{name}\"? As transações relacionadas também serão removidas."
|
|
4175
|
+
}
|
|
4176
|
+
},
|
|
3875
4177
|
"EnterpriseDetailPage": {
|
|
3876
4178
|
"breadcrumbs": {
|
|
3877
4179
|
"home": "Início",
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
CREATE OR REPLACE FUNCTION sync_bitcode_wallet_balance()
|
|
2
|
+
RETURNS TRIGGER
|
|
3
|
+
LANGUAGE plpgsql
|
|
4
|
+
AS $$
|
|
5
|
+
DECLARE
|
|
6
|
+
target_wallet_id INTEGER;
|
|
7
|
+
BEGIN
|
|
8
|
+
target_wallet_id := COALESCE(NEW.wallet_id, OLD.wallet_id);
|
|
9
|
+
|
|
10
|
+
UPDATE bitcode_wallet
|
|
11
|
+
SET current_balance = COALESCE((
|
|
12
|
+
SELECT SUM(
|
|
13
|
+
CASE
|
|
14
|
+
WHEN type = 'credit' THEN amount
|
|
15
|
+
ELSE -amount
|
|
16
|
+
END
|
|
17
|
+
)
|
|
18
|
+
FROM bitcode_wallet_transaction
|
|
19
|
+
WHERE wallet_id = target_wallet_id
|
|
20
|
+
), 0),
|
|
21
|
+
updated_at = NOW()
|
|
22
|
+
WHERE id = target_wallet_id;
|
|
23
|
+
|
|
24
|
+
IF TG_OP = 'UPDATE'
|
|
25
|
+
AND NEW.wallet_id IS DISTINCT FROM OLD.wallet_id
|
|
26
|
+
AND OLD.wallet_id IS NOT NULL THEN
|
|
27
|
+
UPDATE bitcode_wallet
|
|
28
|
+
SET current_balance = COALESCE((
|
|
29
|
+
SELECT SUM(
|
|
30
|
+
CASE
|
|
31
|
+
WHEN type = 'credit' THEN amount
|
|
32
|
+
ELSE -amount
|
|
33
|
+
END
|
|
34
|
+
)
|
|
35
|
+
FROM bitcode_wallet_transaction
|
|
36
|
+
WHERE wallet_id = OLD.wallet_id
|
|
37
|
+
), 0),
|
|
38
|
+
updated_at = NOW()
|
|
39
|
+
WHERE id = OLD.wallet_id;
|
|
40
|
+
END IF;
|
|
41
|
+
|
|
42
|
+
RETURN COALESCE(NEW, OLD);
|
|
43
|
+
END;
|
|
44
|
+
$$;
|
|
45
|
+
|
|
46
|
+
DROP TRIGGER IF EXISTS bitcode_wallet_transaction_sync_balance_trigger
|
|
47
|
+
ON bitcode_wallet_transaction;
|
|
48
|
+
|
|
49
|
+
CREATE TRIGGER bitcode_wallet_transaction_sync_balance_trigger
|
|
50
|
+
AFTER INSERT OR UPDATE OR DELETE
|
|
51
|
+
ON bitcode_wallet_transaction
|
|
52
|
+
FOR EACH ROW
|
|
53
|
+
EXECUTE FUNCTION sync_bitcode_wallet_balance();
|
|
@@ -0,0 +1,46 @@
|
|
|
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: icon_file_id
|
|
10
|
+
type: fk
|
|
11
|
+
references:
|
|
12
|
+
table: file
|
|
13
|
+
column: id
|
|
14
|
+
onDelete: SET NULL
|
|
15
|
+
isNullable: true
|
|
16
|
+
- name: main_image_file_id
|
|
17
|
+
type: fk
|
|
18
|
+
references:
|
|
19
|
+
table: file
|
|
20
|
+
column: id
|
|
21
|
+
onDelete: SET NULL
|
|
22
|
+
isNullable: true
|
|
23
|
+
- name: type
|
|
24
|
+
type: enum
|
|
25
|
+
values:
|
|
26
|
+
[
|
|
27
|
+
course_completion,
|
|
28
|
+
learning_path_completion,
|
|
29
|
+
exam_approval,
|
|
30
|
+
attendance,
|
|
31
|
+
engagement,
|
|
32
|
+
custom,
|
|
33
|
+
]
|
|
34
|
+
default: custom
|
|
35
|
+
- name: bitcodes_value
|
|
36
|
+
type: int
|
|
37
|
+
default: 0
|
|
38
|
+
- name: can_receive_multiple_times
|
|
39
|
+
type: boolean
|
|
40
|
+
default: false
|
|
41
|
+
- type: created_at
|
|
42
|
+
- type: updated_at
|
|
43
|
+
|
|
44
|
+
indices:
|
|
45
|
+
- columns: [name]
|
|
46
|
+
- columns: [type]
|
|
@@ -0,0 +1,18 @@
|
|
|
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: current_balance
|
|
10
|
+
type: int
|
|
11
|
+
default: 0
|
|
12
|
+
- type: created_at
|
|
13
|
+
- type: updated_at
|
|
14
|
+
|
|
15
|
+
indices:
|
|
16
|
+
- columns: [person_id]
|
|
17
|
+
isUnique: true
|
|
18
|
+
- columns: [current_balance]
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
columns:
|
|
2
|
+
- type: pk
|
|
3
|
+
- name: wallet_id
|
|
4
|
+
type: fk
|
|
5
|
+
references:
|
|
6
|
+
table: bitcode_wallet
|
|
7
|
+
column: id
|
|
8
|
+
onDelete: CASCADE
|
|
9
|
+
- name: type
|
|
10
|
+
type: enum
|
|
11
|
+
values: [credit, debit]
|
|
12
|
+
- name: amount
|
|
13
|
+
type: int
|
|
14
|
+
- name: description
|
|
15
|
+
type: text
|
|
16
|
+
isNullable: true
|
|
17
|
+
- type: created_at
|
|
18
|
+
- type: updated_at
|
|
19
|
+
|
|
20
|
+
indices:
|
|
21
|
+
- columns: [wallet_id, created_at]
|
|
22
|
+
- columns: [type]
|
package/hedhog/table/course.yaml
CHANGED
|
@@ -76,6 +76,9 @@ columns:
|
|
|
76
76
|
- name: is_listed
|
|
77
77
|
type: boolean
|
|
78
78
|
default: false
|
|
79
|
+
- name: operations_project_id
|
|
80
|
+
type: int
|
|
81
|
+
isNullable: true
|
|
79
82
|
- type: created_at
|
|
80
83
|
- type: updated_at
|
|
81
84
|
|
|
@@ -85,3 +88,4 @@ indices:
|
|
|
85
88
|
- columns: [certificate_template_id]
|
|
86
89
|
- columns: [status]
|
|
87
90
|
- columns: [offering_type]
|
|
91
|
+
- columns: [operations_project_id]
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|
+
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_id]
|
|
@@ -22,6 +22,9 @@ columns:
|
|
|
22
22
|
- name: duration_seconds
|
|
23
23
|
type: int
|
|
24
24
|
default: 0
|
|
25
|
+
- name: operations_task_id
|
|
26
|
+
type: int
|
|
27
|
+
isNullable: true
|
|
25
28
|
- type: order
|
|
26
29
|
- name: is_released
|
|
27
30
|
type: boolean
|
|
@@ -31,5 +34,7 @@ columns:
|
|
|
31
34
|
|
|
32
35
|
indices:
|
|
33
36
|
- columns: [course_module_id]
|
|
37
|
+
- columns: [operations_task_id]
|
|
38
|
+
isUnique: true
|
|
34
39
|
- columns: [course_module_id, order]
|
|
35
40
|
isUnique: true
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
columns:
|
|
2
|
+
- type: pk
|
|
3
|
+
- name: topic_id
|
|
4
|
+
type: fk
|
|
5
|
+
references:
|
|
6
|
+
table: course_lesson_discussion_topic
|
|
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
|
+
- type: created_at
|
|
16
|
+
|
|
17
|
+
indices:
|
|
18
|
+
- columns: [topic_id]
|
|
19
|
+
- columns: [person_id]
|
|
20
|
+
- columns: [topic_id, person_id]
|
|
21
|
+
isUnique: true
|