package repository import ( "context" dbgen "Yimaru-Backend/gen/db" "Yimaru-Backend/internal/domain" ) // GetLMSUserProgressSnapshot returns all completed lesson, module, course, and program IDs for a user. func (s *Store) GetLMSUserProgressSnapshot(ctx context.Context, userID int64) (domain.LMSUserProgress, error) { lessons, err := s.queries.ListLMSCompletedLessonIDsByUser(ctx, userID) if err != nil { return domain.LMSUserProgress{}, err } mods, err := s.queries.ListLMSCompletedModuleIDsByUser(ctx, userID) if err != nil { return domain.LMSUserProgress{}, err } courses, err := s.queries.ListLMSCompletedCourseIDsByUser(ctx, userID) if err != nil { return domain.LMSUserProgress{}, err } programs, err := s.queries.ListLMSCompletedProgramIDsByUser(ctx, userID) if err != nil { return domain.LMSUserProgress{}, err } return domain.LMSUserProgress{ LessonIDs: lessons, ModuleIDs: mods, CourseIDs: courses, ProgramIDs: programs, }, nil } // ListUserLMSFlatLearningActivity returns flattened LMS activity rows for admin reporting (lesson + practice completions). func (s *Store) ListUserLMSFlatLearningActivity(ctx context.Context, userID int64) ([]dbgen.ListUserLMSFlatLearningActivityByUserRow, error) { return s.queries.ListUserLMSFlatLearningActivityByUser(ctx, userID) }