from rest_framework import serializers
from .models import UserSettings
from user.serializers import UserSerializer

class UserSettingsSerializer(serializers.ModelSerializer):
    user = UserSerializer(read_only=True)
    user_id = serializers.UUIDField(write_only=True)

    class Meta:
        model = UserSettings
        fields = ['id', 'user', 'user_id', 'lang', 'user_timezone', 'user_type', 'created_at', 'updated_at']
        read_only_fields = ['id', 'created_at', 'updated_at']

    def validate_user_id(self, value):
        from user.models import User
        try:
            User.objects.get(id=value)
        except User.DoesNotExist:
            raise serializers.ValidationError("User does not exist")
        return value

    def create(self, validated_data):
        from user.models import User
        user_id = validated_data.pop('user_id')
        user = User.objects.get(id=user_id)
        return UserSettings.objects.create(user=user, **validated_data) 