import logging
from apps.calls.tasks 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)
        # send_sms_task.apply_async(args=[to_number, message], countdown=5)

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