from rest_framework import serializers
from producers_promoted_products.models.producers_promoted_products import PromotedProducts

class PromotedProductsSerializer(serializers.ModelSerializer):
    id = serializers.ReadOnlyField()
    icon_url_path = serializers.SerializerMethodField('get_icon_url')
    image_url_path = serializers.SerializerMethodField('get_image_url')

    class Meta:
        model = PromotedProducts
        fields = ['id', 'promoted_for','promoted_product','title','icon','icon_url_path','image','image_url_path','description', 'offer_start_date', 'offer_end_date','is_active']
        read_only_fields = ['id']

    def get_icon_url(self, obj):
        request = self.context.get("request")
        if obj.icon and hasattr(obj.icon, 'url'):
            return request.build_absolute_uri(obj.icon.url)
        return None
    
    def get_image_url(self, obj):
        request = self.context.get("request")
        if obj.image and hasattr(obj.image, 'url'):
            return request.build_absolute_uri(obj.image.url)
        return None
