merge_db_fixes_to_main #16
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user