from rest_framework import serializers
from LiveStock.models import Rancher, LiveStock, LiveStockProduct
from authentication.serializer.serializer import BankCardSerializer, SystemUserProfileForInspectionSerializer
from authentication.serializers import SystemAddressSerializer


class RancherSerializer(serializers.ModelSerializer):
    user = SystemUserProfileForInspectionSerializer(read_only=True)
    # address = SystemAddressSerializer(read_only=True)

    class Meta:
        model = Rancher
        fields = '__all__'


class RancherForBazrasiSerializer(serializers.ModelSerializer):
    heavy_livestock = serializers.SerializerMethodField()
    light_livestock = serializers.SerializerMethodField()

    class Meta:
        model = Rancher
        fields = [
            'herd_code',
            'fullname',
            'mobile',
            'lot',
            'lng',
            'heavy_livestock',
            'light_livestock',
            'type'

        ]

    def get_heavy_livestock(self, obj):
        heavy_counts = self.context.get('heavy_counts') or {}
        return heavy_counts.get(obj.herd_code, 0)

    def get_light_livestock(self, obj):
        light_counts = self.context.get('light_counts') or {}
        return light_counts.get(obj.herd_code, 0)
