100 lines
3.0 KiB
Python
100 lines
3.0 KiB
Python
"""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',
|
|
)
|