merge_db_fixes_to_main #16

Merged
jonas merged 40 commits from merge_db_fixes_to_main into main 2025-12-09 11:37:21 +00:00
Showing only changes of commit 6ea510174e - Show all commits

View File

@@ -10,7 +10,7 @@ from typing import Any
from sqlalchemy import or_, select from sqlalchemy import or_, select
from sqlalchemy.dialects.postgresql import insert as pg_insert from sqlalchemy.dialects.postgresql import insert as pg_insert
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.orm import selectinload from sqlalchemy.orm import selectinload, with_loader_criteria
from .db import ( from .db import (
Conversion, Conversion,
@@ -1568,6 +1568,18 @@ class ConversionService:
Conversion.conversion_rooms Conversion.conversion_rooms
) )
) )
.options(
with_loader_criteria(
Conversion,
lambda cls: cls.reservation_type == "reservation",
include_aliases=True,
),
with_loader_criteria(
ConversionRoom,
lambda cls: ConversionRoom.total_revenue.isnot(None),
include_aliases=True,
),
)
) )
if cutoff is not None: if cutoff is not None:
query = query.where(ConversionGuest.last_seen >= cutoff) query = query.where(ConversionGuest.last_seen >= cutoff)
@@ -1583,9 +1595,10 @@ class ConversionService:
stats["processed"] += 1 stats["processed"] += 1
is_regular, is_awareness = self._evaluate_guest_regularity(guest) is_regular, is_awareness = self._evaluate_guest_regularity(guest)
if guest.is_regular == is_regular and ( current_regular = bool(guest.is_regular)
guest.is_awareness_guest or False current_awareness = bool(guest.is_awareness_guest)
) == is_awareness:
if current_regular == is_regular and current_awareness == is_awareness:
if is_regular: if is_regular:
stats["regular"] += 1 stats["regular"] += 1
if is_awareness: if is_awareness: