Files
MathApp/family/serializers.py
2026-08-11 16:43:12 +03:30

52 lines
1.8 KiB
Python

from rest_framework import serializers
class FamilyLinkInviteRequestSerializer(serializers.Serializer):
childPhone = serializers.CharField(max_length=15)
class FamilyLinkInviteResponseSerializer(serializers.Serializer):
familyLinkId = serializers.CharField()
inviteCode = serializers.CharField()
status = serializers.CharField()
class FamilyLinkAcceptRequestSerializer(serializers.Serializer):
inviteCode = serializers.CharField(max_length=10)
class FamilyLinkAcceptResponseSerializer(serializers.Serializer):
familyLinkId = serializers.CharField()
status = serializers.CharField()
acceptedAt = serializers.DateTimeField(allow_null=True)
class FamilyLinkStatusResponseSerializer(serializers.Serializer):
familyLinkId = serializers.CharField()
status = serializers.CharField()
childName = serializers.CharField(allow_blank=True)
class FamilySettingsResponseSerializer(serializers.Serializer):
dailyLimitMinutes = serializers.IntegerField()
quietHoursStart = serializers.TimeField(allow_null=True)
quietHoursEnd = serializers.TimeField(allow_null=True)
class FamilySettingsUpdateRequestSerializer(serializers.Serializer):
dailyLimitMinutes = serializers.IntegerField(required=False, min_value=0)
quietHoursStart = serializers.TimeField(required=False, allow_null=True)
quietHoursEnd = serializers.TimeField(required=False, allow_null=True)
class FamilySettingsUpdateResponseSerializer(serializers.Serializer):
success = serializers.BooleanField()
class FamilyWeeklyReportResponseSerializer(serializers.Serializer):
weekStart = serializers.DateField()
xpEarned = serializers.IntegerField()
lessonsCompleted = serializers.IntegerField()
currentStreak = serializers.IntegerField()
openedAt = serializers.DateTimeField(allow_null=True)