import logging

from apps.calls.tasks.send_sms_task import send_sms_task

logger = logging.getLogger(__name__)


class SmsService:
    """
    Sends SMS via Twilio.
    Supports safe execution and logs all errors.
    """

    @staticmethod
    def send_sms(to_number: str, message: str) -> bool:
        """
        Dispatch SMS sending to Celery task.
        Returns immediately (async).
        """

        if not to_number:
            logger.error("SMS enqueuing failed: no destination number provided.")
            return False

        # Trigger Celery async
        send_sms_task.delay(to_number, message)

        logger.info(f"SMS queued for sending to {to_number}")
        return True
