import africastalking
import logging
from django.conf import settings

logger = logging.getLogger(__name__)


def init_africastalking():
    africastalking.initialize(
        username=settings.AT_USERNAME,
        api_key=settings.AT_API_KEY,
    )
    return africastalking.SMS


def send_contribution_sms(member, amount, category):
    """
    Send thank you SMS after a successful contribution.
    Called immediately after STK or C2B callback succeeds.
    """
    if not member or not member.phone:
        logger.warning("SMS skipped — no member or phone")
        return False

    try:
        sms = init_africastalking()
        phone = member.normalized_phone()

        message = (
            f"Dear {member.full_name}, thank you for your "
            f"{category} of KSh {amount:,.0f}. "
            f"It has been received. God bless you! "
            f"- {settings.CHURCH_NAME}"
        )

        response = sms.send(
            message=message,
            recipients=[f"+{phone}"],
            sender_id=settings.AT_SENDER_ID,
        )

        logger.info(f"SMS sent to {phone}: {response}")
        return True

    except Exception as e:
        logger.error(f"SMS failed for {member.full_name}: {str(e)}")
        return False