32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
from rest_framework import serializers
|
|
from .models import User
|
|
|
|
|
|
class UserSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = User
|
|
fields = ["id", "email", "full_name", "company_name", "role", "is_active", "created_at"]
|
|
read_only_fields = ["id", "created_at"]
|
|
|
|
|
|
class UserDetailSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = User
|
|
fields = ["id", "email", "full_name", "company_name", "role", "stripe_customer_id", "is_active", "created_at", "updated_at"]
|
|
read_only_fields = ["id", "created_at", "updated_at"]
|
|
|
|
|
|
class UserCreateSerializer(serializers.ModelSerializer):
|
|
password = serializers.CharField(write_only=True, required=False)
|
|
|
|
class Meta:
|
|
model = User
|
|
fields = ["email", "full_name", "company_name", "role", "password"]
|
|
|
|
def create(self, validated_data):
|
|
password = validated_data.pop("password", None)
|
|
user = User.objects.create_user(**validated_data)
|
|
if password:
|
|
user.set_password(password)
|
|
user.save()
|
|
return user
|