2026-04-09 12:06:14 +00:00
|
|
|
from rest_framework import serializers
|
|
|
|
|
from .models import User
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserSerializer(serializers.ModelSerializer):
|
2026-04-09 13:42:02 +00:00
|
|
|
"""Serializer for User model (basic info)."""
|
2026-04-09 12:06:14 +00:00
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
model = User
|
2026-04-09 13:42:02 +00:00
|
|
|
fields = ('id', 'username', 'email', 'first_name', 'last_name', 'avatar', 'role', 'status')
|
|
|
|
|
read_only_fields = ('id', 'role', 'status')
|
2026-04-09 12:06:14 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserDetailSerializer(serializers.ModelSerializer):
|
|
|
|
|
"""Detailed serializer for User model."""
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
model = User
|
|
|
|
|
fields = '__all__'
|
2026-04-09 13:42:02 +00:00
|
|
|
read_only_fields = ('id', 'date_joined', 'last_login')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserUpdateSerializer(serializers.ModelSerializer):
|
|
|
|
|
"""Serializer for updating user profile."""
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
model = User
|
|
|
|
|
fields = ('first_name', 'last_name', 'avatar')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserStatsSerializer(serializers.Serializer):
|
|
|
|
|
"""Serializer for user statistics."""
|
|
|
|
|
articles_count = serializers.IntegerField()
|
|
|
|
|
services_count = serializers.IntegerField()
|
|
|
|
|
comments_count = serializers.IntegerField()
|
|
|
|
|
likes_count = serializers.IntegerField()
|
|
|
|
|
favorites_count = serializers.IntegerField()
|
|
|
|
|
ratings_count = serializers.IntegerField()
|