from rest_framework import serializers
from django.db.models import Q, Count, Max, Min
from .models import City, Country

class MasterCountrySerializer(serializers.ModelSerializer):
    cities = serializers.SerializerMethodField()
    developments = serializers.SerializerMethodField()
    class Meta:
        model = Country
        fields = ['id', 'name', 'slug', 'code', 'cities', 'developments']
        
    def get_cities(self, obj):
        return obj.cities.annotate(d_num=Count('developments')).filter(d_num__gt=0).count()
    
    def get_developments(self,obj):
        return obj.developments.count()
    
class MasterCitySerializer(serializers.ModelSerializer):
    developments = serializers.SerializerMethodField()
    class Meta:
        model = City
        fields = ['id', 'name', 'slug', 'developments']
            
    def get_developments(self,obj):
        return obj.developments.count()