[2025-09-19 20:39:22] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-19","ci":null,"co":null,"name":null}
[2025-09-19 20:39:22] INFO  API bookings_by_day 
[2025-09-19 20:39:22] INFO  DB connected 
[2025-09-19 20:39:22] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-19"]}
[2025-09-19 20:39:22] INFO  listDays result {"count":2}
[2025-09-19 20:39:22] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-09-19 20:39:25] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-19","ci":null,"co":null,"name":null}
[2025-09-19 20:39:25] INFO  API bookings_by_day 
[2025-09-19 20:39:25] INFO  DB connected 
[2025-09-19 20:39:25] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-19"]}
[2025-09-19 20:39:25] INFO  listDays result {"count":2}
[2025-09-19 20:39:26] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-09-19 20:39:26] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-19","ci":null,"co":null,"name":null}
[2025-09-19 20:39:26] INFO  API available_rooms_series 
[2025-09-19 20:39:26] INFO  DB connected 
[2025-09-19 20:39:26] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-19"]}
[2025-09-19 20:39:26] INFO  availableRoomsSeries done {"windows":5,"days":2}
[2025-09-19 20:39:27] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-19","ci":null,"co":null,"name":null}
[2025-09-19 20:39:27] INFO  API windows_grid_by_hotel {"qd":"2025-09-18","limit_w":30,"limit_h":50,"changes_only":0}
[2025-09-19 20:39:27] INFO  DB connected 
[2025-09-19 20:39:27] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 30","params":["2025-09-18","2025-08-20","2025-09-19","2025-09-18","2025-09-19"]}
[2025-09-19 20:39:27] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-19","2025-09-18","2025-09-19"]}
[2025-09-19 20:39:27] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":109}
[2025-09-19 20:39:27] INFO  windowsGridByHotel built {"windows":30,"rows":46,"changesOnly":0}
[2025-09-19 20:39:49] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-19","ci":null,"co":null,"name":null}
[2025-09-19 20:39:49] INFO  API windows_grid_by_hotel {"qd":"2025-09-18","limit_w":10,"limit_h":50,"changes_only":0}
[2025-09-19 20:39:49] INFO  DB connected 
[2025-09-19 20:39:49] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-19","2025-09-18","2025-09-19"]}
[2025-09-19 20:39:49] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-19","2025-09-18","2025-09-19"]}
[2025-09-19 20:39:49] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":69}
[2025-09-19 20:39:49] INFO  windowsGridByHotel built {"windows":10,"rows":46,"changesOnly":0}
[2025-09-19 21:07:41] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-19","ci":null,"co":null,"name":"Vila Zoe"}
[2025-09-19 21:07:41] INFO  API bookings_by_day 
[2025-09-19 21:07:41] INFO  DB connected 
[2025-09-19 21:07:41] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? AND p.name LIKE ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-19","%Vila Zoe%"]}
[2025-09-19 21:07:41] INFO  listDays result {"count":2}
[2025-09-19 21:07:41] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-09-19 21:07:41] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-19","ci":null,"co":null,"name":"Vila Zoe"}
[2025-09-19 21:07:41] INFO  API available_rooms_series 
[2025-09-19 21:07:41] INFO  DB connected 
[2025-09-19 21:07:41] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? AND p.name LIKE ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-19","%Vila Zoe%"]}
[2025-09-19 21:07:41] INFO  availableRoomsSeries done {"windows":5,"days":2}
[2025-09-19 21:07:41] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-19","ci":null,"co":null,"name":"Vila Zoe"}
[2025-09-19 21:07:41] INFO  API windows_grid_by_hotel {"qd":"2025-09-18","limit_w":10,"limit_h":50,"changes_only":0}
[2025-09-19 21:07:41] INFO  DB connected 
[2025-09-19 21:07:41] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? AND p.name LIKE ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-19","%Vila Zoe%","2025-09-18","2025-09-19"]}
[2025-09-19 21:07:41] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? AND p.name LIKE ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-19","%Vila Zoe%","2025-09-18","2025-09-19"]}
[2025-09-19 21:07:42] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":24}
[2025-09-19 21:07:42] INFO  windowsGridByHotel built {"windows":10,"rows":1,"changesOnly":0}
[2025-09-19 21:08:01] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-19","ci":null,"co":null,"name":null}
[2025-09-19 21:08:01] INFO  API bookings_by_day 
[2025-09-19 21:08:01] INFO  DB connected 
[2025-09-19 21:08:01] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-19"]}
[2025-09-19 21:08:01] INFO  listDays result {"count":2}
[2025-09-19 21:08:01] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-09-19 21:08:02] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-19","ci":null,"co":null,"name":null}
[2025-09-19 21:08:02] INFO  API available_rooms_series 
[2025-09-19 21:08:02] INFO  DB connected 
[2025-09-19 21:08:02] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-19"]}
[2025-09-19 21:08:02] INFO  availableRoomsSeries done {"windows":5,"days":2}
[2025-09-19 21:08:02] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-19","ci":null,"co":null,"name":null}
[2025-09-19 21:08:02] INFO  API windows_grid_by_hotel {"qd":"2025-09-18","limit_w":10,"limit_h":50,"changes_only":0}
[2025-09-19 21:08:02] INFO  DB connected 
[2025-09-19 21:08:02] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-19","2025-09-18","2025-09-19"]}
[2025-09-19 21:08:02] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-19","2025-09-18","2025-09-19"]}
[2025-09-19 21:08:02] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":69}
[2025-09-19 21:08:02] INFO  windowsGridByHotel built {"windows":10,"rows":46,"changesOnly":0}
[2025-09-19 21:09:15] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-19","ci":null,"co":null,"name":null}
[2025-09-19 21:09:15] INFO  API windows_grid_by_hotel {"qd":"2025-09-18","limit_w":10,"limit_h":50,"changes_only":0}
[2025-09-19 21:09:15] INFO  DB connected 
[2025-09-19 21:09:15] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-19","2025-09-18","2025-09-19"]}
[2025-09-19 21:09:15] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-19","2025-09-18","2025-09-19"]}
[2025-09-19 21:09:15] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":69}
[2025-09-19 21:09:15] INFO  windowsGridByHotel built {"windows":10,"rows":46,"changesOnly":0}
[2025-09-19 21:41:57] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-19","ci":null,"co":null,"name":null}
[2025-09-19 21:41:57] INFO  API bookings_by_day 
[2025-09-19 21:41:57] INFO  DB connected 
[2025-09-19 21:41:57] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-19"]}
[2025-09-19 21:41:57] INFO  listDays result {"count":2}
[2025-09-19 21:41:57] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-09-19 21:41:58] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-19","ci":null,"co":null,"name":null}
[2025-09-19 21:41:58] INFO  API available_rooms_series 
[2025-09-19 21:41:58] INFO  DB connected 
[2025-09-19 21:41:58] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-19"]}
[2025-09-19 21:41:58] INFO  availableRoomsSeries done {"windows":5,"days":2}
[2025-09-19 21:41:58] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-19","ci":null,"co":null,"name":null}
[2025-09-19 21:41:58] INFO  API windows_grid_by_hotel {"qd":"2025-09-18","limit_w":10,"limit_h":50,"changes_only":0}
[2025-09-19 21:41:58] INFO  DB connected 
[2025-09-19 21:41:58] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-19","2025-09-18","2025-09-19"]}
[2025-09-19 21:41:58] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-19","2025-09-18","2025-09-19"]}
[2025-09-19 21:41:58] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":69}
[2025-09-19 21:41:58] INFO  windowsGridByHotel built {"windows":10,"rows":46,"changesOnly":0}
[2025-09-19 22:23:26] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-19","ci":null,"co":null,"name":null}
[2025-09-19 22:23:26] INFO  API windows_grid_by_hotel {"qd":"2025-09-19","limit_w":10,"limit_h":50,"changes_only":0}
[2025-09-19 22:23:26] INFO  DB connected 
[2025-09-19 22:23:26] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-19","2025-09-19","2025-09-20"]}
[2025-09-19 22:23:26] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-19","2025-09-19","2025-09-20"]}
[2025-09-19 22:23:26] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":69}
[2025-09-19 22:23:26] INFO  windowsGridByHotel built {"windows":10,"rows":46,"changesOnly":0}
[2025-09-20 13:49:10] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-20 13:49:10] INFO  API bookings_by_day 
[2025-09-20 13:49:10] INFO  DB connected 
[2025-09-20 13:49:10] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-09-20 13:49:10] INFO  listDays result {"count":3}
[2025-09-20 13:49:10] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-09-20 13:49:10] INFO  bookingsByDay pair {"query_date":"2025-09-19","next_query_date":"2025-09-20","rooms_sold_est":107,"rooms_returned_est":25,"rooms_net":82,"soldout_flips":20}
[2025-09-20 13:49:11] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-20 13:49:11] INFO  API available_rooms_series 
[2025-09-20 13:49:11] INFO  DB connected 
[2025-09-20 13:49:11] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-09-20 13:49:11] INFO  availableRoomsSeries done {"windows":5,"days":3}
[2025-09-20 13:49:11] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-20 13:49:11] INFO  API windows_grid_by_hotel {"qd":"2025-09-19","limit_w":10,"limit_h":50,"changes_only":0}
[2025-09-20 13:49:11] INFO  DB connected 
[2025-09-20 13:49:11] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-19","2025-09-20"]}
[2025-09-20 13:49:11] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-19","2025-09-20"]}
[2025-09-20 13:49:11] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":69}
[2025-09-20 13:49:11] INFO  windowsGridByHotel built {"windows":10,"rows":46,"changesOnly":0}
[2025-09-20 15:01:36] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-20 15:01:36] INFO  API bookings_by_day 
[2025-09-20 15:01:36] INFO  DB connected 
[2025-09-20 15:01:36] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-09-20 15:01:36] INFO  listDays result {"count":3}
[2025-09-20 15:01:36] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-09-20 15:01:36] INFO  bookingsByDay pair {"query_date":"2025-09-19","next_query_date":"2025-09-20","rooms_sold_est":107,"rooms_returned_est":25,"rooms_net":82,"soldout_flips":20}
[2025-09-20 15:01:36] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-20 15:01:36] INFO  API available_rooms_series 
[2025-09-20 15:01:36] INFO  DB connected 
[2025-09-20 15:01:36] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-09-20 15:01:36] INFO  availableRoomsSeries done {"windows":5,"days":3}
[2025-09-20 15:01:37] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-20 15:01:37] INFO  API windows_grid_by_hotel {"qd":"2025-09-19","limit_w":10,"limit_h":50,"changes_only":0}
[2025-09-20 15:01:37] INFO  DB connected 
[2025-09-20 15:01:37] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-19","2025-09-20"]}
[2025-09-20 15:01:37] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-19","2025-09-20"]}
[2025-09-20 15:01:37] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":69}
[2025-09-20 15:01:37] INFO  windowsGridByHotel built {"windows":10,"rows":46,"changesOnly":0}
[2025-09-21 01:19:57] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-21 01:19:57] INFO  API bookings_by_day 
[2025-09-21 01:19:57] INFO  DB connected 
[2025-09-21 01:19:57] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-09-21 01:19:57] INFO  listDays result {"count":3}
[2025-09-21 01:19:57] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-09-21 01:19:57] INFO  bookingsByDay pair {"query_date":"2025-09-19","next_query_date":"2025-09-20","rooms_sold_est":107,"rooms_returned_est":25,"rooms_net":82,"soldout_flips":20}
[2025-09-21 01:19:57] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-21 01:19:57] INFO  API available_rooms_series 
[2025-09-21 01:19:57] INFO  DB connected 
[2025-09-21 01:19:57] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-09-21 01:19:57] INFO  availableRoomsSeries done {"windows":5,"days":3}
[2025-09-21 01:19:58] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-21 01:19:58] INFO  API windows_grid_by_hotel {"qd":"2025-09-19","limit_w":10,"limit_h":50,"changes_only":0}
[2025-09-21 01:19:58] INFO  DB connected 
[2025-09-21 01:19:58] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-19","2025-09-20"]}
[2025-09-21 01:19:58] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-19","2025-09-20"]}
[2025-09-21 01:19:58] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":69}
[2025-09-21 01:19:58] INFO  windowsGridByHotel built {"windows":10,"rows":46,"changesOnly":0}
[2025-09-21 02:25:43] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-21 02:25:43] INFO  API bookings_by_day 
[2025-09-21 02:25:43] INFO  DB connected 
[2025-09-21 02:25:43] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-09-21 02:25:43] INFO  listDays result {"count":3}
[2025-09-21 02:25:43] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-09-21 02:25:43] INFO  bookingsByDay pair {"query_date":"2025-09-19","next_query_date":"2025-09-20","rooms_sold_est":107,"rooms_returned_est":25,"rooms_net":82,"soldout_flips":20}
[2025-09-21 02:25:44] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-21 02:25:44] INFO  API available_rooms_series 
[2025-09-21 02:25:44] INFO  DB connected 
[2025-09-21 02:25:44] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-09-21 02:25:44] INFO  availableRoomsSeries done {"windows":5,"days":3}
[2025-09-21 02:25:44] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-21 02:25:44] INFO  API windows_grid_by_hotel {"qd":"2025-09-19","limit_w":10,"limit_h":50,"changes_only":0}
[2025-09-21 02:25:44] INFO  DB connected 
[2025-09-21 02:25:44] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-19","2025-09-20"]}
[2025-09-21 02:25:44] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-19","2025-09-20"]}
[2025-09-21 02:25:44] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":69}
[2025-09-21 02:25:44] INFO  windowsGridByHotel built {"windows":10,"rows":46,"changesOnly":0}
[2025-09-21 13:46:59] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-21 13:46:59] INFO  API bookings_by_day 
[2025-09-21 13:46:59] INFO  DB connected 
[2025-09-21 13:46:59] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-09-21 13:46:59] INFO  listDays result {"count":4}
[2025-09-21 13:46:59] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-09-21 13:47:00] INFO  bookingsByDay pair {"query_date":"2025-09-19","next_query_date":"2025-09-20","rooms_sold_est":107,"rooms_returned_est":25,"rooms_net":82,"soldout_flips":20}
[2025-09-21 13:47:00] INFO  bookingsByDay pair {"query_date":"2025-09-20","next_query_date":"2025-09-21","rooms_sold_est":109,"rooms_returned_est":7,"rooms_net":102,"soldout_flips":14}
[2025-09-21 13:47:00] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-21 13:47:00] INFO  API available_rooms_series 
[2025-09-21 13:47:00] INFO  DB connected 
[2025-09-21 13:47:00] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-09-21 13:47:00] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-09-21 13:47:01] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-21 13:47:01] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-09-21 13:47:01] INFO  DB connected 
[2025-09-21 13:47:01] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-09-21 13:47:01] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-09-21 13:47:01] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-09-21 13:47:01] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-09-24 23:37:25] INFO  Filters prepared {"qdf":"2025-08-25","qdt":"2025-09-24","ci":null,"co":null,"name":null}
[2025-09-24 23:37:25] INFO  API bookings_by_day 
[2025-09-24 23:37:25] INFO  DB connected 
[2025-09-24 23:37:25] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-25","2025-09-24"]}
[2025-09-24 23:37:25] INFO  listDays result {"count":6}
[2025-09-24 23:37:25] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-09-24 23:37:25] INFO  bookingsByDay pair {"query_date":"2025-09-19","next_query_date":"2025-09-20","rooms_sold_est":107,"rooms_returned_est":25,"rooms_net":82,"soldout_flips":20}
[2025-09-24 23:37:25] INFO  bookingsByDay pair {"query_date":"2025-09-20","next_query_date":"2025-09-21","rooms_sold_est":109,"rooms_returned_est":7,"rooms_net":102,"soldout_flips":14}
[2025-09-24 23:37:25] INFO  bookingsByDay pair {"query_date":"2025-09-21","next_query_date":"2025-09-22","rooms_sold_est":70,"rooms_returned_est":29,"rooms_net":41,"soldout_flips":0}
[2025-09-24 23:37:25] INFO  bookingsByDay pair {"query_date":"2025-09-22","next_query_date":"2025-09-23","rooms_sold_est":101,"rooms_returned_est":34,"rooms_net":67,"soldout_flips":5}
[2025-09-24 23:37:26] INFO  Filters prepared {"qdf":"2025-08-25","qdt":"2025-09-24","ci":null,"co":null,"name":null}
[2025-09-24 23:37:26] INFO  API available_rooms_series 
[2025-09-24 23:37:26] INFO  DB connected 
[2025-09-24 23:37:26] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-25","2025-09-24"]}
[2025-09-24 23:37:26] INFO  availableRoomsSeries done {"windows":5,"days":6}
[2025-09-24 23:37:26] INFO  Filters prepared {"qdf":"2025-08-25","qdt":"2025-09-24","ci":null,"co":null,"name":null}
[2025-09-24 23:37:26] INFO  API windows_grid_by_hotel {"qd":"2025-09-22","limit_w":10,"limit_h":50,"changes_only":0}
[2025-09-24 23:37:26] INFO  DB connected 
[2025-09-24 23:37:26] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-25","2025-09-24","2025-09-22","2025-09-23"]}
[2025-09-24 23:37:26] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-25","2025-09-24","2025-09-22","2025-09-23"]}
[2025-09-24 23:37:26] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-09-24 23:37:26] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-09-29 20:00:32] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-29 20:00:32] INFO  API bookings_by_day 
[2025-09-29 20:00:32] INFO  DB connected 
[2025-09-29 20:00:32] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-09-29 20:00:32] INFO  listDays result {"count":4}
[2025-09-29 20:00:33] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-09-29 20:00:33] INFO  bookingsByDay pair {"query_date":"2025-09-19","next_query_date":"2025-09-20","rooms_sold_est":107,"rooms_returned_est":25,"rooms_net":82,"soldout_flips":20}
[2025-09-29 20:00:33] INFO  bookingsByDay pair {"query_date":"2025-09-20","next_query_date":"2025-09-21","rooms_sold_est":109,"rooms_returned_est":7,"rooms_net":102,"soldout_flips":14}
[2025-09-29 20:00:33] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-29 20:00:33] INFO  API available_rooms_series 
[2025-09-29 20:00:33] INFO  DB connected 
[2025-09-29 20:00:33] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-09-29 20:00:33] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-09-29 20:00:33] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-09-29 20:00:33] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-09-29 20:00:33] INFO  DB connected 
[2025-09-29 20:00:33] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-09-29 20:00:33] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-09-29 20:00:33] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-09-29 20:00:33] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-12 15:06:56] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-12 15:06:56] INFO  API bookings_by_day 
[2025-10-12 15:06:56] INFO  DB connected 
[2025-10-12 15:06:56] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-12 15:06:56] INFO  listDays result {"count":4}
[2025-10-12 15:06:56] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-10-12 15:06:56] INFO  bookingsByDay pair {"query_date":"2025-09-19","next_query_date":"2025-09-20","rooms_sold_est":107,"rooms_returned_est":25,"rooms_net":82,"soldout_flips":20}
[2025-10-12 15:06:56] INFO  bookingsByDay pair {"query_date":"2025-09-20","next_query_date":"2025-09-21","rooms_sold_est":109,"rooms_returned_est":7,"rooms_net":102,"soldout_flips":14}
[2025-10-12 15:06:59] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-12 15:06:59] INFO  API available_rooms_series 
[2025-10-12 15:06:59] INFO  DB connected 
[2025-10-12 15:06:59] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-12 15:06:59] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-12 15:07:00] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-12 15:07:00] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-12 15:07:00] INFO  DB connected 
[2025-10-12 15:07:00] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-12 15:07:00] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-12 15:07:00] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-12 15:07:00] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-12 16:02:45] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-12 16:02:45] INFO  API bookings_by_day 
[2025-10-12 16:02:45] INFO  DB connected 
[2025-10-12 16:02:45] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-12 16:02:45] INFO  listDays result {"count":4}
[2025-10-12 16:02:45] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-10-12 16:02:45] INFO  bookingsByDay pair {"query_date":"2025-09-19","next_query_date":"2025-09-20","rooms_sold_est":107,"rooms_returned_est":25,"rooms_net":82,"soldout_flips":20}
[2025-10-12 16:02:45] INFO  bookingsByDay pair {"query_date":"2025-09-20","next_query_date":"2025-09-21","rooms_sold_est":109,"rooms_returned_est":7,"rooms_net":102,"soldout_flips":14}
[2025-10-12 16:02:46] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-12 16:02:46] INFO  API available_rooms_series 
[2025-10-12 16:02:46] INFO  DB connected 
[2025-10-12 16:02:46] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-12 16:02:46] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-12 16:02:46] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-12 16:02:46] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-12 16:02:46] INFO  DB connected 
[2025-10-12 16:02:46] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-12 16:02:46] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-12 16:02:46] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-12 16:02:46] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-16 19:15:06] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-16 19:15:06] INFO  API bookings_by_day 
[2025-10-16 19:15:06] INFO  DB connected 
[2025-10-16 19:15:06] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-16 19:15:06] INFO  listDays result {"count":4}
[2025-10-16 19:15:06] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-10-16 19:15:06] INFO  bookingsByDay pair {"query_date":"2025-09-19","next_query_date":"2025-09-20","rooms_sold_est":107,"rooms_returned_est":25,"rooms_net":82,"soldout_flips":20}
[2025-10-16 19:15:06] INFO  bookingsByDay pair {"query_date":"2025-09-20","next_query_date":"2025-09-21","rooms_sold_est":109,"rooms_returned_est":7,"rooms_net":102,"soldout_flips":14}
[2025-10-16 19:15:07] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-16 19:15:07] INFO  API available_rooms_series 
[2025-10-16 19:15:07] INFO  DB connected 
[2025-10-16 19:15:07] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-16 19:15:07] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-16 19:15:07] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-16 19:15:07] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-16 19:15:07] INFO  DB connected 
[2025-10-16 19:15:07] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-16 19:15:07] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-16 19:15:07] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-16 19:15:07] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-21 11:52:27] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-21 11:52:27] INFO  API bookings_by_day 
[2025-10-21 11:52:27] INFO  DB connected 
[2025-10-21 11:52:27] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-21 11:52:28] INFO  listDays result {"count":4}
[2025-10-21 11:52:28] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-10-21 11:52:28] INFO  bookingsByDay pair {"query_date":"2025-09-19","next_query_date":"2025-09-20","rooms_sold_est":107,"rooms_returned_est":25,"rooms_net":82,"soldout_flips":20}
[2025-10-21 11:52:28] INFO  bookingsByDay pair {"query_date":"2025-09-20","next_query_date":"2025-09-21","rooms_sold_est":109,"rooms_returned_est":7,"rooms_net":102,"soldout_flips":14}
[2025-10-21 11:52:29] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-21 11:52:29] INFO  API available_rooms_series 
[2025-10-21 11:52:29] INFO  DB connected 
[2025-10-21 11:52:29] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-21 11:52:29] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-21 11:52:29] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-21 11:52:29] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-21 11:52:29] INFO  DB connected 
[2025-10-21 11:52:29] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-21 11:52:29] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-21 11:52:29] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-21 11:52:29] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-22 11:27:36] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-22 11:27:36] INFO  API bookings_by_day 
[2025-10-22 11:27:36] INFO  DB connected 
[2025-10-22 11:27:36] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-22 11:27:36] INFO  listDays result {"count":4}
[2025-10-22 11:27:36] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-10-22 11:27:36] INFO  bookingsByDay pair {"query_date":"2025-09-19","next_query_date":"2025-09-20","rooms_sold_est":107,"rooms_returned_est":25,"rooms_net":82,"soldout_flips":20}
[2025-10-22 11:27:36] INFO  bookingsByDay pair {"query_date":"2025-09-20","next_query_date":"2025-09-21","rooms_sold_est":109,"rooms_returned_est":7,"rooms_net":102,"soldout_flips":14}
[2025-10-22 11:27:36] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-22 11:27:36] INFO  API available_rooms_series 
[2025-10-22 11:27:36] INFO  DB connected 
[2025-10-22 11:27:36] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-22 11:27:36] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-22 11:27:36] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-22 11:27:36] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-22 11:27:36] INFO  DB connected 
[2025-10-22 11:27:36] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-22 11:27:36] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-22 11:27:36] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-22 11:27:36] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-25 22:09:27] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-25 22:09:27] INFO  API bookings_by_day 
[2025-10-25 22:09:27] INFO  DB connected 
[2025-10-25 22:09:27] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-25 22:09:28] INFO  listDays result {"count":4}
[2025-10-25 22:09:28] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-10-25 22:09:28] INFO  bookingsByDay pair {"query_date":"2025-09-19","next_query_date":"2025-09-20","rooms_sold_est":107,"rooms_returned_est":25,"rooms_net":82,"soldout_flips":20}
[2025-10-25 22:09:28] INFO  bookingsByDay pair {"query_date":"2025-09-20","next_query_date":"2025-09-21","rooms_sold_est":109,"rooms_returned_est":7,"rooms_net":102,"soldout_flips":14}
[2025-10-25 22:09:28] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-25 22:09:28] INFO  API available_rooms_series 
[2025-10-25 22:09:28] INFO  DB connected 
[2025-10-25 22:09:28] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-25 22:09:28] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-25 22:09:28] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-25 22:09:28] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-25 22:09:28] INFO  DB connected 
[2025-10-25 22:09:28] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-25 22:09:28] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-25 22:09:28] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-25 22:09:28] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-25 22:09:33] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-25 22:09:33] INFO  API available_rooms_series 
[2025-10-25 22:09:33] INFO  DB connected 
[2025-10-25 22:09:33] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-25 22:09:34] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-25 22:09:34] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-25 22:09:34] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-25 22:09:34] INFO  DB connected 
[2025-10-25 22:09:34] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-25 22:09:34] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-25 22:09:34] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-25 22:09:34] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-25 23:13:27] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-25 23:13:27] INFO  API available_rooms_series 
[2025-10-25 23:13:27] INFO  DB connected 
[2025-10-25 23:13:27] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-25 23:13:27] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-25 23:13:30] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-25 23:13:30] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-25 23:13:30] INFO  DB connected 
[2025-10-25 23:13:30] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-25 23:13:30] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-25 23:13:30] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-25 23:13:30] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-25 23:24:35] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-25 23:24:35] INFO  API available_rooms_series 
[2025-10-25 23:24:35] INFO  DB connected 
[2025-10-25 23:24:35] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-25 23:24:35] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-25 23:24:36] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-25 23:24:36] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-25 23:24:36] INFO  DB connected 
[2025-10-25 23:24:36] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-25 23:24:36] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-25 23:24:36] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-25 23:24:36] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-26 13:15:28] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 13:15:28] INFO  API available_rooms_series 
[2025-10-26 13:15:28] INFO  DB connected 
[2025-10-26 13:15:28] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-26 13:15:28] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-26 13:15:31] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 13:15:31] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-26 13:15:31] INFO  DB connected 
[2025-10-26 13:15:31] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-26 13:15:31] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-26 13:15:32] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-26 13:15:32] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-26 13:43:25] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 13:43:25] INFO  API bookings_by_day 
[2025-10-26 13:43:25] INFO  DB connected 
[2025-10-26 13:43:25] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-26 13:43:26] INFO  listDays result {"count":4}
[2025-10-26 13:43:26] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-10-26 13:43:26] INFO  bookingsByDay pair {"query_date":"2025-09-19","next_query_date":"2025-09-20","rooms_sold_est":107,"rooms_returned_est":25,"rooms_net":82,"soldout_flips":20}
[2025-10-26 13:43:26] INFO  bookingsByDay pair {"query_date":"2025-09-20","next_query_date":"2025-09-21","rooms_sold_est":109,"rooms_returned_est":7,"rooms_net":102,"soldout_flips":14}
[2025-10-26 13:43:28] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 13:43:28] INFO  API available_rooms_series 
[2025-10-26 13:43:28] INFO  DB connected 
[2025-10-26 13:43:28] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-26 13:43:28] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-26 13:43:28] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 13:43:28] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-26 13:43:28] INFO  DB connected 
[2025-10-26 13:43:28] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-26 13:43:28] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-26 13:43:28] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-26 13:43:28] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-26 18:14:43] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 18:14:43] INFO  API available_rooms_series 
[2025-10-26 18:14:43] INFO  DB connected 
[2025-10-26 18:14:43] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-26 18:14:43] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-26 18:14:44] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 18:14:44] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-26 18:14:44] INFO  DB connected 
[2025-10-26 18:14:44] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-26 18:14:44] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-26 18:14:44] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-26 18:14:44] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-26 20:28:07] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 20:28:07] INFO  API available_rooms_series 
[2025-10-26 20:28:07] INFO  DB connected 
[2025-10-26 20:28:07] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-26 20:28:07] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-26 20:28:07] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 20:28:07] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-26 20:28:07] INFO  DB connected 
[2025-10-26 20:28:07] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-26 20:28:07] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-26 20:28:07] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-26 20:28:07] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-26 20:41:56] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 20:41:56] INFO  API available_rooms_series 
[2025-10-26 20:41:56] INFO  DB connected 
[2025-10-26 20:41:56] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-26 20:41:56] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-26 20:41:56] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 20:41:56] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-26 20:41:56] INFO  DB connected 
[2025-10-26 20:41:56] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-26 20:41:56] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-26 20:41:56] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-26 20:41:56] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-26 20:58:46] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 20:58:46] INFO  API available_rooms_series 
[2025-10-26 20:58:46] INFO  DB connected 
[2025-10-26 20:58:46] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-26 20:58:46] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-26 20:58:47] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 20:58:47] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-26 20:58:47] INFO  DB connected 
[2025-10-26 20:58:47] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-26 20:58:47] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-26 20:58:47] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-26 20:58:47] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-26 23:32:44] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 23:32:44] INFO  API available_rooms_series 
[2025-10-26 23:32:44] INFO  DB connected 
[2025-10-26 23:32:44] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-26 23:32:44] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-26 23:32:44] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 23:32:44] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-26 23:32:44] INFO  DB connected 
[2025-10-26 23:32:44] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-26 23:32:44] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-26 23:32:44] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-26 23:32:44] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-26 23:47:02] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 23:47:02] INFO  API available_rooms_series 
[2025-10-26 23:47:02] INFO  DB connected 
[2025-10-26 23:47:02] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-26 23:47:02] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-26 23:47:03] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-26 23:47:03] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-26 23:47:03] INFO  DB connected 
[2025-10-26 23:47:03] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-26 23:47:03] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-26 23:47:03] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-26 23:47:03] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-27 00:03:18] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-27 00:03:18] INFO  API available_rooms_series 
[2025-10-27 00:03:18] INFO  DB connected 
[2025-10-27 00:03:18] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-27 00:03:18] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-27 00:03:18] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-27 00:03:18] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-27 00:03:18] INFO  DB connected 
[2025-10-27 00:03:18] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-27 00:03:18] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-27 00:03:18] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-27 00:03:18] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-27 00:25:09] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-27 00:25:09] INFO  API available_rooms_series 
[2025-10-27 00:25:09] INFO  DB connected 
[2025-10-27 00:25:09] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-27 00:25:09] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-27 00:25:09] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-27 00:25:09] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-27 00:25:09] INFO  DB connected 
[2025-10-27 00:25:09] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-27 00:25:09] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-27 00:25:10] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-27 00:25:10] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-27 16:17:19] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-27 16:17:19] INFO  API available_rooms_series 
[2025-10-27 16:17:19] INFO  DB connected 
[2025-10-27 16:17:19] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-27 16:17:19] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-27 16:17:20] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-27 16:17:20] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-27 16:17:20] INFO  DB connected 
[2025-10-27 16:17:20] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-27 16:17:20] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-27 16:17:20] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-27 16:17:20] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-27 18:20:39] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-27 18:20:39] INFO  API available_rooms_series 
[2025-10-27 18:20:39] INFO  DB connected 
[2025-10-27 18:20:39] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-27 18:20:39] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-27 18:20:40] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-27 18:20:40] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-27 18:20:40] INFO  DB connected 
[2025-10-27 18:20:40] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-27 18:20:40] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-27 18:20:40] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-27 18:20:40] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-29 12:14:16] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-29 12:14:16] INFO  API available_rooms_series 
[2025-10-29 12:14:16] INFO  DB connected 
[2025-10-29 12:14:16] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-29 12:14:16] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-29 12:14:16] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-29 12:14:16] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-29 12:14:16] INFO  DB connected 
[2025-10-29 12:14:16] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-29 12:14:16] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-29 12:14:16] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-29 12:14:16] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-30 21:39:31] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-30 21:39:31] INFO  API bookings_by_day 
[2025-10-30 21:39:31] INFO  DB connected 
[2025-10-30 21:39:31] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-30 21:39:31] INFO  listDays result {"count":4}
[2025-10-30 21:39:31] INFO  bookingsByDay pair {"query_date":"2025-09-18","next_query_date":"2025-09-19","rooms_sold_est":4,"rooms_returned_est":12,"rooms_net":-8,"soldout_flips":3}
[2025-10-30 21:39:31] INFO  bookingsByDay pair {"query_date":"2025-09-19","next_query_date":"2025-09-20","rooms_sold_est":107,"rooms_returned_est":25,"rooms_net":82,"soldout_flips":20}
[2025-10-30 21:39:31] INFO  bookingsByDay pair {"query_date":"2025-09-20","next_query_date":"2025-09-21","rooms_sold_est":109,"rooms_returned_est":7,"rooms_net":102,"soldout_flips":14}
[2025-10-30 21:39:31] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-30 21:39:31] INFO  API available_rooms_series 
[2025-10-30 21:39:31] INFO  DB connected 
[2025-10-30 21:39:31] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-08-20","2025-09-21"]}
[2025-10-30 21:39:31] INFO  availableRoomsSeries done {"windows":5,"days":4}
[2025-10-30 21:39:31] INFO  Filters prepared {"qdf":"2025-08-20","qdt":"2025-09-21","ci":null,"co":null,"name":null}
[2025-10-30 21:39:31] INFO  API windows_grid_by_hotel {"qd":"2025-09-20","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-30 21:39:31] INFO  DB connected 
[2025-10-30 21:39:31] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-30 21:39:31] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-08-20","2025-09-21","2025-09-20","2025-09-21"]}
[2025-10-30 21:39:31] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":68}
[2025-10-30 21:39:31] INFO  windowsGridByHotel built {"windows":10,"rows":45,"changesOnly":0}
[2025-10-30 21:40:03] INFO  Filters prepared {"qdf":"2025-10-01","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-10-30 21:40:03] INFO  API bookings_by_day 
[2025-10-30 21:40:03] INFO  DB connected 
[2025-10-30 21:40:03] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-10-01","2025-11-29"]}
[2025-10-30 21:40:03] INFO  listDays result {"count":14}
[2025-10-30 21:40:03] INFO  bookingsByDay pair {"query_date":"2025-10-12","next_query_date":"2025-10-13","rooms_sold_est":66,"rooms_returned_est":11,"rooms_net":55,"soldout_flips":0}
[2025-10-30 21:40:03] INFO  bookingsByDay pair {"query_date":"2025-10-13","next_query_date":"2025-10-14","rooms_sold_est":81,"rooms_returned_est":17,"rooms_net":64,"soldout_flips":5}
[2025-10-30 21:40:03] INFO  bookingsByDay pair {"query_date":"2025-10-14","next_query_date":"2025-10-15","rooms_sold_est":60,"rooms_returned_est":22,"rooms_net":38,"soldout_flips":2}
[2025-10-30 21:40:03] INFO  bookingsByDay pair {"query_date":"2025-10-15","next_query_date":"2025-10-16","rooms_sold_est":78,"rooms_returned_est":4,"rooms_net":74,"soldout_flips":3}
[2025-10-30 21:40:03] INFO  bookingsByDay pair {"query_date":"2025-10-16","next_query_date":"2025-10-17","rooms_sold_est":51,"rooms_returned_est":13,"rooms_net":38,"soldout_flips":0}
[2025-10-30 21:40:03] INFO  bookingsByDay pair {"query_date":"2025-10-17","next_query_date":"2025-10-18","rooms_sold_est":69,"rooms_returned_est":16,"rooms_net":53,"soldout_flips":29}
[2025-10-30 21:40:03] INFO  bookingsByDay pair {"query_date":"2025-10-18","next_query_date":"2025-10-19","rooms_sold_est":64,"rooms_returned_est":14,"rooms_net":50,"soldout_flips":3}
[2025-10-30 21:40:03] INFO  bookingsByDay pair {"query_date":"2025-10-19","next_query_date":"2025-10-20","rooms_sold_est":76,"rooms_returned_est":4,"rooms_net":72,"soldout_flips":5}
[2025-10-30 21:40:03] INFO  bookingsByDay pair {"query_date":"2025-10-20","next_query_date":"2025-10-21","rooms_sold_est":5,"rooms_returned_est":0,"rooms_net":5,"soldout_flips":0}
[2025-10-30 21:40:04] INFO  bookingsByDay pair {"query_date":"2025-10-21","next_query_date":"2025-10-25","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-10-30 21:40:04] INFO  bookingsByDay pair {"query_date":"2025-10-25","next_query_date":"2025-10-26","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-10-30 21:40:04] INFO  bookingsByDay pair {"query_date":"2025-10-26","next_query_date":"2025-10-29","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-10-30 21:40:04] INFO  bookingsByDay pair {"query_date":"2025-10-29","next_query_date":"2025-10-30","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-10-30 21:40:04] INFO  Filters prepared {"qdf":"2025-10-01","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-10-30 21:40:04] INFO  API available_rooms_series 
[2025-10-30 21:40:04] INFO  DB connected 
[2025-10-30 21:40:04] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-10-01","2025-11-29"]}
[2025-10-30 21:40:04] INFO  availableRoomsSeries done {"windows":5,"days":14}
[2025-10-30 21:40:04] INFO  Filters prepared {"qdf":"2025-10-01","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-10-30 21:40:04] INFO  API windows_grid_by_hotel {"qd":"2025-10-29","limit_w":10,"limit_h":50,"changes_only":0}
[2025-10-30 21:40:04] INFO  DB connected 
[2025-10-30 21:40:04] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-10-01","2025-11-29","2025-10-29","2025-10-30"]}
[2025-10-30 21:40:04] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-10-01","2025-11-29","2025-10-29","2025-10-30"]}
[2025-10-30 21:40:04] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":63}
[2025-10-30 21:40:04] INFO  windowsGridByHotel built {"windows":5,"rows":50,"changesOnly":0}
[2025-11-01 13:42:55] INFO  Filters prepared {"qdf":"2025-10-01","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-11-01 13:42:55] INFO  API bookings_by_day 
[2025-11-01 13:42:55] INFO  DB connected 
[2025-11-01 13:42:55] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-10-01","2025-11-29"]}
[2025-11-01 13:42:55] INFO  listDays result {"count":14}
[2025-11-01 13:42:55] INFO  bookingsByDay pair {"query_date":"2025-10-12","next_query_date":"2025-10-13","rooms_sold_est":66,"rooms_returned_est":11,"rooms_net":55,"soldout_flips":0}
[2025-11-01 13:42:56] INFO  bookingsByDay pair {"query_date":"2025-10-13","next_query_date":"2025-10-14","rooms_sold_est":81,"rooms_returned_est":17,"rooms_net":64,"soldout_flips":5}
[2025-11-01 13:42:56] INFO  bookingsByDay pair {"query_date":"2025-10-14","next_query_date":"2025-10-15","rooms_sold_est":60,"rooms_returned_est":22,"rooms_net":38,"soldout_flips":2}
[2025-11-01 13:42:56] INFO  bookingsByDay pair {"query_date":"2025-10-15","next_query_date":"2025-10-16","rooms_sold_est":78,"rooms_returned_est":4,"rooms_net":74,"soldout_flips":3}
[2025-11-01 13:42:56] INFO  bookingsByDay pair {"query_date":"2025-10-16","next_query_date":"2025-10-17","rooms_sold_est":51,"rooms_returned_est":13,"rooms_net":38,"soldout_flips":0}
[2025-11-01 13:42:56] INFO  bookingsByDay pair {"query_date":"2025-10-17","next_query_date":"2025-10-18","rooms_sold_est":69,"rooms_returned_est":16,"rooms_net":53,"soldout_flips":29}
[2025-11-01 13:42:56] INFO  bookingsByDay pair {"query_date":"2025-10-18","next_query_date":"2025-10-19","rooms_sold_est":64,"rooms_returned_est":14,"rooms_net":50,"soldout_flips":3}
[2025-11-01 13:42:56] INFO  bookingsByDay pair {"query_date":"2025-10-19","next_query_date":"2025-10-20","rooms_sold_est":76,"rooms_returned_est":4,"rooms_net":72,"soldout_flips":5}
[2025-11-01 13:42:56] INFO  bookingsByDay pair {"query_date":"2025-10-20","next_query_date":"2025-10-21","rooms_sold_est":5,"rooms_returned_est":0,"rooms_net":5,"soldout_flips":0}
[2025-11-01 13:42:56] INFO  bookingsByDay pair {"query_date":"2025-10-21","next_query_date":"2025-10-25","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-11-01 13:42:56] INFO  bookingsByDay pair {"query_date":"2025-10-25","next_query_date":"2025-10-26","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-11-01 13:42:56] INFO  bookingsByDay pair {"query_date":"2025-10-26","next_query_date":"2025-10-29","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-11-01 13:42:56] INFO  bookingsByDay pair {"query_date":"2025-10-29","next_query_date":"2025-10-30","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-11-01 13:42:56] INFO  Filters prepared {"qdf":"2025-10-01","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-11-01 13:42:56] INFO  API available_rooms_series 
[2025-11-01 13:42:56] INFO  DB connected 
[2025-11-01 13:42:56] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-10-01","2025-11-29"]}
[2025-11-01 13:42:56] INFO  availableRoomsSeries done {"windows":5,"days":14}
[2025-11-01 13:42:57] INFO  Filters prepared {"qdf":"2025-10-01","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-11-01 13:42:57] INFO  API windows_grid_by_hotel {"qd":"2025-10-29","limit_w":10,"limit_h":50,"changes_only":0}
[2025-11-01 13:42:57] INFO  DB connected 
[2025-11-01 13:42:57] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-10-01","2025-11-29","2025-10-29","2025-10-30"]}
[2025-11-01 13:42:57] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-10-01","2025-11-29","2025-10-29","2025-10-30"]}
[2025-11-01 13:42:57] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":63}
[2025-11-01 13:42:57] INFO  windowsGridByHotel built {"windows":5,"rows":50,"changesOnly":0}
[2025-11-01 13:43:39] INFO  Filters prepared {"qdf":"2025-10-01","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-11-01 13:43:39] INFO  API bookings_by_day 
[2025-11-01 13:43:39] INFO  DB connected 
[2025-11-01 13:43:39] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-10-01","2025-11-29"]}
[2025-11-01 13:43:39] INFO  listDays result {"count":14}
[2025-11-01 13:43:39] INFO  bookingsByDay pair {"query_date":"2025-10-12","next_query_date":"2025-10-13","rooms_sold_est":66,"rooms_returned_est":11,"rooms_net":55,"soldout_flips":0}
[2025-11-01 13:43:39] INFO  bookingsByDay pair {"query_date":"2025-10-13","next_query_date":"2025-10-14","rooms_sold_est":81,"rooms_returned_est":17,"rooms_net":64,"soldout_flips":5}
[2025-11-01 13:43:39] INFO  bookingsByDay pair {"query_date":"2025-10-14","next_query_date":"2025-10-15","rooms_sold_est":60,"rooms_returned_est":22,"rooms_net":38,"soldout_flips":2}
[2025-11-01 13:43:39] INFO  bookingsByDay pair {"query_date":"2025-10-15","next_query_date":"2025-10-16","rooms_sold_est":78,"rooms_returned_est":4,"rooms_net":74,"soldout_flips":3}
[2025-11-01 13:43:39] INFO  bookingsByDay pair {"query_date":"2025-10-16","next_query_date":"2025-10-17","rooms_sold_est":51,"rooms_returned_est":13,"rooms_net":38,"soldout_flips":0}
[2025-11-01 13:43:39] INFO  bookingsByDay pair {"query_date":"2025-10-17","next_query_date":"2025-10-18","rooms_sold_est":69,"rooms_returned_est":16,"rooms_net":53,"soldout_flips":29}
[2025-11-01 13:43:39] INFO  bookingsByDay pair {"query_date":"2025-10-18","next_query_date":"2025-10-19","rooms_sold_est":64,"rooms_returned_est":14,"rooms_net":50,"soldout_flips":3}
[2025-11-01 13:43:39] INFO  bookingsByDay pair {"query_date":"2025-10-19","next_query_date":"2025-10-20","rooms_sold_est":76,"rooms_returned_est":4,"rooms_net":72,"soldout_flips":5}
[2025-11-01 13:43:40] INFO  bookingsByDay pair {"query_date":"2025-10-20","next_query_date":"2025-10-21","rooms_sold_est":5,"rooms_returned_est":0,"rooms_net":5,"soldout_flips":0}
[2025-11-01 13:43:40] INFO  bookingsByDay pair {"query_date":"2025-10-21","next_query_date":"2025-10-25","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-11-01 13:43:40] INFO  bookingsByDay pair {"query_date":"2025-10-25","next_query_date":"2025-10-26","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-11-01 13:43:40] INFO  bookingsByDay pair {"query_date":"2025-10-26","next_query_date":"2025-10-29","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-11-01 13:43:40] INFO  bookingsByDay pair {"query_date":"2025-10-29","next_query_date":"2025-10-30","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-11-01 13:43:40] INFO  Filters prepared {"qdf":"2025-10-01","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-11-01 13:43:40] INFO  API available_rooms_series 
[2025-11-01 13:43:40] INFO  DB connected 
[2025-11-01 13:43:40] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-10-01","2025-11-29"]}
[2025-11-01 13:43:40] INFO  availableRoomsSeries done {"windows":5,"days":14}
[2025-11-01 13:43:40] INFO  Filters prepared {"qdf":"2025-10-01","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-11-01 13:43:40] INFO  API windows_grid_by_hotel {"qd":"2025-10-29","limit_w":10,"limit_h":50,"changes_only":0}
[2025-11-01 13:43:40] INFO  DB connected 
[2025-11-01 13:43:40] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-10-01","2025-11-29","2025-10-29","2025-10-30"]}
[2025-11-01 13:43:40] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-10-01","2025-11-29","2025-10-29","2025-10-30"]}
[2025-11-01 13:43:40] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":63}
[2025-11-01 13:43:40] INFO  windowsGridByHotel built {"windows":5,"rows":50,"changesOnly":0}
[2025-11-01 13:44:02] INFO  Filters prepared {"qdf":"2025-10-01","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-11-01 13:44:02] INFO  API windows_grid_by_hotel {"qd":"2025-10-29","limit_w":10,"limit_h":50,"changes_only":0}
[2025-11-01 13:44:02] INFO  DB connected 
[2025-11-01 13:44:02] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-10-01","2025-11-29","2025-10-29","2025-10-30"]}
[2025-11-01 13:44:02] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-10-01","2025-11-29","2025-10-29","2025-10-30"]}
[2025-11-01 13:44:02] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":63}
[2025-11-01 13:44:02] INFO  windowsGridByHotel built {"windows":5,"rows":50,"changesOnly":0}
[2025-11-01 13:44:28] INFO  Filters prepared {"qdf":"2025-10-01","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-11-01 13:44:28] INFO  API windows_grid_by_hotel {"qd":"2025-10-27","limit_w":10,"limit_h":50,"changes_only":0}
[2025-11-01 13:44:28] INFO  DB connected 
[2025-11-01 13:44:28] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-10-01","2025-11-29","2025-10-27","2025-10-28"]}
[2025-11-01 13:46:53] INFO  Filters prepared {"qdf":"2025-10-01","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-11-01 13:46:53] INFO  API bookings_by_day 
[2025-11-01 13:46:53] INFO  DB connected 
[2025-11-01 13:46:53] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-10-01","2025-11-29"]}
[2025-11-01 13:46:53] INFO  listDays result {"count":14}
[2025-11-01 13:46:53] INFO  bookingsByDay pair {"query_date":"2025-10-12","next_query_date":"2025-10-13","rooms_sold_est":66,"rooms_returned_est":11,"rooms_net":55,"soldout_flips":0}
[2025-11-01 13:46:54] INFO  bookingsByDay pair {"query_date":"2025-10-13","next_query_date":"2025-10-14","rooms_sold_est":81,"rooms_returned_est":17,"rooms_net":64,"soldout_flips":5}
[2025-11-01 13:46:54] INFO  bookingsByDay pair {"query_date":"2025-10-14","next_query_date":"2025-10-15","rooms_sold_est":60,"rooms_returned_est":22,"rooms_net":38,"soldout_flips":2}
[2025-11-01 13:46:54] INFO  bookingsByDay pair {"query_date":"2025-10-15","next_query_date":"2025-10-16","rooms_sold_est":78,"rooms_returned_est":4,"rooms_net":74,"soldout_flips":3}
[2025-11-01 13:46:54] INFO  bookingsByDay pair {"query_date":"2025-10-16","next_query_date":"2025-10-17","rooms_sold_est":51,"rooms_returned_est":13,"rooms_net":38,"soldout_flips":0}
[2025-11-01 13:46:54] INFO  bookingsByDay pair {"query_date":"2025-10-17","next_query_date":"2025-10-18","rooms_sold_est":69,"rooms_returned_est":16,"rooms_net":53,"soldout_flips":29}
[2025-11-01 13:46:54] INFO  bookingsByDay pair {"query_date":"2025-10-18","next_query_date":"2025-10-19","rooms_sold_est":64,"rooms_returned_est":14,"rooms_net":50,"soldout_flips":3}
[2025-11-01 13:46:54] INFO  bookingsByDay pair {"query_date":"2025-10-19","next_query_date":"2025-10-20","rooms_sold_est":76,"rooms_returned_est":4,"rooms_net":72,"soldout_flips":5}
[2025-11-01 13:46:54] INFO  bookingsByDay pair {"query_date":"2025-10-20","next_query_date":"2025-10-21","rooms_sold_est":5,"rooms_returned_est":0,"rooms_net":5,"soldout_flips":0}
[2025-11-01 13:46:55] INFO  bookingsByDay pair {"query_date":"2025-10-21","next_query_date":"2025-10-25","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-11-01 13:46:55] INFO  bookingsByDay pair {"query_date":"2025-10-25","next_query_date":"2025-10-26","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-11-01 13:46:55] INFO  bookingsByDay pair {"query_date":"2025-10-26","next_query_date":"2025-10-29","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-11-01 13:46:55] INFO  bookingsByDay pair {"query_date":"2025-10-29","next_query_date":"2025-10-30","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-11-01 13:46:55] INFO  Filters prepared {"qdf":"2025-10-01","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-11-01 13:46:55] INFO  API available_rooms_series 
[2025-11-01 13:46:55] INFO  DB connected 
[2025-11-01 13:46:55] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-10-01","2025-11-29"]}
[2025-11-01 13:46:55] INFO  availableRoomsSeries done {"windows":5,"days":14}
[2025-11-01 13:46:55] INFO  Filters prepared {"qdf":"2025-10-01","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-11-01 13:46:55] INFO  API windows_grid_by_hotel {"qd":"2025-10-29","limit_w":10,"limit_h":50,"changes_only":0}
[2025-11-01 13:46:55] INFO  DB connected 
[2025-11-01 13:46:55] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-10-01","2025-11-29","2025-10-29","2025-10-30"]}
[2025-11-01 13:46:55] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-10-01","2025-11-29","2025-10-29","2025-10-30"]}
[2025-11-01 13:46:55] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":63}
[2025-11-01 13:46:55] INFO  windowsGridByHotel built {"windows":5,"rows":50,"changesOnly":0}
[2025-11-01 13:51:16] INFO  Filters prepared {"qdf":"2025-10-26","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-11-01 13:51:16] INFO  API bookings_by_day 
[2025-11-01 13:51:16] INFO  DB connected 
[2025-11-01 13:51:16] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-10-26","2025-11-29"]}
[2025-11-01 13:51:16] INFO  listDays result {"count":3}
[2025-11-01 13:51:16] INFO  bookingsByDay pair {"query_date":"2025-10-26","next_query_date":"2025-10-29","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-11-01 13:51:16] INFO  bookingsByDay pair {"query_date":"2025-10-29","next_query_date":"2025-10-30","rooms_sold_est":0,"rooms_returned_est":0,"rooms_net":0,"soldout_flips":0}
[2025-11-01 13:51:17] INFO  Filters prepared {"qdf":"2025-10-26","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-11-01 13:51:17] INFO  API available_rooms_series 
[2025-11-01 13:51:17] INFO  DB connected 
[2025-11-01 13:51:17] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-10-26","2025-11-29"]}
[2025-11-01 13:51:17] INFO  availableRoomsSeries done {"windows":5,"days":3}
[2025-11-01 13:51:17] INFO  Filters prepared {"qdf":"2025-10-26","qdt":"2025-11-29","ci":null,"co":null,"name":null}
[2025-11-01 13:51:17] INFO  API windows_grid_by_hotel {"qd":"2025-10-29","limit_w":10,"limit_h":50,"changes_only":0}
[2025-11-01 13:51:17] INFO  DB connected 
[2025-11-01 13:51:17] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-10-26","2025-11-29","2025-10-29","2025-10-30"]}
[2025-11-01 13:51:17] INFO  SQL windowsGridByHotel hotels {"sql":"SELECT p.id, MAX(p.name) AS name\n                    FROM properties p\n                     WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ?  AND DATE(p.query_date) IN (?,?) \n                   GROUP BY p.id\n                   ORDER BY name ASC\n                   LIMIT 50","params":["2025-09-18","2025-10-26","2025-11-29","2025-10-29","2025-10-30"]}
[2025-11-01 13:51:17] INFO  SQL windowsGridByHotel data {"sql":"SELECT p.id, p.checkin, p.checkout, DATE(p.query_date) AS qd, SUM(p.total_rooms) AS avail\n                  FROM properties p\n                 WHERE p.query_date > ?\n                   AND DATE(p.query_date) IN (?,?)\n                   AND p.id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND ((p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?) OR (p.checkin=? AND p.checkout=?)) GROUP BY p.id, p.checkin, p.checkout, DATE(p.query_date)","params_count":63}
[2025-11-01 13:51:17] INFO  windowsGridByHotel built {"windows":5,"rows":50,"changesOnly":0}
[2025-11-24 17:23:00] INFO  Filters prepared {"qdf":"2025-10-25","qdt":"2025-11-24","ci":null,"co":null,"name":null}
[2025-11-24 17:23:00] INFO  API bookings_by_day 
[2025-11-24 17:23:00] INFO  DB connected 
[2025-11-24 17:23:00] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-10-25","2025-11-24"]}
[2025-11-24 17:23:00] INFO  listDays result {"count":0}
[2025-11-24 17:23:01] INFO  Filters prepared {"qdf":"2025-10-25","qdt":"2025-11-24","ci":null,"co":null,"name":null}
[2025-11-24 17:23:01] INFO  API available_rooms_series 
[2025-11-24 17:23:01] INFO  DB connected 
[2025-11-24 17:23:01] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-10-25","2025-11-24"]}
[2025-11-24 17:23:24] INFO  Filters prepared {"qdf":"2025-10-23","qdt":"2025-11-24","ci":"2025-11-24","co":"2025-12-24","name":null}
[2025-11-24 17:23:24] INFO  API bookings_by_day 
[2025-11-24 17:23:24] INFO  DB connected 
[2025-11-24 17:23:24] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? AND p.checkin >= ? AND p.checkout <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-10-23","2025-11-24","2025-11-24","2025-12-24"]}
[2025-11-24 17:23:24] INFO  listDays result {"count":0}
[2025-11-24 17:23:24] INFO  Filters prepared {"qdf":"2025-10-23","qdt":"2025-11-24","ci":"2025-11-24","co":"2025-12-24","name":null}
[2025-11-24 17:23:24] INFO  API available_rooms_series 
[2025-11-24 17:23:24] INFO  DB connected 
[2025-11-24 17:23:24] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? AND p.checkin >= ? AND p.checkout <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-10-23","2025-11-24","2025-11-24","2025-12-24"]}
[2025-11-24 17:23:42] INFO  Filters prepared {"qdf":"2025-10-23","qdt":"2025-11-24","ci":"2025-11-24","co":"2025-12-24","name":null}
[2025-11-24 17:23:42] INFO  API bookings_by_day 
[2025-11-24 17:23:42] INFO  DB connected 
[2025-11-24 17:23:42] INFO  SQL listDays {"sql":"SELECT DATE(p.query_date) AS qd\n              FROM properties p\n               WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? AND p.checkin >= ? AND p.checkout <= ? \n              GROUP BY DATE(p.query_date)\n              ORDER BY DATE(p.query_date) ASC","params":["2025-09-18","2025-10-23","2025-11-24","2025-11-24","2025-12-24"]}
[2025-11-24 17:23:42] INFO  listDays result {"count":0}
[2025-11-24 17:23:42] INFO  Filters prepared {"qdf":"2025-10-23","qdt":"2025-11-24","ci":"2025-11-24","co":"2025-12-24","name":null}
[2025-11-24 17:23:42] INFO  API available_rooms_series 
[2025-11-24 17:23:42] INFO  DB connected 
[2025-11-24 17:23:42] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? AND p.checkin >= ? AND p.checkout <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-10-23","2025-11-24","2025-11-24","2025-12-24"]}
[2025-11-24 17:23:50] INFO  Filters prepared {"qdf":"2025-10-23","qdt":"2025-11-24","ci":"2025-11-24","co":"2025-12-24","name":null}
[2025-11-24 17:23:50] INFO  API windows_grid_by_hotel {"qd":"2025-11-25","limit_w":10,"limit_h":50,"changes_only":0}
[2025-11-24 17:23:50] INFO  DB connected 
[2025-11-24 17:23:50] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? AND p.checkin >= ? AND p.checkout <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-10-23","2025-11-24","2025-11-24","2025-12-24","2025-11-25","2025-11-26"]}
[2025-11-24 19:34:46] INFO  Filters prepared {"qdf":"2025-10-23","qdt":"2025-11-24","ci":"2025-11-24","co":"2025-12-24","name":null}
[2025-11-24 19:34:46] INFO  API available_rooms_series 
[2025-11-24 19:34:46] INFO  DB connected 
[2025-11-24 19:34:46] INFO  SQL top windows {"sql":"SELECT p.checkin,p.checkout,SUM(p.total_rooms) AS tot\n               FROM properties p\n                WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? AND p.checkin >= ? AND p.checkout <= ? \n              GROUP BY p.checkin,p.checkout\n              ORDER BY tot DESC\n              LIMIT 5","params":["2025-09-18","2025-10-23","2025-11-24","2025-11-24","2025-12-24"]}
[2025-11-24 19:34:46] INFO  Filters prepared {"qdf":"2025-10-23","qdt":"2025-11-24","ci":"2025-11-24","co":"2025-12-24","name":null}
[2025-11-24 19:34:46] INFO  API windows_grid_by_hotel {"qd":"2025-11-25","limit_w":10,"limit_h":50,"changes_only":0}
[2025-11-24 19:34:46] INFO  DB connected 
[2025-11-24 19:34:46] INFO  SQL windowsGridByHotel windows {"sql":"SELECT p.checkin, p.checkout\n                  FROM properties p\n                   WHERE p.query_date > ? AND DATE(p.query_date) >= ? AND DATE(p.query_date) <= ? AND p.checkin >= ? AND p.checkout <= ?  AND DATE(p.query_date) IN (?,?) \n                 GROUP BY p.checkin, p.checkout\n                 ORDER BY p.checkin ASC, p.checkout ASC\n                 LIMIT 10","params":["2025-09-18","2025-10-23","2025-11-24","2025-11-24","2025-12-24","2025-11-25","2025-11-26"]}
