Files
MathApp/support/serializers.py
Zareian 93b451d422 list a user's own support tickets, Persian digits in completion notifications, rewrite .env.example to match the code
GET /api/support/tickets returns the caller's last 20 tickets with their
support-reply count, on the read throttle so listing never spends the
30/hour create quota. Before it the app kept ticket ids only in one
browser's localStorage, so a ticket and its answer vanished with the device.

Completion notifications now use Persian digits and drop the
'with 0 stars ... 0 points' sentence when nothing was earned.

.env.example: NUM_PROXIES=2 (ArvanCloud + nginx), KAVENEGAR_OTP_TEMPLATE,
BAZAAR_PISHKHAN_API_SECRET, sandbox off by default; removed variables the
code no longer reads.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 21:18:12 +03:30

59 lines
1.8 KiB
Python

from rest_framework import serializers
class BugReportCreateRequestSerializer(serializers.Serializer):
title = serializers.CharField(max_length=150)
description = serializers.CharField()
screenshotUrl = serializers.URLField(required=False, allow_blank=True)
class BugReportCreateResponseSerializer(serializers.Serializer):
bugReportId = serializers.CharField()
status = serializers.CharField()
class TicketCreateRequestSerializer(serializers.Serializer):
subject = serializers.CharField(max_length=150)
category = serializers.CharField(max_length=30)
priority = serializers.ChoiceField(choices=['low', 'normal', 'high'], required=False)
class TicketCreateResponseSerializer(serializers.Serializer):
ticketId = serializers.CharField()
status = serializers.CharField()
class TicketSummarySerializer(serializers.Serializer):
ticketId = serializers.CharField()
subject = serializers.CharField()
category = serializers.CharField()
status = serializers.CharField()
createdAt = serializers.DateTimeField()
supportReplies = serializers.IntegerField()
class TicketListResponseSerializer(serializers.Serializer):
tickets = TicketSummarySerializer(many=True)
class TicketMessageItemSerializer(serializers.Serializer):
id = serializers.CharField()
sender = serializers.CharField()
text = serializers.CharField()
class TicketDetailResponseSerializer(serializers.Serializer):
ticketId = serializers.CharField()
subject = serializers.CharField()
status = serializers.CharField()
messages = TicketMessageItemSerializer(many=True)
class TicketMessageCreateRequestSerializer(serializers.Serializer):
text = serializers.CharField()
class TicketMessageCreateResponseSerializer(serializers.Serializer):
messageId = serializers.CharField()
success = serializers.BooleanField()