from rest_framework import serializers from .models import FeaturedService from users.serializers import UserSerializer from regions.serializers import RegionSerializer class FeaturedServiceSerializer(serializers.ModelSerializer): submitter = 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 = FeaturedService fields = [ 'id', 'name', 'description', 'region', 'region_id', 'category', 'address', 'contact', 'website', 'price_range', 'opening_hours', 'submitter', 'moderator_status', 'ai_status', 'publish_status', 'view_count', 'rating_average', 'rating_count', 'created_at', 'updated_at' ] read_only_fields = [ 'submitter', 'moderator_status', 'ai_status', 'publish_status', 'view_count', 'rating_average', 'rating_count', 'created_at', 'updated_at' ] def create(self, validated_data): service = super().create(validated_data) service.submit_for_moderator_review() return service