from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from rest_framework.decorators import api_view
from datetime import datetime
from apps.services.external_api_service import call_external_api

@api_view(['GET'])
def GetRCdetails_server1(request):
    rc = request.GET.get("rc")

    url = "https://darkxen.in/api/v3/VEHICLE/vehicle_rcpdf_verification"
    API_KEY = "7949f8fa53115c49d3c5bcd60b202c273ad217ce029c78861a1daba60f61f787"
    payload = {
        "rcno": rc,
        "apiKey": API_KEY
    }

    result = call_external_api(url, payload=payload)
    if result["status"]:
            return Response({
                "status": True,
                "data": result["data"]
            })
    else:
            return Response({
                "status": False,
                "error": result["error"]
            }, status=400) 

@api_view(['GET'])
def GetRCdetails_servergoodapi(request):
    rc = request.GET.get("rc")
    url = "https://goodapi.in/api_services/V1/vahanServices/vehicle_rc_pdf_S1.php"
    API_KEY = "f91a4efe859a8a8c5c66c3cf690e81ee2545bb9adbd553696d0601017315649c"
    payload = {
        "rcno": rc,
        "apiKey": API_KEY
    }

    result = call_external_api(url, payload=payload)
    if result["status"]:
            return Response({
                "status": True,
                "data": result["data"]
            })
    else:
            return Response({
                "status": False,
                "error": result["error"]
            }, status=400) 


@api_view(['GET'])
def GetPandetailsUsingAadhar(request):
    aadhaar_no = request.GET.get("aadhaarno") or request.data.get("aadhaarno")
    if not aadhaar_no:
        return Response({
            "status": False,
            "error": "aadhaarno parameter is required"
        }, status=400)
    url = "https://www.apizone.info/api/find_pan/aadhaar_to_pan.php"
    API_KEY = "c9984de181558314ef5451d9c2bba0"
    payload = {
        "aadhaar_no": aadhaar_no,
        "api_key": API_KEY
    }

    result = call_external_api(url, payload=payload)
    if result["status"]:
            return Response({
                "status": True,
                "data": result["data"]
            })
    else:
            return Response({
                "status": False,
                "error": result["error"]
            }, status=400) 


@api_view(['GET'])
def GetDLdetails_apizone(request):
    dl_number = request.GET.get("dl_number")
    dob = request.GET.get("dob")
    dobFormatted = datetime.strptime(dob, "%Y-%m-%d").strftime("%d-%m-%Y")
    
    url = "https://www.apizone.info/api/dl_pdf/dlprint.php"
    API_KEY = "c9984de181558314ef5451d9c2bba0"
    payload = {
        "dlno": dl_number,
        "dob":dobFormatted,
        "api_key": API_KEY
    }

    result = call_external_api(url, payload=payload)
    
    if result["status"]:
            return Response({
                "status": True,
                "data": result["data"]
            })
    else:
            return Response({
                "status": False,
                "error": result["error"]
            }, status=400) 
            
class ExternalAPI(APIView):

    def get(self, request):
     
        rc = request.query_params.get("rc")
        API_KEY = "7949f8fa53115c49d3c5bcd60b202c273ad217ce029c78861a1daba60f61f787"
        url = "https://darkxen.in/api/v3/VEHICLE/vehicle_rcpdf_verification"
       
        
        payload = {
            "rcno": rc,
            "apiKey":API_KEY
        }

        result = call_external_api(url,payload=payload)

        if result["status"]:
            return Response({
                "status": True,
                "data": result["data"]
            })
        else:
            return Response({
                "status": False,
                "error": result["error"]
            }, status=400) 