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
@@ -15,58 +15,69 @@ type FieldGroup = {
const FIELD_GROUPS: FieldGroup[] = [
{
label: 'Grunddaten',
label: 'Basisdaten',
fields: [
{ key: 'areaSqm', label: 'Fläche (m²)' },
{ key: 'rentPricePerSqm', label: 'Mietpreis (CHF/m²/Jahr)' },
{ key: 'areaSqm', label: 'Fläche' },
{ key: 'rentPricePerSqm', label: 'Mietpreis' },
{ key: 'availabilityDate', label: 'Verfügbar ab' },
{ key: 'propertyNumber', label: 'Objektnummer' },
{ key: 'assetType', label: 'Asset Type' },
{ key: 'description', label: 'Beschreibung' },
],
},
{
label: 'Miet-/Vertragsdaten',
fields: [
{ key: 'leaseTerm', label: 'Mietlaufzeit' },
{ key: 'breakoutOption', label: 'Breakout-Option' },
{ key: 'breakoutOptionDate', label: 'Breakout-Option Zeitpunkt' },
{ key: 'currentTenant', label: 'Aktueller Mieter' },
{ key: 'propertyNumber', label: 'Objektnummer' },
{ key: 'assetType', label: 'Objekttyp' },
],
},
{
label: 'Technische Merkmale',
fields: [
{ key: 'floor', label: 'Stockwerk' },
{ key: 'parking', label: 'Parkplätze' },
{ key: 'ceilingHeightM', label: 'Deckenhöhe (m)' },
{ key: 'loadingDocksCount', label: 'Laderampen' },
{ key: 'powerSupplyKva', label: 'Stromanschluss (kVA)' },
{ key: 'hasServerRoom', label: 'Serverraum' },
{ key: 'fitOut', label: 'Ausbaugrad' },
{ key: 'isBarrierFree', label: 'Barrierefrei' },
{ key: 'fitOut', label: 'Ausbaustandard' },
{ key: 'publicTransportScore', label: 'ÖV-Score' },
],
},
{
label: 'Weiche Faktoren',
label: 'Technische Hard Facts',
fields: [
{ key: 'ceilingHeightM', label: 'Raumhöhe' },
{ key: 'floorLoad', label: 'Bodenlast' },
{ key: 'loadingDocksCount', label: 'Anlieferung' },
{ key: 'goodsLift', label: 'Warenaufzug' },
{ key: 'passengerLift', label: 'Personenaufzug' },
{ key: 'powerSupplyKva', label: 'Stromanschluss (kVA)' },
{ key: 'hasServerRoom', label: 'Serverraum' },
{ key: 'internet', label: 'Internet / Konnektivität' },
{ key: 'deliveryAccess', label: 'Zufahrt / Logistik' },
],
},
{
label: 'Soft Factors',
fields: [
{ key: 'prestigeScore', label: 'Prestige' },
{ key: 'visibilityScore', label: 'Sichtbarkeit' },
{ key: 'footfallScore', label: 'Passantenfrequenz' },
{ key: 'commuterAccessScore', label: 'Pendleranbindung' },
{ key: 'talentAccessScore', label: 'Talentpool' },
{ key: 'esgScore', label: 'ESG-Bewertung' },
{ key: 'commuterAccessScore', label: 'Pendlererreichbarkeit' },
{ key: 'talentAccessScore', label: 'Talent Access' },
{ key: 'esgScore', label: 'ESG / Nachhaltigkeit' },
{ key: 'flexibilityScore', label: 'Flexibilität' },
{ key: 'expansionPotentialScore', label: 'Expansionspotenzial' },
{ key: 'taxEnvironmentScore', label: 'Steuerumgebung' },
{ key: 'expansionPotentialScore', label: 'Expansionsmöglichkeit' },
{ key: 'taxEnvironmentScore', label: 'Steuerumfeld' },
{ key: 'publicTransportScore', label: 'ÖV-Anbindung' },
{ key: 'microLocation', label: 'Mikrostandort' },
{ key: 'competitionEnvironment', label: 'Konkurrenzumfeld' },
{ key: 'infrastructure', label: 'Infrastruktur' },
],
},
{
label: 'Beschreibung & Medien',
fields: [
{ key: 'description', label: 'Beschreibung' },
{ key: 'units', label: 'Stockwerkstruktur' },
],
},
{
label: 'Datenqualität',
label: 'Marktinformationen',
fields: [
{ key: 'marketSignals', label: 'Marktsignale' },
{ key: 'negotiationHints', label: 'Verhandlungshinweise' },
{ key: 'missingData', label: 'Datenlücken / offene Punkte' },
{ key: 'dataQuality', label: 'Datenqualität' },
{ key: 'softFactors', label: 'Weiche Faktoren (Gesamt)' },
{ key: 'units', label: 'Stockwerkstruktur' },
],
},
]