from rest_framework import serializers from booking.models import models class BookingSerializer(serializers.ModelSerializer): class Meta: model = models.Booking fields = ( 'id', 'type', ) class PendingBookingSerializer(serializers.ModelSerializer): restaurant_id = serializers.IntegerField(min_value=0, ) id = serializers.ReadOnlyField() class Meta: model = models.Booking fields = ( 'id', 'type', 'restaurant_id', 'pending_booking_id', 'user', ) class UpdateBookingSerializer(serializers.ModelSerializer): id = serializers.ReadOnlyField() class Meta: model = models.Booking fields = ('booking_id', 'id') class GetBookingSerializer(serializers.ModelSerializer): details = serializers.SerializerMethodField() def get_details(self, obj): booking = self.instance service = booking.get_service_by_type(booking.type) return service.get_booking_details(booking.booking_id) class Meta: model = models.Booking fields = '__all__'