From 0fb86771dd0607b4d43e776ced5d807f0bf3d02a Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Fri, 19 Jun 2026 13:19:02 +0000 Subject: [PATCH] =?UTF-8?q?Resolve=20a=20landlord=20double-glazing=20overr?= =?UTF-8?q?ide=20to=20its=20glazing=20code=20=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- domain/epc/property_overlays/glazing_overlay.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/domain/epc/property_overlays/glazing_overlay.py b/domain/epc/property_overlays/glazing_overlay.py index 9da7582d..6ee05030 100644 --- a/domain/epc/property_overlays/glazing_overlay.py +++ b/domain/epc/property_overlays/glazing_overlay.py @@ -14,10 +14,19 @@ from __future__ import annotations from typing import Optional -from domain.modelling.simulation import EpcSimulation +from domain.modelling.simulation import EpcSimulation, GlazingOverlay + +# Canonical glazing description → SAP10 glazing-type code (the Table 24 / +# `u_window` cascade enum, `_GLAZING_CODE_TO_UWINDOW` in heat_transmission). +_GLAZING_CODES: dict[str, int] = { + "Double glazing, 2002 or later": 2, +} def glazing_overlay_for( glazing_value: str, building_part: int ) -> Optional[EpcSimulation]: - raise NotImplementedError + code = _GLAZING_CODES.get(glazing_value) + if code is None: + return None + return EpcSimulation(glazing=GlazingOverlay(glazing_type=code))