from rest_framework import serializers from dj_filer.admin import get_thumbs from apps.course.models import Course, CourseCategory, Attachment, Glossary from apps.account.serializers import UserProfileSerializer class CourseCategorySerializer(serializers.ModelSerializer): course_count = serializers.SerializerMethodField() class Meta: model = CourseCategory fields = ['name', 'slug', 'course_count'] def get_course_count(self, obj): # return obj.course_count return 25 class CourseListSerializer(serializers.ModelSerializer): category = CourseCategorySerializer() thumbnail = serializers.SerializerMethodField() participant_count = serializers.SerializerMethodField() class Meta: model = Course fields = [ 'id', 'title', 'slug', 'participant_count', 'category', 'thumbnail', 'is_online', 'level', 'duration', 'lessons_count', 'short_description', 'status', 'is_free', 'price', 'discount_percentage', 'final_price', ] def get_thumbnail(self, obj): return get_thumbs(obj.thumbnail, self.context.get('request')) def get_participant_count(self, obj): return 120 class CourseDetailSerializer(serializers.ModelSerializer): category = CourseCategorySerializer() professor = UserProfileSerializer() thumbnail = serializers.SerializerMethodField() participant_count = serializers.SerializerMethodField() class Meta: model = Course fields = [ 'id', 'title', 'slug', 'category', 'participant_count', 'professor', 'thumbnail', 'video_type', 'video_file', 'video_link', 'is_online', 'level', 'duration', 'lessons_count', 'short_description', 'status', 'is_free', 'price', 'discount_percentage', 'final_price', 'timing', 'features', ] def get_thumbnail(self, obj): return get_thumbs(obj.thumbnail, self.context.get('request')) def get_participant_count(self, obj): return 120 class AttachmentSerializer(serializers.ModelSerializer): class Meta: model = Attachment fields = ['id', 'title', 'file', 'file_size'] class GlossarySerializer(serializers.ModelSerializer): class Meta: model = Glossary fields = ['id', 'title', 'description']