"""Establishment serializers.""" from rest_framework import serializers from establishment import models from location.serializers import AddressSerializer from main.serializers import MetaDataContentSerializer, AwardSerializer from timetable.models import Timetable class EstablishmentTypeSerializer(serializers.ModelSerializer): """Serializer for EstablishmentType model.""" name_translated = serializers.CharField(allow_null=True) class Meta: """Meta class.""" model = models.EstablishmentType fields = ('id', 'name_translated') class EstablishmentSubTypeSerializer(serializers.ModelSerializer): """Serializer for EstablishmentSubType models.""" name_translated = serializers.CharField(allow_null=True) class Meta: """Meta class.""" model = models.EstablishmentSubType fields = ('id', 'name_translated') class EstablishmentScheduleSerializer(serializers.ModelSerializer): """Serializer for Establishment model.""" weekday = serializers.CharField(source='get_weekday_display') class Meta: """Meta class.""" model = Timetable fields = ( 'weekday', 'lunch_start', 'lunch_end', 'dinner_start', 'dinner_end', ) class EstablishmentEmployeeSerializer(serializers.ModelSerializer): """Serializer for actual employees.""" id = serializers.IntegerField(source='employee.id') name = serializers.CharField(source='employee.name') position_translated = serializers.CharField(source='position.name_translated') class Meta: """Meta class.""" model = models.Employee fields = ('id', 'name', 'position_translated') class EstablishmentSerializer(serializers.ModelSerializer): """Serializer for Establishment model.""" name_translated = serializers.CharField(allow_null=True) description_translated = serializers.CharField(allow_null=True) type = EstablishmentTypeSerializer(source='establishment_type') subtypes = EstablishmentSubTypeSerializer(many=True) address = AddressSerializer() tags = MetaDataContentSerializer(many=True) awards = AwardSerializer(many=True) schedule = EstablishmentScheduleSerializer(source='schedule.schedule', many=True, allow_null=True) employees = EstablishmentEmployeeSerializer(source='actual_establishment_employees', many=True) class Meta: """Meta class.""" model = models.Establishment fields = ( 'id', 'name_translated', 'description_translated', 'public_mark', 'price_level', 'toque_number', 'price_level', 'type', 'subtypes', 'image', 'address', 'tags', 'awards', 'schedule', 'employees', )