Fixed up the damm tests

This commit is contained in:
Jonas Linter
2025-12-02 15:24:30 +01:00
parent 56d67984cf
commit c0e601e308
4 changed files with 179 additions and 84 deletions

View File

@@ -21,7 +21,7 @@ from .db import (
SessionMaker,
)
from .logging_config import get_logger
from .schemas import ConversionGuestData
from .schemas import ConversionData, ConversionGuestData
_LOGGER = get_logger(__name__)
@@ -552,7 +552,7 @@ class ConversionService:
pms_reservation_id if successfully created/updated, None if error occurred
"""
pms_reservation_id = reservation_elem.get("id")
pms_reservation_id = int(reservation_elem.get("id"))
async with semaphore:
# In concurrent mode, create a new session for this task
@@ -652,9 +652,15 @@ class ConversionService:
"daily_sales_count": 0,
}
# Extract reservation metadata
hotel_id = reservation_elem.get("hotelID")
pms_reservation_id = reservation_elem.get("id")
try:
# Extract reservation metadata
pms_reservation_id = int(reservation_elem.get("id"))
except ValueError as e:
_LOGGER.error("Invalid reservation metadata in reservation element: %s", e)
return stats
reservation_number = reservation_elem.get("number")
reservation_date_str = reservation_elem.get("date")
creation_time_str = reservation_elem.get("creationTime")
@@ -751,11 +757,8 @@ class ConversionService:
else:
# Create new conversion entry (without matching - will be done later)
# Note: Guest information (first_name, last_name, email, etc) is stored in ConversionGuest table
conversion = Conversion(
conversion_data = ConversionData(
# Links to existing entities (nullable, will be filled in after matching)
reservation_id=None,
customer_id=None,
hashed_customer_id=None,
# Reservation metadata
hotel_id=hotel_id,
guest_id=guest_id, # Links to ConversionGuest
@@ -770,9 +773,8 @@ class ConversionService:
advertising_partner=advertising_partner,
advertising_campagne=advertising_campagne,
# Metadata
created_at=datetime.now(),
updated_at=datetime.now(),
)
conversion = Conversion(**conversion_data.model_dump())
session.add(conversion)
_LOGGER.debug(
"Created conversion (pms_id=%s)",
@@ -1503,7 +1505,7 @@ class ConversionService:
async def _match_conversion_from_db_safe(
self,
pms_reservation_id: str,
pms_reservation_id: int,
semaphore: asyncio.Semaphore,
stats: dict[str, int],
) -> None: