from rest_framework import serializers
from service_category.models.category import ServiceCategory
from service_sub_categories.serializers.sub_categories_serializer import ServiceSubCategorySerializer
# from property_nearby_facilities.serializers.property_nearby_facilities_serializer import PropertyNearbyFacilitiesSerializer

class ServiceCategorySerializer(serializers.ModelSerializer):
    id = serializers.ReadOnlyField()
    icon_url_path = serializers.SerializerMethodField('get_image_url')
    service_catregory = ServiceSubCategorySerializer(many=True,read_only=True)

    class Meta:
        model = ServiceCategory
        fields = ['id', 'name', 'icon_url','icon_url_path', 'address', 'is_active', 'created_at', 'updated_at',
            'created_by', 'updated_by','service_catregory',
        ]
        read_only_fields = ['id', 'created_at', 'updated_at','created_by', 'updated_by','service_catregory']

    def get_image_url(self, obj):
        request = self.context.get("request")
        if obj.icon_url and hasattr(obj.icon_url, 'url'):
            return request.build_absolute_uri(obj.icon_url.url)
        return None
    
class ServiceCategoryDropdownSerializer(serializers.ModelSerializer):
    id = serializers.ReadOnlyField()

    class Meta:
        model = ServiceCategory
        fields = ['id','name']