96 lines
2.4 KiB
Python
96 lines
2.4 KiB
Python
from rest_framework import serializers
|
|
|
|
from establishment import models
|
|
from establishment.serializers import (
|
|
EstablishmentBaseSerializer, PlateSerializer, ContactEmailsSerializer,
|
|
ContactPhonesSerializer, SocialNetworkRelatedSerializers)
|
|
from main.models import Currency
|
|
|
|
|
|
class EstablishmentListCreateSerializer(EstablishmentBaseSerializer):
|
|
"""Establishment create serializer"""
|
|
|
|
type_id = serializers.PrimaryKeyRelatedField(
|
|
source='establishment_type',
|
|
queryset=models.EstablishmentType.objects.all(), write_only=True
|
|
)
|
|
phones = ContactPhonesSerializer(read_only=True, many=True, )
|
|
emails = ContactEmailsSerializer(read_only=True, many=True, )
|
|
socials = SocialNetworkRelatedSerializers(read_only=True, many=True, )
|
|
|
|
class Meta:
|
|
model = models.Establishment
|
|
fields = [
|
|
'id',
|
|
'name',
|
|
'website',
|
|
'phones',
|
|
'emails',
|
|
'price_level',
|
|
'toque_number',
|
|
'type_id',
|
|
'type',
|
|
'socials'
|
|
]
|
|
|
|
|
|
class SocialNetworkSerializers(serializers.ModelSerializer):
|
|
"""Social network serializers."""
|
|
class Meta:
|
|
model = models.SocialNetwork
|
|
fields = [
|
|
'id',
|
|
'establishment',
|
|
'title',
|
|
'url',
|
|
]
|
|
|
|
|
|
class PlatesSerializers(PlateSerializer):
|
|
"""Social network serializers."""
|
|
name = serializers.JSONField()
|
|
currency_id = serializers.PrimaryKeyRelatedField(
|
|
source='currency',
|
|
queryset=Currency.objects.all(), write_only=True
|
|
)
|
|
|
|
class Meta:
|
|
model = models.Plate
|
|
fields = PlateSerializer.Meta.fields + [
|
|
'name',
|
|
'currency_id',
|
|
'menu'
|
|
]
|
|
|
|
|
|
class ContactPhoneBackSerializers(PlateSerializer):
|
|
"""Social network serializers."""
|
|
class Meta:
|
|
model = models.ContactPhone
|
|
fields = [
|
|
'id',
|
|
'establishment',
|
|
'phone'
|
|
]
|
|
|
|
|
|
class ContactEmailBackSerializers(PlateSerializer):
|
|
"""Social network serializers."""
|
|
class Meta:
|
|
model = models.ContactEmail
|
|
fields = [
|
|
'id',
|
|
'establishment',
|
|
'email'
|
|
]
|
|
|
|
|
|
class EmployeeBackSerializers(serializers.ModelSerializer):
|
|
"""Social network serializers."""
|
|
class Meta:
|
|
model = models.Employee
|
|
fields = [
|
|
'id',
|
|
'user',
|
|
'name'
|
|
] |