add: add three new apis for delete

This commit is contained in:
behruz-dev
2025-09-17 14:47:57 +05:00
parent f1fd620061
commit 372a0273ea
4 changed files with 42 additions and 3 deletions

View File

@@ -15,6 +15,7 @@ urlpatterns = [
path("<uuid:order_id>/accept/", order_views.OrderChangeStatusAcceptedApiView.as_view()), path("<uuid:order_id>/accept/", order_views.OrderChangeStatusAcceptedApiView.as_view()),
path("accepted/list/", order_views.OrderAcceptApiView.as_view()), path("accepted/list/", order_views.OrderAcceptApiView.as_view()),
path('<uuid:order_id>/offers/', order_views.OrderOfferListApiView.as_view()), path('<uuid:order_id>/offers/', order_views.OrderOfferListApiView.as_view()),
path('bulk-delete/', order_views.DeleteMultipleOrderApiView.as_view()),
] ]
)), )),
path('offer/', include( path('offer/', include(
@@ -23,6 +24,7 @@ urlpatterns = [
path('list/', offer_views.OfferListApiView.as_view()), path('list/', offer_views.OfferListApiView.as_view()),
path('<uuid:id>/delete/', offer_views.OfferDeleteApiView.as_view()), path('<uuid:id>/delete/', offer_views.OfferDeleteApiView.as_view()),
path('<uuid:id>/update/', offer_views.OfferUpdateApiView.as_view()), path('<uuid:id>/update/', offer_views.OfferUpdateApiView.as_view()),
path('bulk-delete/', offer_views.DeleteMultipleOfferApiView.as_view()),
] ]
)), )),
path('party/', include( path('party/', include(
@@ -39,6 +41,7 @@ urlpatterns = [
path('<uuid:party_id>/is_made/', party_views.PartyChangeStatusToIsMadeApiView.as_view()), path('<uuid:party_id>/is_made/', party_views.PartyChangeStatusToIsMadeApiView.as_view()),
path('pay/', party_views.PartyPaymentApiView.as_view()), path('pay/', party_views.PartyPaymentApiView.as_view()),
path('statistics/', party_views.PartyStatisticsApiView.as_view()), path('statistics/', party_views.PartyStatisticsApiView.as_view()),
path('bulk-delete/', party_views.DeleteMultiplePartyApiView.as_view()),
] ]
)), )),
] ]

View File

@@ -88,4 +88,16 @@ class OfferDeleteApiView(views.APIView):
def delete(self, request, id): def delete(self, request, id):
offer = get_object_or_404(Offer, id=id) offer = get_object_or_404(Offer, id=id)
offer.delete() offer.delete()
return Response({'success': True}, status=204) return Response({'success': True}, status=204)
class DeleteMultipleOfferApiView(views.APIView):
permission_classes = [HasRolePermission]
def delete(self, request):
ids = request.data.get("offer_ids", [])
if not ids:
return Response({"detail": "offer_ids kerak"}, status=400)
deleted_count, _ = Offer.objects.filter(id__in=ids).delete()
return Response({"deleted": deleted_count}, status=200)

View File

@@ -99,4 +99,16 @@ class OrderOfferListApiView(generics.GenericAPIView):
def get(self, request, order_id): def get(self, request, order_id):
offers = self.get_queryset().select_related("order").filter(order_id=order_id) offers = self.get_queryset().select_related("order").filter(order_id=order_id)
serializer = self.serializer_class(offers, many=True) serializer = self.serializer_class(offers, many=True)
return Response(serializer.data, status=200) return Response(serializer.data, status=200)
class DeleteMultipleOrderApiView(views.APIView):
permission_classes = [HasRolePermission]
def delete(self, request):
ids = request.data.get("order_ids", [])
if not ids:
return Response({"detail": "order_ids kerak"}, status=status.HTTP_400_BAD_REQUEST)
deleted_count, _ = Order.objects.filter(id__in=ids).delete()
return Response({"deleted": deleted_count}, status=status.HTTP_200_OK)

View File

@@ -224,4 +224,16 @@ class PartyStatisticsApiView(generics.GenericAPIView):
'usd': usd, 'usd': usd,
'uzs': uzs 'uzs': uzs
} }
return Response(res, status=200) return Response(res, status=200)
class DeleteMultiplePartyApiView(views.APIView):
permission_classes = [HasRolePermission]
def delete(self, request):
ids = request.data.get("party_ids", [])
if not ids:
return Response({"detail": "party_ids kerak"}, status=400)
deleted_count, _ = Party.objects.filter(id__in=ids).delete()
return Response({"deleted": deleted_count}, status=200)