You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

36 lines
1.4 KiB

from rest_framework import serializers
from apps.account.models import Notification, NotificationTemplate
from apps.account.models import User
class NotificationSerializer(serializers.ModelSerializer):
class Meta:
model = Notification
fields = ['id', 'title', 'message', 'is_read', 'notification_type', 'action', 'navigate_to', 'created_at', 'updated_at']
class NotificationSendSerializer(serializers.Serializer):
title = serializers.CharField()
body = serializers.CharField()
data = serializers.DictField(required=False)
user_id = serializers.IntegerField(required=True)
class AdminNotificationSerializer(serializers.ModelSerializer):
user_fullname = serializers.CharField(source='user.fullname', read_only=True)
user_email = serializers.CharField(source='user.email', read_only=True)
user_id = serializers.IntegerField(source='user.id', read_only=True)
class Meta:
model = Notification
fields = [
'id', 'title', 'message', 'is_read', 'notification_type',
'action', 'navigate_to', 'created_at', 'updated_at',
'user_fullname', 'user_email', 'user_id'
]
class NotificationTemplateSerializer(serializers.ModelSerializer):
class Meta:
model = NotificationTemplate
fields = ['id', 'notification_type', 'name', 'is_active', 'title', 'body', 'placeholders_info']