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.
45 lines
1.7 KiB
45 lines
1.7 KiB
|
|
|
|
from rest_framework import serializers
|
|
from apps.account.models import Notification, NotificationTemplate
|
|
from apps.account.models import User
|
|
|
|
|
|
|
|
|
|
class NotificationSerializer(serializers.ModelSerializer):
|
|
user_type = serializers.ChoiceField(choices=[('user', 'User'), ('merchant', 'Merchant')], default='user')
|
|
service = serializers.ChoiceField(choices=Notification.ServiceChoices.choices, default=Notification.ServiceChoices.IMAM_JAVAD)
|
|
|
|
class Meta:
|
|
model = Notification
|
|
fields = ['id', 'title', 'message', 'is_read', 'user_type', 'service', 'created_at', 'updated_at']
|
|
|
|
|
|
|
|
class NotificationSendSerializer(serializers.Serializer):
|
|
title = serializers.CharField()
|
|
body = serializers.CharField()
|
|
data = serializers.DictField(required=False)
|
|
account_id = serializers.CharField(required=True)
|
|
user_type = serializers.CharField(required=True)
|
|
service = serializers.ChoiceField(choices=Notification.ServiceChoices.choices, default=Notification.ServiceChoices.IMAM_JAVAD)
|
|
|
|
|
|
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', 'service', '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_ru', 'title_en', 'body_ru', 'body_en', 'placeholders_info'
|
|
]
|