from rest_framework import serializers
from .models import CareerTestResult

class CareerTestSubmitSerializer(serializers.Serializer):
    """Сериализатор для приёма ответов на тест"""
    answers = serializers.JSONField()
    ym_client_id = serializers.CharField(
        required=False,
        allow_null=True,
        allow_blank=True,
        max_length=64
    )

    def validate_answers(self, value):
        # Проверка: должны быть ответы на q1-q24
        required_keys = {f'q{i}' for i in range(1, 25)}
        if not required_keys.issubset(value.keys()):
            raise serializers.ValidationError("Не все вопросы заполнены")
        return value


class CareerTestResultSerializer(serializers.ModelSerializer):
    profile_display = serializers.CharField(source='get_profile_display', read_only=True)

    class Meta:
        model = CareerTestResult
        fields = [
            'id',
            'profile',
            'profile_display',
            'top3_profiles',
            'recommended_ege_sets',
            'created_at',
        ]