from rest_framework import serializers from .models import Article, Comment, Like, Rating, Favorite from users.serializers import UserSerializer from regions.serializers import RegionSerializer class ArticleSerializer(serializers.ModelSerializer): author = UserSerializer(read_only=True) region = RegionSerializer(read_only=True) region_id = serializers.PrimaryKeyRelatedField( queryset='regions.Region.objects.all()', source='region', write_only=True, required=False ) class Meta: model = Article fields = [ 'id', 'title', 'content', 'region', 'region_id', 'content_type', 'author', 'moderator_status', 'ai_status', 'publish_status', 'created_at', 'updated_at' ] read_only_fields = ['author', 'moderator_status', 'ai_status', 'publish_status', 'created_at', 'updated_at'] class CommentSerializer(serializers.ModelSerializer): author = UserSerializer(read_only=True) class Meta: model = Comment fields = [ 'id', 'content', 'article', 'service', 'author', 'ai_status', 'is_visible', 'created_at' ] read_only_fields = ['author', 'ai_status', 'is_visible', 'created_at'] class LikeSerializer(serializers.ModelSerializer): user = UserSerializer(read_only=True) class Meta: model = Like fields = ['id', 'user', 'article', 'service', 'created_at'] read_only_fields = ['user', 'created_at'] class RatingSerializer(serializers.ModelSerializer): user = UserSerializer(read_only=True) region = RegionSerializer(read_only=True) class Meta: model = Rating fields = ['id', 'user', 'region', 'service', 'score', 'comment', 'created_at'] read_only_fields = ['user', 'created_at'] class FavoriteSerializer(serializers.ModelSerializer): user = UserSerializer(read_only=True) region = RegionSerializer(read_only=True) class Meta: model = Favorite fields = ['id', 'user', 'region', 'service', 'created_at'] read_only_fields = ['user', 'created_at']