Files
simple-travel-backend/core/apps/tickets/views/tickets.py

47 lines
1.6 KiB
Python

from django_core.mixins import BaseViewSetMixin
from drf_spectacular.utils import extend_schema
from rest_framework.permissions import AllowAny
from rest_framework.viewsets import ReadOnlyModelViewSet
from django_filters.rest_framework import DjangoFilterBackend
from core.apps.tickets.filters import TicketsFilter
from core.apps.tickets.models import TicketorderModel, TicketsModel
from core.apps.tickets.serializers.tickets import (
CreateTicketorderSerializer,
CreateTicketsSerializer,
ListTicketorderSerializer,
ListTicketsSerializer,
RetrieveTicketorderSerializer,
RetrieveTicketsSerializer,
)
@extend_schema(tags=["tickets"])
class TicketsView(BaseViewSetMixin, ReadOnlyModelViewSet):
queryset = TicketsModel.objects.all().order_by("-id")
serializer_class = ListTicketsSerializer
filterset_class = TicketsFilter
filter_backends = [DjangoFilterBackend]
permission_classes = [AllowAny]
action_permission_classes = {}
action_serializer_class = {
"list": ListTicketsSerializer,
"retrieve": RetrieveTicketsSerializer,
"create": CreateTicketsSerializer,
}
@extend_schema(tags=["ticketorder"])
class TicketorderView(BaseViewSetMixin, ReadOnlyModelViewSet):
queryset = TicketorderModel.objects.all()
serializer_class = ListTicketorderSerializer
permission_classes = [AllowAny]
action_permission_classes = {}
action_serializer_class = {
"list": ListTicketorderSerializer,
"retrieve": RetrieveTicketorderSerializer,
"create": CreateTicketorderSerializer,
}