feat(ai-services): add building_coverage, loading_docks, zoning to industrial AVM

Completes the industrial-specific feature set required for AVM industrial
valuation. Adds heuristic adjustments for all three new features and
4 new tests covering zoning premiums, loading docks, and coverage ratio.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Ho Ngoc Hai
2026-04-16 17:06:27 +07:00
parent 8592fb436c
commit 13bd76ac5d
3 changed files with 115 additions and 8 deletions

View File

@@ -37,6 +37,20 @@ class IndustrialAVMRequest(BaseModel):
power_capacity_kva: float = Field(
0.0, ge=0, description="Allocated power capacity in kVA"
)
building_coverage: float = Field(
0.0,
ge=0,
le=1,
description="Building coverage ratio — footprint area / lot area (0-1)",
)
loading_docks: int = Field(
0, ge=0, description="Number of loading docks / bays"
)
zoning: str = Field(
"general_industrial",
description="Industrial zoning category: general_industrial, heavy_industrial, "
"light_industrial, logistics, free_trade_zone, high_tech",
)
industry_demand_index: float = Field(
0.5, ge=0, le=1, description="Local industry demand index (0-1)"
)