from rest_framework import serializers from collection import models from location import models as location_models from utils.serializers import TranslatedField class CollectionBaseSerializer(serializers.ModelSerializer): """Collection base serializer""" name_translated = TranslatedField() description_translated = TranslatedField() class Meta: model = models.Collection fields = [ 'id', 'name_translated', 'description_translated', 'image_url', 'slug', ] class CollectionSerializer(CollectionBaseSerializer): """Collection serializer""" # COMMON block_size = serializers.JSONField() is_publish = serializers.BooleanField() on_top = serializers.BooleanField() slug = serializers.SlugField(allow_blank=False, required=True, max_length=50) # REQUEST start = serializers.DateTimeField(write_only=True) end = serializers.DateTimeField(write_only=True) country = serializers.PrimaryKeyRelatedField( queryset=location_models.Country.objects.all(), write_only=True) class Meta(CollectionBaseSerializer.Meta): fields = CollectionBaseSerializer.Meta.fields + [ 'start', 'end', 'is_publish', 'on_top', 'country', 'block_size', ] class GuideSerializer(serializers.ModelSerializer): """Guide serializer""" class Meta: model = models.Guide fields = [ 'id', 'name', 'start', 'end', 'parent', 'advertorials', 'collection' ]