import 'package:stacked/stacked.dart'; import '../app/app.locator.dart'; import '../models/learn_course.dart'; import '../models/learn_lesson.dart'; import '../models/learn_module.dart'; import '../models/learn_program.dart'; import 'api_service.dart'; class LearnService with ListenableServiceMixin { // Dependency injection final _apiService = locator(); // Initialization LearnLessonService() { listenToReactiveValues([_programs, _lessons]); } // Learn program List _programs = []; List get programs => _programs; // Learn course List _courses = []; List get courses => _courses; // Learn module List _modules = []; List get modules => _modules; // Learn lesson List _lessons = []; List get lessons => _lessons; // Learn programs Future getLearnPrograms() async { _programs = await _apiService.getLearnPrograms(); _programs.sort((a, b) => (a.sortOrder ?? 0).compareTo(b.sortOrder ?? 0)); notifyListeners(); } // Learn modules Future getLearnCourses(int id) async { _courses = await _apiService.getLearnCourses(id); _courses.sort((a, b) => (a.sortOrder ?? 0).compareTo(b.sortOrder ?? 0)); notifyListeners(); } // Learn modules Future getLearnModules(int id) async { _modules = await _apiService.getLearnModules(id); _modules.sort((a, b) => (a.sortOrder ?? 0).compareTo(b.sortOrder ?? 0)); notifyListeners(); } // Learn lessons Future getLearnLessons(int id) async { _lessons = await _apiService.getLearnLessons(id); _lessons.sort((a, b) => (a.sortOrder ?? 0).compareTo(b.sortOrder ?? 0)); notifyListeners(); } }