효율적인 화실 운영을 위한 자동화 시도
최
최슬기
import os
import hmac
import hashlib
import time
import uuid
import requests
from dotenv import load_dotenv
load_dotenv()
STUDIO_NAME = os.environ["STUDIO_NAME"]
BANK_NAME = os.environ["BANK_NAME"]
BANK_ACCOUNT = os.environ["BANK_ACCOUNT"]
BANK_HOLDER = os.environ["BANK_HOLDER"]
API_KEY = os.environ["COOLSMS_API_KEY"]
API_SECRET = os.environ["COOLSMS_API_SECRET"]
SENDER_PHONE = os.environ["SENDER_PHONE"]
def _auth_header() -> dict:
timestamp = str(int(time.time()))
salt = uuid.uuid4().hex[:8]
signature = hmac.new(
API_SECRET.encode(),
(timestamp + salt).encode(),
hashlib.sha256,
).hexdigest()
return {
"Authorization": (
f"HMAC-SHA256 apiKey={API_KEY},"
f" date={timestamp},"
f" salt={salt},"
f" signature={signature}"
),
"Content-Type": "application/json",
}
def send_sms(to_phone: str, message: str) -> dict:
payload = {
"message": {
"to": to_phone,
"from": SENDER_PHONE,
"text": message,
}
}
response = requests.post(
"https://api.coolsms.co.kr/messages/v4/send",
headers=_auth_header(),
json=payload,
timeout=10,
)
response.raise_for_status()
return response.json()
def confirmation_message(customer_name: str, date: str, time_slot: str) -> str:
return (
f"[{STUDIO_NAME}] 예약 확인 안내\n\n"
f"안녕하세요, {customer_name}님!\n"
f"{date} {time_slot} 원데이 클래스 예약이 접수되었습니다.\n\n"
f"─────────────────\n"
f"예약금 1만원을 아래 계좌로 입금해 주세요.\n\n"
f"은행: {BANK_NAME}\n"
f"계좌번호: {BANK_ACCOUNT}\n"
f"예금주: {BANK_HOLDER}\n\n"
f"◎ 예약금 미입금 시 예약이 자동 취소됩니다.\n"
f"◎ 당일 취소 및 노쇼의 경우 예약금은 환불되지 않습니다.\n"
f"─────────────────\n"
f"궁금한 점은 언제든지 문의해 주세요.\n"
f"{STUDIO_NAME} 드림"
)
def deposit_confirmed_message(customer_name: str, date: str, time_slot: str) -> str:
return (
f"[{STUDIO_NAME}] 예약이 확정되었습니다 :)\n\n"
f"{customer_name}님, 예약금 입금이 확인되었습니다.\n"
f"{date} {time_slot} 원데이 클래스가 확정되었습니다.\n\n"
f"당일 편한 복장으로 오시면 됩니다.\n"
f"궁금한 점은 언제든지 문의해 주세요.\n\n"
f"{STUDIO_NAME} 드림"
)
def reminder_message(customer_name: str, date: str, time_slot: str) -> str:
return (
f"[{STUDIO_NAME}] 내일 수업 안내\n\n"
f"{customer_name}님, 안녕하세요!\n"
f"내일 {date} {time_slot} 원데이 클래스가 예정되어 있습니다.\n\n"
f"편한 복장으로 오시면 됩니다.\n"
f"참석이 어려우신 경우 미리 알려주시면 감사하겠습니다.\n\n"
f"{STUDIO_NAME} 드림"
)


