package repository import ( "context" dbgen "Yimaru-Backend/gen/db" ) // ExamPrepUserPracticeProgressInLesson returns published practice completion counts scoped to an exam-prep lesson. func (s *Store) ExamPrepUserPracticeProgressInLesson(ctx context.Context, userID, lessonID int64) (completed, total int32, err error) { total, err = s.queries.CountPublishedExamPrepPracticesInLesson(ctx, lessonID) if err != nil { return 0, 0, err } completed, err = s.queries.CountUserCompletedPublishedExamPrepPracticesInLesson(ctx, dbgen.CountUserCompletedPublishedExamPrepPracticesInLessonParams{ UnitModuleLessonID: lessonID, UserID: userID, }) if err != nil { return 0, 0, err } return completed, total, nil } // ExamPrepUserPracticeProgressInModule returns published practice completion counts in an exam-prep module. func (s *Store) ExamPrepUserPracticeProgressInModule(ctx context.Context, userID, moduleID int64) (completed, total int32, err error) { total, err = s.queries.CountPublishedExamPrepPracticesInModule(ctx, moduleID) if err != nil { return 0, 0, err } completed, err = s.queries.CountUserCompletedPublishedExamPrepPracticesInModule(ctx, dbgen.CountUserCompletedPublishedExamPrepPracticesInModuleParams{ UnitModuleID: moduleID, UserID: userID, }) if err != nil { return 0, 0, err } return completed, total, nil } // ExamPrepUserPracticeProgressInUnit returns published practice completion counts in an exam-prep unit. func (s *Store) ExamPrepUserPracticeProgressInUnit(ctx context.Context, userID, unitID int64) (completed, total int32, err error) { total, err = s.queries.CountPublishedExamPrepPracticesInUnit(ctx, unitID) if err != nil { return 0, 0, err } completed, err = s.queries.CountUserCompletedPublishedExamPrepPracticesInUnit(ctx, dbgen.CountUserCompletedPublishedExamPrepPracticesInUnitParams{ UnitID: unitID, UserID: userID, }) if err != nil { return 0, 0, err } return completed, total, nil } // ExamPrepUserPracticeProgressInCatalogCourse returns published practice completion counts in a catalog course. func (s *Store) ExamPrepUserPracticeProgressInCatalogCourse(ctx context.Context, userID, catalogCourseID int64) (completed, total int32, err error) { total, err = s.queries.CountPublishedExamPrepPracticesInCatalogCourse(ctx, catalogCourseID) if err != nil { return 0, 0, err } completed, err = s.queries.CountUserCompletedPublishedExamPrepPracticesInCatalogCourse(ctx, dbgen.CountUserCompletedPublishedExamPrepPracticesInCatalogCourseParams{ CatalogCourseID: catalogCourseID, UserID: userID, }) if err != nil { return 0, 0, err } return completed, total, nil }