from rest_framework import serializers
from rest_framework.exceptions import ValidationError
from .utilitys import validate_eye_close, validate_center_face, validate_blur,validate_is_image_too_dark, rotate_to_top, validate_face, validate_only_one_face
from django.utils.translation import gettext as _

class FileSerializer(serializers.Serializer):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        image_data = kwargs.pop('data', None)
        # if not image_data['image_1'] :
        #     raise False
    
        rotate_to_top(image_data['image_1'], self.context.get('people_id'))


    def validate(self, attrs):
        return super().validate(attrs) 
    
    def validate_image_1(self, value):
        if not value.name.lower().endswith(('.jpg', '.jpeg')):
            raise ValidationError("Only JPEG/JPG files are allowed.")
        
        if not validate_face(value, self.context.get('people_id')) :
       	    raise ValidationError( _("Error validation face not found."))
        
       	if not validate_is_image_too_dark(value, self.context.get('people_id')) :
            raise ValidationError( _("Error validation image to dark."))
        
        #if validate_eye_close(value, self.context.get('people_id')) :
        #    raise ValidationError( _("Error validation eye close."))
    
        if(validate_center_face(value, self.context.get('people_id'))) :
            raise ValidationError( _("Error validation center face."))
        
        if not validate_only_one_face(value, self.context.get('people_id')) :
            raise ValidationError( _("Error validation one face."))
        
        #if(validate_blur(value, self.context.get('people_id'))) :
        #    raise ValidationError( _("Error validation blur."))
        
        return value
    
    image_1 = serializers.FileField(required=True)
