210 lines
7.6 KiB
Python
210 lines
7.6 KiB
Python
from rest_framework import serializers
|
|
|
|
|
|
class NotificationActorSerializer(serializers.Serializer):
|
|
id = serializers.IntegerField(allow_null=True)
|
|
name = serializers.CharField()
|
|
type = serializers.CharField(required=False, allow_null=True)
|
|
avatar = serializers.CharField(required=False, allow_blank=True, allow_null=True)
|
|
|
|
|
|
class NotificationItemSerializer(serializers.Serializer):
|
|
id = serializers.IntegerField()
|
|
title = serializers.CharField()
|
|
message = serializers.CharField()
|
|
short_message = serializers.CharField()
|
|
is_read = serializers.BooleanField()
|
|
created_at = serializers.DateTimeField()
|
|
category = serializers.CharField()
|
|
action_url = serializers.CharField(
|
|
required=False, allow_blank=True, allow_null=True)
|
|
data = serializers.JSONField(required=False, allow_null=True)
|
|
verb = serializers.CharField()
|
|
description = serializers.CharField()
|
|
actor = NotificationActorSerializer(required=False, allow_null=True)
|
|
unread = serializers.BooleanField()
|
|
public = serializers.BooleanField()
|
|
deleted = serializers.BooleanField()
|
|
emailed = serializers.BooleanField()
|
|
timestamp = serializers.DateTimeField()
|
|
timesince = serializers.CharField()
|
|
|
|
|
|
class NotificationsListResponseSerializer(serializers.Serializer):
|
|
total = serializers.IntegerField()
|
|
page = serializers.IntegerField()
|
|
page_size = serializers.IntegerField()
|
|
unread_count = serializers.IntegerField()
|
|
notifications = NotificationItemSerializer(many=True)
|
|
|
|
|
|
class CountResponseSerializer(serializers.Serializer):
|
|
count = serializers.IntegerField()
|
|
|
|
|
|
class UnreadSummaryVerbSerializer(serializers.Serializer):
|
|
verb = serializers.CharField()
|
|
unread = serializers.IntegerField()
|
|
|
|
|
|
class UnreadSummaryProcurementRequestSerializer(serializers.Serializer):
|
|
request_id = serializers.IntegerField()
|
|
unread = serializers.IntegerField()
|
|
|
|
|
|
class UnreadSummaryEmployeeRequestSerializer(serializers.Serializer):
|
|
request_id = serializers.IntegerField()
|
|
unread = serializers.IntegerField()
|
|
|
|
|
|
class UnreadSummaryProcurementItemCommentSerializer(serializers.Serializer):
|
|
item_id = serializers.IntegerField()
|
|
unread = serializers.IntegerField()
|
|
|
|
|
|
class UnreadSummaryTaskBoardSerializer(serializers.Serializer):
|
|
board_id = serializers.IntegerField()
|
|
unread = serializers.IntegerField()
|
|
|
|
|
|
class UnreadSummaryRegulationDepartmentSerializer(serializers.Serializer):
|
|
department_id = serializers.IntegerField()
|
|
unread = serializers.IntegerField()
|
|
|
|
|
|
class UnreadSummaryResponseSerializer(serializers.Serializer):
|
|
total = serializers.IntegerField()
|
|
verbs = UnreadSummaryVerbSerializer(many=True)
|
|
employee_requests = UnreadSummaryEmployeeRequestSerializer(many=True)
|
|
procurement_requests = UnreadSummaryProcurementRequestSerializer(many=True)
|
|
procurement_item_comments = UnreadSummaryProcurementItemCommentSerializer(
|
|
many=True,
|
|
)
|
|
task_boards = UnreadSummaryTaskBoardSerializer(many=True)
|
|
regulation_departments = UnreadSummaryRegulationDepartmentSerializer(
|
|
many=True,
|
|
)
|
|
regulation_company_unread = serializers.IntegerField()
|
|
regulation_personal_unread = serializers.IntegerField()
|
|
|
|
|
|
class StatusResponseSerializer(serializers.Serializer):
|
|
status = serializers.CharField()
|
|
message = serializers.CharField(required=False)
|
|
notification_id = serializers.IntegerField(required=False)
|
|
count = serializers.IntegerField(required=False)
|
|
deleted_count = serializers.IntegerField(required=False)
|
|
device_id = serializers.IntegerField(required=False)
|
|
created = serializers.BooleanField(required=False)
|
|
verbs = serializers.ListField(
|
|
child=serializers.CharField(),
|
|
required=False,
|
|
)
|
|
|
|
|
|
class VerbTypeSerializer(serializers.Serializer):
|
|
verb = serializers.CharField()
|
|
name = serializers.CharField()
|
|
total = serializers.IntegerField()
|
|
unread = serializers.IntegerField()
|
|
|
|
|
|
class VerbTypesResponseSerializer(serializers.Serializer):
|
|
verb_types = VerbTypeSerializer(many=True)
|
|
|
|
|
|
class MarkAllAsReadRequestSerializer(serializers.Serializer):
|
|
verb = serializers.CharField(required=False)
|
|
|
|
|
|
class MarkCategoryAsReadRequestSerializer(serializers.Serializer):
|
|
verbs = serializers.ListField(child=serializers.CharField())
|
|
category = serializers.CharField(required=False)
|
|
|
|
|
|
class ChannelPreferencesSerializer(serializers.Serializer):
|
|
web_enabled = serializers.BooleanField()
|
|
email_enabled = serializers.BooleanField()
|
|
email_frequency = serializers.CharField()
|
|
push_enabled = serializers.BooleanField()
|
|
dnd_enabled = serializers.BooleanField()
|
|
dnd_start_time = serializers.CharField(required=False, allow_null=True)
|
|
dnd_end_time = serializers.CharField(required=False, allow_null=True)
|
|
disabled_verbs = serializers.ListField(child=serializers.CharField())
|
|
|
|
|
|
class UpdateChannelPreferencesSerializer(serializers.Serializer):
|
|
web_enabled = serializers.BooleanField(required=False)
|
|
email_enabled = serializers.BooleanField(required=False)
|
|
email_frequency = serializers.CharField(required=False)
|
|
push_enabled = serializers.BooleanField(required=False)
|
|
dnd_enabled = serializers.BooleanField(required=False)
|
|
dnd_start_time = serializers.CharField(required=False, allow_null=True)
|
|
dnd_end_time = serializers.CharField(required=False, allow_null=True)
|
|
disabled_verbs = serializers.ListField(
|
|
child=serializers.CharField(),
|
|
required=False,
|
|
)
|
|
|
|
|
|
class VapidPublicKeyResponseSerializer(serializers.Serializer):
|
|
status = serializers.CharField()
|
|
message = serializers.CharField(required=False)
|
|
vapid_public_key = serializers.CharField(required=False, allow_null=True)
|
|
|
|
|
|
class PushKeysSerializer(serializers.Serializer):
|
|
p256dh = serializers.CharField()
|
|
auth = serializers.CharField()
|
|
|
|
|
|
class SubscribePushRequestSerializer(serializers.Serializer):
|
|
endpoint = serializers.CharField()
|
|
keys = PushKeysSerializer()
|
|
device_name = serializers.CharField(required=False)
|
|
installation_id = serializers.UUIDField(required=False)
|
|
device_group_id = serializers.UUIDField(required=False)
|
|
app_kind = serializers.ChoiceField(
|
|
choices=("main", "messenger"),
|
|
required=False,
|
|
default="main",
|
|
)
|
|
installed = serializers.BooleanField(required=False, default=False)
|
|
|
|
|
|
class UnsubscribePushRequestSerializer(serializers.Serializer):
|
|
endpoint = serializers.CharField(required=False)
|
|
device_group_id = serializers.UUIDField(required=False)
|
|
|
|
|
|
class InstallationHeartbeatRequestSerializer(serializers.Serializer):
|
|
installation_id = serializers.UUIDField()
|
|
device_group_id = serializers.UUIDField()
|
|
app_kind = serializers.ChoiceField(choices=("main", "messenger"))
|
|
device_name = serializers.CharField(required=False, allow_blank=True)
|
|
installed = serializers.BooleanField(required=False, default=True)
|
|
|
|
|
|
class DeliveryRoutingRequestSerializer(serializers.Serializer):
|
|
device_group_id = serializers.UUIDField()
|
|
routes = serializers.DictField(
|
|
child=serializers.ListField(
|
|
child=serializers.ChoiceField(choices=("main", "messenger")),
|
|
allow_empty=False,
|
|
),
|
|
)
|
|
|
|
|
|
class DeliveryRoutingResponseSerializer(serializers.Serializer):
|
|
device_group_id = serializers.UUIDField()
|
|
categories = serializers.ListField(child=serializers.DictField())
|
|
routes = serializers.DictField(
|
|
child=serializers.ListField(child=serializers.CharField())
|
|
)
|
|
installations = serializers.ListField(child=serializers.DictField())
|
|
|
|
|
|
class DisconnectInstallationRequestSerializer(serializers.Serializer):
|
|
device_group_id = serializers.UUIDField()
|
|
app_kind = serializers.ChoiceField(choices=("main", "messenger"))
|