Booking lifecycle notifications and status updates
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
from rest_framework import permissions, viewsets
|
||||
|
||||
from apps.bookings.models import Booking
|
||||
from apps.bookings.models import Booking, BookingStatus
|
||||
from apps.bookings.serializers import BookingCreateSerializer, BookingSerializer
|
||||
from apps.notifications.models import NotificationEvent
|
||||
from apps.notifications.services import notify_booking_lifecycle, notify_on_status_change
|
||||
|
||||
|
||||
class BookingViewSet(viewsets.ModelViewSet):
|
||||
@@ -21,3 +23,12 @@ class BookingViewSet(viewsets.ModelViewSet):
|
||||
if self.action == "create":
|
||||
return BookingCreateSerializer
|
||||
return BookingSerializer
|
||||
|
||||
def perform_create(self, serializer):
|
||||
booking = serializer.save()
|
||||
notify_booking_lifecycle(booking, NotificationEvent.BOOKING_CREATED)
|
||||
|
||||
def perform_update(self, serializer):
|
||||
previous_status = self.get_object().status
|
||||
booking = serializer.save()
|
||||
notify_on_status_change(booking, previous_status)
|
||||
|
||||
Reference in New Issue
Block a user