contract_forecast_brand
Adds brand support to contract forecast records so forecasts reflect each contract's brand.
Key Features
- contract.line.forecast.period: Provides a brand field on forecast periods by inheriting the brand mixin.
- contract.line: Propagates the contract's brand to newly created forecast periods so forecasts carry the correct brand.
- contract.contract: Triggers forecast recomputation when the brand changes to keep forecast lines in sync.
- post-init: Backfills existing forecast period records with the brand of their contracts.