from rest_framework import serializers from apps.account.models import phone_validator class RequestOTPSerializer(serializers.Serializer): phone = serializers.CharField(max_length=15, required=True, label="شماره موبایل") referral_code = serializers.CharField(max_length=8, required=False, allow_blank=True, label="کد معرف") def validate_phone(self, value): phone_validator(value) return value class VerifyOTPSerializer(serializers.Serializer): phone = serializers.CharField(max_length=15, required=True, label="شماره موبایل") otp = serializers.CharField(max_length=6, required=True, label="کد تایید") def validate_phone(self, value): phone_validator(value) return value def validate(self, attrs): from .services import UserService user = UserService.verify_user(attrs["phone"], attrs["otp"]) attrs["user"] = user return attrs class LogoutSerializer(serializers.Serializer): refresh = serializers.CharField(required=True, label="توکن رفرش") class ConfirmWithOTPSerializer(serializers.Serializer): otp = serializers.CharField(max_length=6, required=True, label="کد تایید") class ProfileUpdateSerializer(serializers.Serializer): name = serializers.CharField(max_length=100, allow_blank=True, required=False)