merge_db_fixes_to_main #16
@@ -10,7 +10,7 @@ from typing import Any
|
||||
from sqlalchemy import or_, select
|
||||
from sqlalchemy.dialects.postgresql import insert as pg_insert
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from sqlalchemy.orm import selectinload
|
||||
from sqlalchemy.orm import selectinload, with_loader_criteria
|
||||
|
||||
from .db import (
|
||||
Conversion,
|
||||
@@ -1568,6 +1568,18 @@ class ConversionService:
|
||||
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:
|
||||
query = query.where(ConversionGuest.last_seen >= cutoff)
|
||||
@@ -1583,9 +1595,10 @@ class ConversionService:
|
||||
stats["processed"] += 1
|
||||
is_regular, is_awareness = self._evaluate_guest_regularity(guest)
|
||||
|
||||
if guest.is_regular == is_regular and (
|
||||
guest.is_awareness_guest or False
|
||||
) == is_awareness:
|
||||
current_regular = bool(guest.is_regular)
|
||||
current_awareness = bool(guest.is_awareness_guest)
|
||||
|
||||
if current_regular == is_regular and current_awareness == is_awareness:
|
||||
if is_regular:
|
||||
stats["regular"] += 1
|
||||
if is_awareness:
|
||||
|
||||
Reference in New Issue
Block a user