24 lines
937 B
Python
24 lines
937 B
Python
from rest_framework import permissions, viewsets
|
|
|
|
from apps.bookings.models import Booking
|
|
from apps.bookings.serializers import BookingCreateSerializer, BookingSerializer
|
|
|
|
|
|
class BookingViewSet(viewsets.ModelViewSet):
|
|
permission_classes = [permissions.IsAuthenticated]
|
|
|
|
def get_queryset(self):
|
|
user = self.request.user
|
|
if getattr(user, "is_superuser", False) or user.role == "admin":
|
|
return Booking.objects.all().order_by("-created_at")
|
|
if user.role == "manager":
|
|
return Booking.objects.filter(salon__owner=user).order_by("-created_at")
|
|
if user.role == "staff":
|
|
return Booking.objects.filter(staff__user=user).order_by("-created_at")
|
|
return Booking.objects.filter(customer=user).order_by("-created_at")
|
|
|
|
def get_serializer_class(self):
|
|
if self.action == "create":
|
|
return BookingCreateSerializer
|
|
return BookingSerializer
|