import httpx
from .models import WablasConfiguration

def send_whatsapp_message(phone_number, message):
    """
    Sends a WhatsApp message using the Wablas API.
    """
    try:
        settings = WablasConfiguration.objects.first()
        if not settings or not settings.api_token:
            print("Wablas settings not configured.")
            return False
        
        # Wablas API usually takes: phone, message
        # And Authorization header.
        
        headers = {
            "Authorization": settings.api_token,
        }
        
        # Depending on the specific Wablas endpoint version, payload might differ.
        # Common v2/v3 payload:
        payload = {
            "phone": phone_number,
            "message": message,
        }
        
        # If secret is used, sometimes it's passed in body
        if settings.secret_key:
             payload["secret"] = settings.secret_key

        # Using a timeout to prevent hanging
        response = httpx.post(settings.api_url, data=payload, headers=headers, timeout=10)
        
        if response.status_code >= 200 and response.status_code < 300:
            print(f"WhatsApp message sent to {phone_number}: {response.json()}")
            return True
        else:
            print(f"Failed to send WhatsApp message. Status: {response.status_code}, Body: {response.text}")
            return False

    except Exception as e:
        print(f"Error sending WhatsApp message: {e}")
        return False
