feat(db): add oil & solid-fuel boiler archetypes to main_heating_system

A fuel-agnostic "Boiler" description defaults to a Gas boiler archetype, which is
wrong when the property's main_fuel is oil or a solid fuel — the enum had no
non-gas/non-electric wet-boiler member, so ~43 properties in portfolio 796 sit as
"Gas boiler, regular/combi" on oil / house coal / wood logs / dual fuel.

Adds `Oil boiler, regular`, `Oil boiler, combi`, `Solid fuel boiler` (+ ALTER TYPE
migration 0279). Fuel granularity (coal/wood/dual) is carried by the separate
main_fuel column, applied on top of the archetype (ADR-0041), so one solid-fuel
boiler member suffices.

Inert until the Model backend adds matching members + overlay handling and a
fuel-aware classifier mapping (Model#1676); the 43 existing rows get a
per-property, fuel-joined backfill afterwards.

Open question for the backend grilling: whether solid fuel should split into
biomass/wood vs mineral coal archetypes, or stay one member with the fuel column
driving carbon.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Khalim Conn-Kowlessar 2026-07-23 14:39:19 +00:00
parent ac932524fe
commit f1d4398fc6
4 changed files with 13510 additions and 0 deletions

View file

@ -0,0 +1,3 @@
ALTER TYPE "public"."main_heating_system" ADD VALUE 'Oil boiler, regular' BEFORE 'Electric storage heaters, old';--> statement-breakpoint
ALTER TYPE "public"."main_heating_system" ADD VALUE 'Oil boiler, combi' BEFORE 'Electric storage heaters, old';--> statement-breakpoint
ALTER TYPE "public"."main_heating_system" ADD VALUE 'Solid fuel boiler' BEFORE 'Electric storage heaters, old';

File diff suppressed because it is too large Load diff

View file

@ -1947,6 +1947,13 @@
"when": 1784810497155,
"tag": "0278_living_baron_strucker",
"breakpoints": true
},
{
"idx": 279,
"version": "7",
"when": 1784817538731,
"tag": "0279_blushing_mattie_franklin",
"breakpoints": true
}
]
}

View file

@ -255,6 +255,14 @@ export const MainHeatingSystemValues: [string, ...string[]] = [
"Gas boiler, combi",
"Gas boiler, regular",
"Gas CPSU",
// Non-gas wet boilers. A fuel-agnostic "Boiler" description defaults to a gas
// archetype, which is wrong when the property's main_fuel is oil or a solid
// fuel — these give the classifier/overlay a correct target. Fuel granularity
// (house coal / wood logs / dual fuel) is carried by the separate `main_fuel`
// column, applied on top of the archetype (ADR-0041). See Hestia-Homes/Model#1676.
"Oil boiler, regular",
"Oil boiler, combi",
"Solid fuel boiler",
"Electric storage heaters, old",
"Electric storage heaters, slimline",
"Electric storage heaters, convector",