fix: close spec gaps — delete InquiryStatusBadge, extend match reasons, full field keys

- Delete InquiryStatusBadge.tsx (dead code after Part A read/unread migration)
- AdditionalPropertyMatch: add reasons[] + topUncertainty from positiveFactors/tradeoffs
- AdditionalMatchCard: render green reasons and amber uncertainty below match score
- ReportObjectFieldKey: add breakoutOptionDate, roomHeight, floorLoad, deliveryAccess,
  goodsLift, passengerLift, internet, microLocation, competitionEnvironment,
  infrastructure, marketSignals, negotiationHints, missingData (now 45 keys)
- ReportObjectFieldSelector: regroup into 5 spec-aligned groups (Basisdaten,
  Miet-/Vertragsdaten, Technische Hard Facts, Soft Factors, Marktinformationen)
- LatentInquiryReportPreview: add labels for all new field keys

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Sutter
2026-05-19 19:57:16 +02:00
parent b4d398270f
commit 13553f60a0
8 changed files with 111 additions and 78 deletions
@@ -16,21 +16,42 @@ const FIELD_LABELS: Partial<Record<ReportObjectFieldKey, string>> = {
availabilityDate: 'Verfügbar ab',
leaseTerm: 'Mietlaufzeit',
breakoutOption: 'Breakout-Option',
breakoutOptionDate: 'Breakout Zeitpunkt',
currentTenant: 'Aktueller Mieter',
propertyNumber: 'Objektnummer',
assetType: 'Objekttyp',
assetType: 'Asset Type',
floor: 'Stockwerk',
parking: 'Parkplätze',
ceilingHeightM: 'Deckenhöhe',
loadingDocksCount: 'Laderampen',
fitOut: 'Ausbaugrad',
isBarrierFree: 'Barrierefrei',
ceilingHeightM: 'Raumhöhe',
floorLoad: 'Bodenlast',
loadingDocksCount: 'Anlieferung',
goodsLift: 'Warenaufzug',
passengerLift: 'Personenaufzug',
powerSupplyKva: 'Stromanschluss',
hasServerRoom: 'Serverraum',
isBarrierFree: 'Barrierefrei',
fitOut: 'Ausbaustandard',
publicTransportScore: 'ÖV-Score',
internet: 'Internet',
deliveryAccess: 'Zufahrt',
publicTransportScore: 'ÖV-Anbindung',
prestigeScore: 'Prestige',
visibilityScore: 'Sichtbarkeit',
footfallScore: 'Passantenfrequenz',
commuterAccessScore: 'Pendlererreichbarkeit',
talentAccessScore: 'Talent Access',
esgScore: 'ESG',
flexibilityScore: 'Flexibilität',
expansionPotentialScore: 'Expansionspotenzial',
taxEnvironmentScore: 'Steuerumfeld',
microLocation: 'Mikrostandort',
competitionEnvironment: 'Konkurrenzumfeld',
infrastructure: 'Infrastruktur',
marketSignals: 'Marktsignale',
negotiationHints: 'Verhandlungshinweise',
missingData: 'Datenlücken',
dataQuality: 'Datenqualität',
description: 'Beschreibung',
units: 'Stockwerkstruktur',
}
function getFieldValue(property: Property, key: ReportObjectFieldKey): string | null {