Remove lesson completion from learner progress percentages, access completion snapshots, and LMS rollups while keeping generated SQLC and Swagger artifacts in sync. Co-authored-by: Cursor <cursoragent@cursor.com>
27 lines
1.3 KiB
Go
27 lines
1.3 KiB
Go
package domain
|
|
|
|
// LMSEntityAccess describes learner gating for a program, course, module, or lesson.
|
|
// Included for STUDENT and OPEN_LEARNER; omitted (nil) for staff roles in API responses.
|
|
// OPEN_LEARNER always has is_accessible true; STUDENT may be false when prerequisites are unmet.
|
|
// Progress fields count completed published practices vs total published practices in the
|
|
// entity's scope. progress_percent keeps the legacy whole-number value; use
|
|
// progress_percent_precise for decimal precision in learner UIs.
|
|
type LMSEntityAccess struct {
|
|
IsAccessible bool `json:"is_accessible"`
|
|
IsCompleted bool `json:"is_completed"`
|
|
Reason string `json:"reason,omitempty"`
|
|
CompletedCount int `json:"completed_count"`
|
|
TotalCount int `json:"total_count"`
|
|
ProgressPercent int `json:"progress_percent"`
|
|
ProgressPercentPrecise float64 `json:"progress_percent_precise"`
|
|
}
|
|
|
|
// LMSUserProgress lists entity IDs the authenticated user has fully completed based on
|
|
// published practice completion in each LMS scope.
|
|
type LMSUserProgress struct {
|
|
LessonIDs []int64 `json:"lesson_ids"`
|
|
ModuleIDs []int64 `json:"module_ids"`
|
|
CourseIDs []int64 `json:"course_ids"`
|
|
ProgramIDs []int64 `json:"program_ids"`
|
|
}
|