from rest_framework import serializers
from .models import Notification, Device, NotificationHistory

class AdminNotificationSerializer(serializers.ModelSerializer):
    class Meta:
        model = Notification
        fields = ['id', 'title', 'description', 'created_at']

class DeviceSerializer(serializers.ModelSerializer):
    class Meta:
        model = Device
        fields = ['id', 'device_id', 'platform', 'last_opened_at', 'status', 'created_at']

class NotificationHistorySerializer(serializers.ModelSerializer):
    title = serializers.SerializerMethodField()
    message = serializers.SerializerMethodField()

    class Meta:
        model = NotificationHistory
        fields = ['id', 'title', 'message', 'is_read', 'sent_at']

    def get_title(self, obj):
        # Prefer FK title, fallback to raw title
        return obj.notification.title if obj.notification else obj.title

    def get_message(self, obj):
        return obj.notification.description if obj.notification else obj.message