diff --git a/src/alpine_bits_python/alpinebits_server.py b/src/alpine_bits_python/alpinebits_server.py index bb3b4a0..f15a232 100644 --- a/src/alpine_bits_python/alpinebits_server.py +++ b/src/alpine_bits_python/alpinebits_server.py @@ -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 = ( diff --git a/src/alpine_bits_python/schemas.py b/src/alpine_bits_python/schemas.py index f29558c..4affec1 100644 --- a/src/alpine_bits_python/schemas.py +++ b/src/alpine_bits_python/schemas.py @@ -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)