from rest_framework import serializers from accounts.serializers import IranMobileField class FamilyLinkInviteRequestSerializer(serializers.Serializer): childPhone = IranMobileField() 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() # افزوده ۲۰۲۶-۰۹-۲۵: جزیره‌هایی که آزمونشان در این هفته تمام شده. xpEarned # از همین تاریخ امتیازِ آزمونِ جزیره را هم دارد. islandsCompleted = serializers.IntegerField() currentStreak = serializers.IntegerField() openedAt = serializers.DateTimeField(allow_null=True)