Update guest link
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
dvirlabs 2026-05-13 10:38:38 +03:00
parent f2c9c05011
commit e4fb9cf62f
3 changed files with 43 additions and 19 deletions

View File

@ -4,33 +4,42 @@
"language_code": "he",
"friendly_name": "wedding_invitation_by_vered",
"description": "This template design be Vered",
"header_type": "TEXT",
"header_text": "",
"body_text": "היי {{1}},\nאנחנו שמחים ומתרגשים להזמין אותך לחתונה שלנו 🤍🥂\n\nנשמח מאוד לראותכם ביום {{2}} ה-{{3}} ב\"{{4}}\", {{5}}.\n\n{{6}} קבלת פנים 🍸\n{{7}} חופה 🤵🏻💍👰🏻‍♀️\n{{8}} ארוחה וריקודים 🕺🏻💃🏻\n\nמתרגשים לחגוג איתכם,\n{{9}} ו{{10}}\n👰🏻🤍🤵🏻♂",
"header_params": [],
"body_text": "היי {{1}},\nאנחנו שמחים ומתרגשים להזמין אותך לחתונה שלנו 🤍🥂\n\nנשמח מאוד לראותכם ביום {{2}} ה-{{3}} ב\"{{4}}\", {{5}}.\n\n{{6}} קבלת פנים 🍸\n{{7}} חופה 🤵🏻💍👰🏻‍♀️\n{{8}} ארוחה וריקודים 🕺🏻💃🏻\n\nמתרגשים לחגוג איתכם,\n{{9}} ו{{10}}\n👰🏻🤍🤵🏻♂",
"body_params": [
"שם האורח",
"יום",
"תאריך",
"מיקום",
"עיר",
"שעת קבלת פנים",
"שעת חופה",
"שעת ארוחה וריקודים",
"שם הכלה",
"שם החתן"
"contact_name",
"event_date",
"event_date_day",
"venue",
"location",
"reception_time",
"ceremony_time",
"dinner_time",
"bride_name",
"groom_name"
],
"button_type": "URL",
"button_url": "https://invy.dvirlabs.com/guest/{{1}}",
"button_text": "הצבע על הזמנה",
"button_param_key": "event_id",
"fallbacks": {
"contact_name": "דביר",
"groom_name": "דביר",
"bride_name": "ורד",
"venue": "אולם הגן",
"contact_name": "חבר",
"event_date": "15/06",
"event_time": "18:30",
"guest_link": "https://invy.dvirlabs.com/guest"
"event_date_day": "17",
"venue": "אולם הגן",
"location": "ירושלים",
"reception_time": "18:30",
"ceremony_time": "19:00",
"dinner_time": "20:00",
"bride_name": "ורד",
"groom_name": "דביר",
"event_id": "event-id"
},
"guest_name_key": "שם האורח",
"guest_name_key": "",
"url_button": {
"enabled": true,
"enabled": false,
"button_index": 0,
"param_key": "event_id"
}

View File

@ -939,6 +939,12 @@ async def send_wedding_invitation_bulk(
"event_time": event_time,
"guest_link": per_guest_link,
"guest_id": str(guest.id), # guest UUID for button {{1}}
# Additional parameters for wedding_invitation_by_vered template
"event_date_day": event_date.split("/")[0] if event_date else "", # extract day from DD/MM
"location": (request_body.location or event.location or "").strip(),
"reception_time": (request_body.reception_time or request_body.event_time or "").strip(),
"ceremony_time": (request_body.ceremony_time or request_body.event_time or "").strip(),
"dinner_time": (request_body.dinner_time or request_body.event_time or "").strip(),
}
# Merge extra_params (user-supplied values for custom param keys)
@ -963,6 +969,11 @@ async def send_wedding_invitation_bulk(
if _url_btn and _url_btn.get("enabled"):
_param_key = _url_btn.get("param_key", "event_id")
params[_param_key] = str(event_id)
# For button_param_key (button_url templates): inject event_id
_btn_param_key = _tpl_def.get("button_param_key", "")
if _btn_param_key and _tpl_def.get("button_type") == "URL":
params[_btn_param_key] = str(event_id)
except Exception:
pass

View File

@ -197,8 +197,12 @@ class WhatsAppWeddingInviteRequest(BaseModel):
partner1_name: Optional[str] = None # First partner / groom name
partner2_name: Optional[str] = None # Second partner / bride name
venue: Optional[str] = None # Hall / venue name
location: Optional[str] = None # City / location (for Vered template)
event_date: Optional[str] = None # YYYY-MM-DD or DD/MM
event_time: Optional[str] = None # HH:mm
reception_time: Optional[str] = None # Reception time (for Vered template)
ceremony_time: Optional[str] = None # Ceremony time (for Vered template)
dinner_time: Optional[str] = None # Dinner time (for Vered template)
guest_link: Optional[str] = None # RSVP link
extra_params: Optional[Dict[str, str]] = None # Custom/extra param values keyed by param name