52 lines
1.8 KiB
Python
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)
|