from rest_framework import serializers
from django.contrib.auth import get_user_model

from apps.companies.constants import CompanyType
from apps.userprofile.services import ProfileServices


class DealershipStaffSerializer(serializers.ModelSerializer):
    full_name = serializers.SerializerMethodField()
    dealership_count = serializers.SerializerMethodField()

    class Meta:
        model = get_user_model()
        fields = [
            "id",
            "full_name",
            "email",
            "dealership_count",
        ]

    def get_full_name(self, obj):
        return ProfileServices.resolve_display_name(user=obj)

    def get_dealership_count(self, obj):
        return obj.companies.filter(company_type=CompanyType.DEALERSHIP).count()
