schmidt.florian
|
6fc710d55a
|
M4: aggregation + tariff-aware cost engine
- ContinuousAggregates migration: consumption_daily/monthly/yearly in Europe/Berlin
buckets via migrationBuilder.Sql(..., suppressTransaction: true), with refresh policies
(end_offset >= 1 bucket; current bucket covered by real-time aggregation).
- TariffResolver (Core): time-ranged price resolution, scope precedence meter > type > global.
- CostService: Dapper-aggregated monthly consumption × resolved unit price (+base, -feed-in),
month-dominant pricing; category rollups over member meters + meterless manual costs.
- Tests: water cost reconciles to the sheet's Kosten column, Wasser category rollup (Dez=70€),
monthly CAgg refresh matches base, TariffResolver unit tests.
91 tests green (56 Core + 35 integration).
Claude-Session: https://claude.ai/code/session_01WujdMtMJPbxDpDnMeK22rr
|
2026-07-13 11:52:53 +02:00 |
|