|
|
@@ -47,9 +47,11 @@ class Reservation(StoreBacked, EventSource):
|
|
|
|
|
|
existing_xd = safe_json_loads(existing.x_data) if existing else None
|
|
|
defaults = _reservation_defaults()
|
|
|
- wk = data.get('wifi_key') or (existing_xd or {}).get('wifi_key') or defaults.wifi_key or _gen_wifi_key()
|
|
|
- ws = data.get('wifi_ssid') or (existing_xd or {}).get('wifi_ssid') or defaults.wifi_ssid
|
|
|
- dc = data.get('door_code') or (existing_xd or {}).get('door_code') or defaults.door_code or _gen_door_code()
|
|
|
+ # Stored value wins over upstream: first import picks up the upstream value, subsequent updates keep local.
|
|
|
+ xd = existing_xd or {}
|
|
|
+ wk = xd.get('wifi_key') or data.get('wifi_key') or defaults.wifi_key or _gen_wifi_key()
|
|
|
+ ws = xd.get('wifi_ssid') or data.get('wifi_ssid') or defaults.wifi_ssid
|
|
|
+ dc = xd.get('door_code') or data.get('door_code') or defaults.door_code or _gen_door_code()
|
|
|
|
|
|
x_data_dict = {k: data.get(k) for k in ['guest_name', 'service', 'reservation_id']}
|
|
|
x_data_dict['service_data'] = data.get('service_data') or {}
|