
from apps.process.models import File, Media, ProcessedMedia
from rest_framework.serializers import ModelSerializer, UUIDField, SerializerMethodField


class UUIDSerializerField(UUIDField):
    def to_representation(self, value):
        return str(value)


class ProcessedMediaSerializer(ModelSerializer):
    media = SerializerMethodField()

    def get_media(self, obj):
        media_serializer = MediaSerializer(obj.media)
        return media_serializer.data

    class Meta:
        model = ProcessedMedia
        fields = '__all__'


class MediaSerializer(ModelSerializer):
    id_media = UUIDSerializerField()
    # processed_media = ProcessedMediaSerializer(many=True)
    original_file = SerializerMethodField()

    def get_original_file(self, obj):
        file_serializer = FileSerializer(obj.original_file)
        return file_serializer.data 

    class Meta:
        model = Media
        fields = '__all__'

# File Serializer
class FileSerializer(ModelSerializer):
    id_file = UUIDSerializerField()
    # media = MediaSerializer(many=True)
    
    class Meta:
        model = File
        fields = '__all__'
