from rest_framework import serializers
from .models import Ad


class AdSerializer(serializers.ModelSerializer):
    """Ad Serializer"""
    image_url = serializers.SerializerMethodField()
    is_valid = serializers.ReadOnlyField()

    class Meta:
        model = Ad
        fields = [
            'id',
            'title',
            'subtitle',
            'image',
            'image_url',
            'action_type',
            'action_data',
            'is_active',
            'start_date',
            'end_date',
            'priority',
            'is_valid',
            'created_at',
            'updated_at',
        ]
        read_only_fields = ['id', 'created_at', 'updated_at']

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

