diff --git a/apps/establishment/serializers/back.py b/apps/establishment/serializers/back.py index 95b1050f..4729fe06 100644 --- a/apps/establishment/serializers/back.py +++ b/apps/establishment/serializers/back.py @@ -12,8 +12,9 @@ from location.models import Address from location.serializers import AddressDetailSerializer, TranslatedField from main.models import Currency from main.serializers import AwardSerializer +from timetable.serialziers import ScheduleRUDSerializer from utils.decorators import with_base_attributes -from utils.serializers import ImageBaseSerializer, TimeZoneChoiceField +from utils.serializers import ImageBaseSerializer, ProjectModelSerializer, TimeZoneChoiceField def phones_handler(phones_list, establishment): @@ -544,3 +545,54 @@ class EstablishmentEmployeeListSerializer(serializers.ModelSerializer): 'start', 'end', ] + + +class _PlateSerializer(ProjectModelSerializer): + name_translated = TranslatedField() + + class Meta: + model = models.Plate + fields = [ + 'name_translated', + 'price', + ] + + +class MenuDishesSerializer(ProjectModelSerializer): + """for dessert, main_course and starter category""" + + schedule = ScheduleRUDSerializer(many=True, allow_null=True) + plates = _PlateSerializer(read_only=True, many=True, source='plate_set', allow_null=True) + category_translated = serializers.CharField(read_only=True) + last_update = serializers.DateTimeField(source='created') + + class Meta: + model = models.Menu + fields = [ + 'id', + 'category', + 'category_translated', + 'establishment', + 'is_drinks_included', + 'schedule', + 'plates', + 'last_update', + ] + + +class MenuDishesRUDSerializers(ProjectModelSerializer): + """for dessert, main_course and starter category""" + + plates = _PlateSerializer(read_only=True, many=True, source='plate_set', allow_null=True) + schedule = ScheduleRUDSerializer(read_only=True, many=True, allow_null=True) + + class Meta: + model = models.Menu + fields = [ + 'id', + 'category', + 'plates', + 'establishment', + 'is_drinks_included', + 'schedule', + ]