from rest_framework import serializers
from .models import File,Transcripts



class FileSerializer(serializers.ModelSerializer):
    class Meta:
        model=File
        fields ='__all__'

# class TranscriptsSerializer(serializers.ModelSerializer):
#     class Meta:
#         model = Transcripts
#         fields = '__all__'

#     def update(self, instance, validated_data):
#         for field in self.Meta.model._meta.fields:
#             if field.name not in validated_data:
#                 setattr(instance, field.name, None)
#         return super().update(instance, validated_data)

class TranscriptsSerializer(serializers.ModelSerializer):
    file_org = serializers.SerializerMethodField(read_only=True)

    class Meta:
        model = Transcripts
        fields = '__all__'

    def update(self, instance, validated_data):
        # Create a list to store the keys to remove
        keys_to_remove = []
        # Iterate over the fields in the validated data
        for field_name, value in validated_data.items():
            # Check if the value of the field is an empty string
            if value == '':
                # If it is, add the field name to the list of keys to remove
                keys_to_remove.append(field_name)
        # Remove the keys from the validated data outside of the loop
        for key in keys_to_remove:
            validated_data.pop(key)
        # Call the superclass update method with the modified validated data
        return super().update(instance, validated_data)
    
    def get_file_org(self,obj):
        file = File.objects.filter(id_file=obj.file_org.id_file)
        serializer = FileSerializer(file,many=True)
        return serializer.data 
 