refactor(profile): added preference count in extended data api

This commit is contained in:
bobbyvish
2024-08-13 15:24:09 +05:30
parent 5b68e5643e
commit 5bd5b7a500

View File

@@ -204,7 +204,7 @@ class ProfileExtendedDataSerializer(serializers.ModelSerializer):
principal_type_name = serializers.SerializerMethodField(read_only=True)
has_active_subscription = serializers.SerializerMethodField(read_only=True)
preference = serializers.SerializerMethodField(read_only=True)
register_complete = serializers.BooleanField(read_only=True)
principal_preference_count = serializers.SerializerMethodField(read_only=True)
going_events_count = serializers.SerializerMethodField(read_only=True)
interested_events_count = serializers.SerializerMethodField(read_only=True)
feature_limit = serializers.SerializerMethodField(read_only=True)
@@ -217,6 +217,7 @@ class ProfileExtendedDataSerializer(serializers.ModelSerializer):
"register_complete",
"has_active_subscription",
"preference",
"principal_preference_count",
"going_events_count",
"interested_events_count",
"feature_limit"
@@ -243,6 +244,13 @@ class ProfileExtendedDataSerializer(serializers.ModelSerializer):
def get_preference(self, obj):
return PrincipalPreference.objects.filter(principal=obj).exists()
def get_principal_preference_count(self, obj):
principal_preference = PrincipalPreference.objects.filter(principal=obj).first()
if principal_preference:
categories = principal_preference.preferred_categories.all()
return categories.count()
return 0
def get_has_active_subscription(self, obj):
subscription_status = {
"has_active_subscription": False,