#992: attach response_model=AnalyzeResponse to POST /{cad_num}/analyze. Model uses extra="allow" so any result_payload key not explicitly modeled is preserved in the 200 response (no silent drops that would break Site Finder), and ALL fields are Optional so the #93 202 fetch-stub serializes without a 500. #994: add GET /{cad_num}/runs (light summary list, empty 200 not 404) and GET /runs/{run_id} (full row incl result, 404 if missing), backed by list_runs_for/get_run in analysis_runs.repository (psycopg v3 CAST(:x AS type)). Routes ordered before /{parcel_id} so /runs/{run_id} is not shadowed. Closes #992. Closes #994. Refs #961. |
||
|---|---|---|
| .. | ||
| analysis_runs | ||
| cadastre | ||
| exporters | ||
| forecasting | ||
| scrapers | ||
| site_finder | ||
| __init__.py | ||
| test_cadastre_bulk.py | ||
| test_ekburg_permits.py | ||
| test_nspd_denorm.py | ||
| test_objective_backfill.py | ||
| test_quarter_dump_lookup.py | ||
| test_recommend_mix_velocity.py | ||