From 02c1cfaae942e14ec03da314026acb5117afe42f Mon Sep 17 00:00:00 2001 From: vickytechkey Date: Sun, 16 Aug 2026 11:08:54 +0530 Subject: [PATCH] Add delete_seller API view and URL route --- crm/urls.py | 1 + crm/views/seller_views.py | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/crm/urls.py b/crm/urls.py index 1a5520c..b7b8a3d 100644 --- a/crm/urls.py +++ b/crm/urls.py @@ -19,6 +19,7 @@ urlpatterns = [ path('sellers//suspend/', seller_views.suspend_seller, name='suspend_seller'), path('sellers//reinstate/', seller_views.reinstate_seller, name='reinstate_seller'), path('sellers//reset-password/', seller_views.reset_seller_password, name='reset_seller_password'), + path('sellers//delete/', seller_views.delete_seller, name='delete_seller'), # Customers path('customers/', customer_views.list_customers, name='list_customers'), diff --git a/crm/views/seller_views.py b/crm/views/seller_views.py index 6f1f828..bee5991 100644 --- a/crm/views/seller_views.py +++ b/crm/views/seller_views.py @@ -135,3 +135,28 @@ def reset_seller_password(request, pk): log_action(request.user, 'reset_password', seller.id, {"email": seller.email}) return Response({"message": "Password reset alert successfully dispatched"}) + +@api_view(['POST', 'DELETE']) +@permission_classes([IsCRMAdmin]) +def delete_seller(request, pk): + try: + seller = SupplierProfile.objects.get(pk=pk) + except SupplierProfile.DoesNotExist: + return Response({"detail": "Seller not found"}, status=404) + + name = seller.name + user_id = seller.user_id + + # Delete supplier profile from sellerprofile db + seller.delete() + + # Delete corresponding user from auth_user in sellerprofile db + from django.db import connections + try: + with connections['seller_db'].cursor() as cursor: + cursor.execute("DELETE FROM auth_user WHERE id = %s", [user_id]) + except Exception as e: + print("Failed to delete user record from auth_user:", e) + + log_action(request.user, 'delete_seller', pk, {"name": name}) + return Response({"message": f"Seller account '{name}' and associated user permanently removed"})