| import os |
| from twilio.rest import Client |
| from dotenv import load_dotenv |
|
|
| load_dotenv() |
|
|
| from utils.config_loader import get_setting |
|
|
| load_dotenv() |
|
|
| |
|
|
| def send_sms(to: str, body: str) -> str: |
| account_sid = get_setting("TWILIO_ACCOUNT_SID") |
| auth_token = get_setting("TWILIO_AUTH_TOKEN") |
| twilio_number = get_setting("TWILIO_NUMBER") |
|
|
| if not all([account_sid, auth_token, twilio_number]): |
| print("Twilio credentials are not set.") |
| return "" |
|
|
| client = Client(account_sid, auth_token) |
| message = client.messages.create( |
| body=body, |
| from_=twilio_number, |
| to=to |
| ) |
| return message.sid |
|
|
| |
|
|
| ACCOUNT_VERIFICATION_SMS_TEMPLATE = ( |
| "Welcome to the AI-Powered Medicine Dispenser System, {full_name}! " |
| "Please verify your account using this link: {verification_link}" |
| ) |
|
|
| MEDICINE_ADDED_SMS_TEMPLATE = ( |
| "Hi {full_name}, your medicine '{medicine_name}' (Dosage: {dosage}, Time: {time}) has been added to your schedule." |
| ) |
|
|
| MEDICINE_REMINDER_SMS_TEMPLATE = ( |
| "Reminder: It's time to take your medicine '{medicine_name}' (Dosage: {dosage}) at {time}." |
| ) |
|
|
| MEDICINE_MISSED_SMS_TEMPLATE = ( |
| "ALERT: You missed your medicine '{medicine_name}' (Dosage: {dosage}) scheduled at {time}." |
| ) |
|
|
| MEDICINE_UPDATED_SMS_TEMPLATE = ( |
| "Hi {full_name}, your medicine '{medicine_name}' (Dosage: {dosage}, Time: {time}) has been UPDATED in your schedule." |
| ) |
|
|
| def send_account_verification_sms(to: str, full_name: str, verification_link: str) -> str: |
| body = ACCOUNT_VERIFICATION_SMS_TEMPLATE.format(full_name=full_name, verification_link=verification_link) |
| return send_sms(to, body) |
|
|
| def send_medicine_added_sms(to: str, full_name: str, medicine_name: str, dosage: str, time: str) -> str: |
| body = MEDICINE_ADDED_SMS_TEMPLATE.format( |
| full_name=full_name, medicine_name=medicine_name, dosage=dosage, time=time |
| ) |
| return send_sms(to, body) |
|
|
| def send_medicine_reminder_sms(to: str, medicine_name: str, dosage: str, time: str) -> str: |
| body = MEDICINE_REMINDER_SMS_TEMPLATE.format( |
| medicine_name=medicine_name, dosage=dosage, time=time |
| ) |
| return send_sms(to, body) |
|
|
| def send_medicine_missed_sms(to: str, full_name: str, medicine_name: str, dosage: str, time: str) -> str: |
| body = MEDICINE_MISSED_SMS_TEMPLATE.format( |
| full_name=full_name, medicine_name=medicine_name, dosage=dosage, time=time |
| ) |
| return send_sms(to, body) |
|
|
| def send_medicine_updated_sms(to: str, full_name: str, medicine_name: str, dosage: str, time: str) -> str: |
| body = MEDICINE_UPDATED_SMS_TEMPLATE.format( |
| full_name=full_name, medicine_name=medicine_name, dosage=dosage, time=time |
| ) |
| return send_sms(to, body) |
|
|
| |
| PREORDER_CONFIRMATION_SMS_TEMPLATE = ( |
| "Dear {full_name}, your pre-order request has been received. Our company will contact you soon. - Medicine Dispenser Team" |
| ) |
|
|
| def send_preorder_confirmation_sms(to: str, full_name: str) -> str: |
| body = PREORDER_CONFIRMATION_SMS_TEMPLATE.format(full_name=full_name) |
| return send_sms(to, body) |
|
|