mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-27 23:35:01 +00:00
A second export selection alongside the per-Scenario one, chosen by `plan_selection` on the export request: - "scenario" (default, unchanged): one sheet per Scenario, freshest Plan per (property, scenario); scenario_ids required. - "default" (new): a single "Default Plans" sheet of each home's is_default Plan (one-per-property across all Scenarios, ADR-0012/0017) — the portfolio's current state, one row per home; scenario_ids ignored. Repository gains `default_rows_for(portfolio_id, property_ids)`: same read-model and Effective-EPC join as `rows_for`, with the plan-selection WHERE swapped from `scenario_id = :scenario_id` to `is_default = TRUE`. Orchestrator branches on plan_selection; the router validates it and only requires scenario_ids for the scenario selection. A recipe without plan_selection defaults to "scenario", so the change is backward-compatible. Both selections now surface the chosen Plan's `name` as a `plan_name` column. Tests: repository default_rows_for (scenario-independent selection, plan_name, non-default excluded); orchestrator default path (one "Default Plans" sheet; empty selection is a recorded failure). 62 passed, pyright --strict clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| abri | ||
| applications | ||
| backend | ||
| datatypes | ||
| domain | ||
| e2e | ||
| fixtures | ||
| harness | ||
| infrastructure | ||
| lambdas | ||
| magic_plan | ||
| orchestration | ||
| repositories | ||
| scripts | ||
| utilities | ||
| utils | ||
| __init__.py | ||
| conftest.py | ||
| test_lambda_packaging.py | ||