from rest_framework import serializers from .models import Website, CrawlTask, CrawledContent, CrawlLog, SearchKeyword, MediaFile class WebsiteSerializer(serializers.ModelSerializer): class Meta: model = Website fields = '__all__' class CrawlTaskSerializer(serializers.ModelSerializer): websites = WebsiteSerializer(many=True, read_only=True) progress_percentage = serializers.ReadOnlyField() class Meta: model = CrawlTask fields = '__all__' class MediaFileSerializer(serializers.ModelSerializer): file_size_display = serializers.ReadOnlyField() class Meta: model = MediaFile fields = '__all__' class CrawledContentSerializer(serializers.ModelSerializer): website_name = serializers.CharField(source='website.name', read_only=True) website_region = serializers.CharField(source='website.region', read_only=True) task_name = serializers.CharField(source='task.name', read_only=True) media_files = MediaFileSerializer(many=True, read_only=True) class Meta: model = CrawledContent fields = '__all__' class CrawlLogSerializer(serializers.ModelSerializer): website_name = serializers.CharField(source='website.name', read_only=True) task_name = serializers.CharField(source='task.name', read_only=True) class Meta: model = CrawlLog fields = '__all__' class SearchKeywordSerializer(serializers.ModelSerializer): class Meta: model = SearchKeyword fields = '__all__'