35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
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
|