# coding=utf-8 from rest_framework import serializers from .models import User class UserLoginSerializer(serializers.Serializer): username = serializers.CharField(max_length=30) password = serializers.CharField(max_length=30) captcha = serializers.CharField(min_length=4, max_length=4) class UsernameCheckSerializer(serializers.Serializer): username = serializers.CharField(max_length=30) class EmailCheckSerializer(serializers.Serializer): email = serializers.EmailField(max_length=254) class UserRegisterSerializer(serializers.Serializer): username = serializers.CharField(max_length=30) real_name = serializers.CharField(max_length=30) password = serializers.CharField(max_length=30, min_length=6) email = serializers.EmailField(max_length=254) captcha = serializers.CharField(max_length=4, min_length=4) class UserChangePasswordSerializer(serializers.Serializer): old_password = serializers.CharField() new_password = serializers.CharField(max_length=30, min_length=6) captcha = serializers.CharField(max_length=4, min_length=4) class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = ["id", "username", "real_name", "email", "admin_type", "create_time", "last_login"] class EditUserSerializer(serializers.Serializer): id = serializers.IntegerField() username = serializers.CharField(max_length=30) real_name = serializers.CharField(max_length=30) password = serializers.CharField(max_length=30, min_length=6, required=False, default=None) email = serializers.EmailField(max_length=254) admin_type = serializers.IntegerField(default=0) class ApplyResetPasswordSerializer(serializers.Serializer): username = serializers.CharField(max_length=30) email = serializers.EmailField() captcha = serializers.CharField(max_length=4, min_length=4) class ResetPasswordSerializer(serializers.Serializer): token = serializers.CharField(min_length=1, max_length=40) password = serializers.CharField(min_length=6, max_length=30) captcha = serializers.CharField(max_length=4, min_length=4) class SSOSerializer(serializers.Serializer): token = serializers.CharField(max_length=40) class EditUserProfileSerializer(serializers.Serializer): avatar = serializers.CharField(max_length=50, required=False, default=None) phone = serializers.CharField(min_length=11, max_length=11, required=False, allow_blank=True, default=None) blog = serializers.URLField(required=False, allow_blank=True, default=None) mood = serializers.CharField(max_length=60, required=False, allow_blank=True, default=None) hduoj_username = serializers.CharField(max_length=30, required=False, allow_blank=True, default=None) bestcoder_username = serializers.CharField(max_length=30, required=False, allow_blank=True, default=None) codeforces_username = serializers.CharField(max_length=30, required=False, allow_blank=True, default=None)