# class corsMiddleware(object):
#     def process_response(self, req, resp):
#         resp["Access-Control-Allow-Origin"] = "*"
#         return resp


# class CorsMiddleware:
#     def __init__(self, get_response):
#         self.get_response = get_response

#     def __call__(self, request):
#         response = self.get_response(request)
#         response["Access-Control-Allow-Origin"] = "*"
#         return response


# from django.http import HttpResponse

# class CorsMiddleware:
#     def __init__(self, get_response):
#         self.get_response = get_response

#     def __call__(self, request):
#         response = self.get_response(request)

#         # Allow any origin
#         response["Access-Control-Allow-Origin"] = "*"

#         # Allow specific HTTP methods including PATCH
#         response["Access-Control-Allow-Methods"] = "GET, POST, PUT, PATCH, DELETE, OPTIONS"

#         # Allow specific headers
#         response["Access-Control-Allow-Headers"] = "Content-Type, Authorization"

#         # Allow credentials if needed
#         response["Access-Control-Allow-Credentials"] = "true"

#         return response

#     def process_request(self, request):
#         """ Handle preflight OPTIONS request """
#         if request.method == "OPTIONS":
#             response = HttpResponse()
#             response["Access-Control-Allow-Origin"] = "*"
#             response["Access-Control-Allow-Methods"] = "GET, POST, PUT, PATCH, DELETE, OPTIONS"
#             response["Access-Control-Allow-Headers"] = "Content-Type, Authorization"
#             response["Access-Control-Allow-Credentials"] = "true"
#             return response
#         return None


# from django.utils.deprecation import MiddlewareMixin
# from django.http import HttpResponse

# class CorsMiddleware(MiddlewareMixin):
#     def process_request(self, request):
#         """Handle CORS preflight (OPTIONS) request"""
#         if request.method == "OPTIONS":
#             response = HttpResponse()
#             response["Access-Control-Allow-Origin"] = "*"
#             response["Access-Control-Allow-Methods"] = "GET, POST, PUT, PATCH, DELETE, OPTIONS"
#             response["Access-Control-Allow-Headers"] = "Content-Type, Authorization"
#             response["Access-Control-Allow-Credentials"] = "true"
#             return response
#         return None

#     def process_response(self, request, response):
#         """Add CORS headers to all responses"""
#         response["Access-Control-Allow-Origin"] = "*"
#         response["Access-Control-Allow-Methods"] = "GET, POST, PUT, PATCH, DELETE, OPTIONS"
#         response["Access-Control-Allow-Headers"] = "Content-Type, Authorization"
#         response["Access-Control-Allow-Credentials"] = "true"
#         return response

# from django.utils.deprecation import MiddlewareMixin
# from django.http import JsonResponse

# class CorsMiddleware(MiddlewareMixin):
#     def process_request(self, request):
#         """Handle CORS preflight (OPTIONS) request"""
#         if request.method == "OPTIONS":
#             response = JsonResponse({"message": "CORS preflight success"})
#             response["Access-Control-Allow-Origin"] = "*"
#             response["Access-Control-Allow-Methods"] = "GET, POST, PUT, PATCH, DELETE, OPTIONS"
#             response["Access-Control-Allow-Headers"] = "Content-Type, Authorization, X-Requested-With"
#             response["Access-Control-Allow-Credentials"] = "true"
#             return response
#         return None

#     def process_response(self, request, response):
#         """Add CORS headers to all responses"""
#         response["Access-Control-Allow-Origin"] = "*"
#         response["Access-Control-Allow-Methods"] = "GET, POST, PUT, PATCH, DELETE, OPTIONS"
#         response["Access-Control-Allow-Headers"] = "Content-Type, Authorization, X-Requested-With"
#         response["Access-Control-Allow-Credentials"] = "true"
#         return response


from django.utils.deprecation import MiddlewareMixin
from django.http import JsonResponse

class CorsMiddleware(MiddlewareMixin):
    def process_request(self, request):
        """Handle CORS preflight (OPTIONS) request"""
        if request.method == "OPTIONS":
            response = JsonResponse({"message": "CORS preflight success"})
            response["Access-Control-Allow-Origin"] = "http://localhost:3000"
            response["Access-Control-Allow-Methods"] = "GET, POST, PUT, PATCH, DELETE, OPTIONS"
            response["Access-Control-Allow-Headers"] = "Content-Type, Authorization, X-Requested-With, Accept"
            response["Access-Control-Allow-Credentials"] = "true"
            return response
        return None

    def process_response(self, request, response):
        """Add CORS headers to all responses"""
        response["Access-Control-Allow-Origin"] = "http://localhost:3000"
        response["Access-Control-Allow-Methods"] = "GET, POST, PUT, PATCH, DELETE, OPTIONS"
        response["Access-Control-Allow-Headers"] = "Content-Type, Authorization, X-Requested-With, Accept"
        response["Access-Control-Allow-Credentials"] = "true"
        return response
