forecasting/backend
jtricerolph 4bad66c91a Fix revenue endpoint 500 — rollback SQLAlchemy session after caught exceptions
When forecast_covers_range or forecast_revenue_for_date throw DB exceptions,
the swallowed exception leaves the async session in an aborted transaction state.
Subsequent queries (DOW averages, per-date accom) then fail with
InFailedSQLTransactionError. Adding db.rollback() in the except blocks
resets the session so the fallback path can continue cleanly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-21 14:53:54 +00:00
..
api Fix revenue endpoint 500 — rollback SQLAlchemy session after caught exceptions 2026-07-21 14:53:54 +00:00
jobs Add weather sync job, API endpoints and settings UI 2026-07-13 21:10:03 +00:00
services Move Resos API key to central Settings service; add sidebar scrollbar styling 2026-07-13 14:35:35 +00:00
utils Forecasting app: hybrid port to HNF stack 2026-07-04 18:49:34 +00:00
auth.py fix: restore app-local API key functions in auth.py 2026-07-04 19:11:00 +00:00
database.py Forecasting app: hybrid port to HNF stack 2026-07-04 18:49:34 +00:00
Dockerfile Forecasting app: hybrid port to HNF stack 2026-07-04 18:49:34 +00:00
main.py Remove bookability and competitor rates — moved to Rate Monitor app 2026-07-05 12:14:26 +00:00
requirements.txt Forecasting app: hybrid port to HNF stack 2026-07-04 18:49:34 +00:00
scheduler.py Remove old Resos sync path (resos_bookings table) 2026-07-13 21:07:47 +00:00
schema.sql Remove old Resos sync path (resos_bookings table) 2026-07-13 21:07:47 +00:00