import requests
import json
from django.conf import settings



def send_fast2sms_otp(mobile_number, otp):
    """Send OTP using Fast2SMS API"""

    try:
        FAST2SMS_API_KEY = settings.FAST2SMS_API_KEY
        url = settings.FAST2SMS_URL

        message = f"Your OTP is {otp}"

        payload = {
            "sender_id": "TXTIND",
            "message": message,
            "language": "english",
            "route": "v3",
            "numbers": mobile_number,
            "flash": "1"
        }

        headers = {
            "authorization": FAST2SMS_API_KEY,
            "Content-Type": "application/x-www-form-urlencoded",
        }

        response = requests.post(url, data=payload, headers=headers)
        return response.json()
    except Exception as e:
        raise Exception(f"Error sending OTP via Fast2SMS: {str(e)}")



# def send_fast2sms_otp(mobile_number, otp):
#     FAST2SMS_API_KEY = settings.FAST2SMS_API_KEY
#     url = "https://www.fast2sms.com/dev/OTP"

#     payload = {
#         "authorization": FAST2SMS_API_KEY,
#         "variables_values": otp,
#         "route": "otp",
#         "numbers": mobile_number,
#         "flash": "1"
#     }

#     headers = {
#         "Content-Type": "application/x-www-form-urlencoded"
#     }
#     try:
#         response = requests.post(url, data=payload, headers=headers)
#         print(f"Fast2SMS response status code: {response.status_code}")
#     except Exception as e:
#         print(f"Error sending OTP via Fast2SMS: {e}")
#         return None

#     try:
#         return response.json()   # Only if valid JSON
#     except ValueError:
#         # Fallback: return plain text if not JSON
#         return {"error": "Non-JSON response"}
