Fixed SelectionCriteria Filtering. Date wasn't added to pydantic model

This commit is contained in:
Jonas Linter
2025-10-09 09:22:52 +02:00
parent 69fb1374b2
commit 18d30a140f
2 changed files with 7 additions and 2 deletions

View File

@@ -505,6 +505,9 @@ class ReadAction(AlpineBitsAction):
start_date = None
"""When given, the server will send only inquiries generated after the Start timestamp, regardless
whether the client has retrieved them before or not."""
if hotel_read_request.selection_criteria is not None:
start_date = datetime.fromisoformat(
hotel_read_request.selection_criteria.start
@@ -518,7 +521,8 @@ class ReadAction(AlpineBitsAction):
.filter(Reservation.hotel_code == hotelid)
)
if start_date:
stmt = stmt.filter(Reservation.start_date >= start_date)
_LOGGER.info("Filtering reservations from start date %s", start_date)
stmt = stmt.filter(Reservation.created_at >= start_date)
# remove reservations that have been acknowledged via client_id
elif client_info.client_id:
subquery = (

View File

@@ -10,7 +10,7 @@ from XML generation (xsdata) follows clean architecture principles.
"""
import hashlib
from datetime import date
from datetime import date, datetime
from enum import Enum
from pydantic import BaseModel, EmailStr, Field, field_validator, model_validator
@@ -43,6 +43,7 @@ class ReservationData(BaseModel):
md5_unique_id: str | None = Field(None, min_length=1, max_length=32)
start_date: date
end_date: date
created_at: datetime = Field(default_factory=datetime.now)
num_adults: int = Field(..., ge=1)
num_children: int = Field(0, ge=0, le=10)
children_ages: list[int] = Field(default_factory=list)