from rest_framework import serializers
from users.models.users import User

class CountryAdminCreateSerializer(serializers.ModelSerializer):
    password = serializers.CharField(write_only=True)
    
    class Meta:
        model = User
        fields = ['email', 'full_name', 'password', 'country']

    def validate(self, attrs):
        if not attrs.get("country"):
            raise serializers.ValidationError(
                {"country": "Country is required for sub admin"}
            )
        return attrs
    
    def create(self, validated_data):
        password = validated_data.pop("password")

        user = User.objects.create(
            email=validated_data["email"],
            full_name=validated_data.get("full_name"),
            country=validated_data.get("country"),
            role="sub_admin",
            is_active=True,
            email_verified=True
        )

        user.set_password(password) 
        user.save()

        return user