Files
gogo-telefon/gogo/sms/templates.py

38 lines
1.3 KiB
Python
Raw Normal View History

"""Per-tenant SMS templates with safe Bosnian defaults (§5.5).
Tenant overrides live in tenants.sms_templates (only overridden keys stored).
Placeholders are .format()-style; unknown placeholders are left intact.
"""
from __future__ import annotations
from gogo.models import Tenant
DEFAULT_TEMPLATES: dict[str, str] = {
"missed_call": (
"Poštovani, dobili ste {salon}. Možete zakazati i putem poruke ili chata: {link}. "
"Nazvaćemo vas ili nas pozovite ponovo."
),
"request_received": (
"Primili smo vaš zahtjev za termin. Javićemo vam potvrdu u najkraćem roku. — {salon}"
),
"confirmation": "Potvrđen termin: {usluga}, {dan} {datum} u {vrijeme}h — {salon}.",
"rejection": "{salon}: nažalost traženi termin nije moguć. Molimo pozovite nas da dogovorimo drugi.",
"expiry": (
"{salon}: nismo uspjeli potvrditi vaš zahtjev za termin. "
"Molimo pozovite nas ponovo da dogovorimo termin."
),
}
class _SafeDict(dict):
def __missing__(self, key: str) -> str:
return "{" + key + "}"
def render_sms(tenant: Tenant, kind: str, **params: str) -> str:
templates = {**DEFAULT_TEMPLATES, **(tenant.sms_templates or {})}
template = templates[kind]
params.setdefault("salon", tenant.name)
return template.format_map(_SafeDict(params))