from rest_framework import serializers
from .models import Notice


class NoticeSerializer(serializers.ModelSerializer):
    image_url = serializers.SerializerMethodField()
    attachment_file_url = serializers.SerializerMethodField()

    class Meta:
        model = Notice
        fields = "__all__"
        read_only_fields = ["id", "image_url", "attachment_file_url", "views", "created_at", "updated_at", "created_by", "deleted_by"]

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

    def get_attachment_file_url(self, obj):
        request = self.context.get("request")
        if obj.attachment:
            return request.build_absolute_uri(obj.attachment.url) if request else obj.attachment.url
        return None