fluffychat/lib/pangea/course_plans/course_media/course_media_response.dart
ggurdin 261e28abb7
Organize course repos (#4262)
* integrate CoursePlansRepo.translateActivity, translateTopic, translateCoursePlan

* move translation functions to requisite files

* integrate translation endpoint

* refactor: reorganize course-related repos, add request and response model classes

* remove l2s from translation requests

* update translation request and response models, use translation endpoint to get course info, cache courses with L1s in cache key

* update topics repo to use translation endpoint

* use activity translation endpoint

* refactor: incremental loading of individual course info, account for discrepancy between translated IDs and original IDs

* incremental loading of course batches

* Update lib/pangea/course_plans/courses/course_plan_room_extension.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* cleanup

* cleanup

* fix: some name changes

* formatting

---------

Co-authored-by: WilsonLe <leanhminh2907@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: wcjord <32568597+wcjord@users.noreply.github.com>
2025-10-13 11:36:24 -04:00

27 lines
768 B
Dart

import 'package:fluffychat/pangea/course_plans/course_media/course_media_info.dart';
import 'package:fluffychat/pangea/payload_client/models/course_plan/cms_course_plan_media.dart';
import 'package:fluffychat/pangea/payload_client/paginated_response.dart';
class CourseMediaResponse {
final List<CourseMediaInfo> mediaUrls;
CourseMediaResponse({
required this.mediaUrls,
});
factory CourseMediaResponse.fromCmsResponse(
PayloadPaginatedResponse<CmsCoursePlanMedia> response,
) {
return CourseMediaResponse(
mediaUrls: response.docs
.where((e) => e.url != null)
.map(
(e) => CourseMediaInfo(
uuid: e.id,
url: e.url!,
),
)
.toList(),
);
}
}