from django.contrib.auth.hashers import make_password
from rest_framework import serializers

from accounts.models import Customers


class CustomerRegistrationSerializer(serializers.ModelSerializer):
    class Meta:
        model = Customers
        fields = ['password', 'first_name', 'last_name', 'gender', 'height_feet',
                  'height_inches', 'weight', 'address_line1', 'address_line2', 'city', 'state',
                  'pin', 'phone', 'email', 'profile_image', 'valid_upto', 'registration_date',
                  'emergency_phone1', 'emergency_email1', 'emergency_name1', 'emergency_phone2',
                  'emergency_email2', 'emergency_name2', 'primary_physician_name',
                  'primary_physician_contact', 'blood_group', 'medical_history', 'allergies']

    def validate_password(self, value):
        if not value or len(value) < 4:
            raise serializers.ValidationError("Password must be at least 4 characters long.")
        return make_password(value)
