Now sending an actually unique parameter so matching in the future is simpler
This commit is contained in:
@@ -814,10 +814,10 @@ class ConversionService:
|
||||
advertising_partner: str | None,
|
||||
session: AsyncSession | None = None,
|
||||
) -> Reservation | None:
|
||||
"""Match reservation by advertising tracking data (fbclid/gclid/utm_campaign).
|
||||
"""Match reservation by advertising tracking data (fbclid/gclid/md5_unique_id).
|
||||
|
||||
Args:
|
||||
advertising_campagne: Truncated tracking ID
|
||||
advertising_campagne: Tracking ID from PMS (could be truncated click_id or md5_unique_id)
|
||||
hotel_id: Hotel ID for filtering
|
||||
guest_first_name: Guest first name for disambiguation
|
||||
guest_last_name: Guest last name for disambiguation
|
||||
@@ -831,12 +831,14 @@ class ConversionService:
|
||||
"""
|
||||
if session is None:
|
||||
session = self.session
|
||||
# Find reservations where fbclid or gclid starts with the truncated value
|
||||
# Find reservations where:
|
||||
# - fbclid/gclid starts with the advertising_campagne value, OR
|
||||
# - md5_unique_id matches exactly (for direct ID matching)
|
||||
query = select(Reservation).where(
|
||||
or_(
|
||||
Reservation.fbclid.like(f"{advertising_campagne}%"),
|
||||
Reservation.gclid.like(f"{advertising_campagne}%"),
|
||||
Reservation.utm_campaign.like(f"{advertising_campagne}%"),
|
||||
Reservation.md5_unique_id == advertising_campagne,
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user