feat: Reale Jahresbelastung, must-have fixes, fitOut data coverage
Reale Jahresbelastung (Change 6): - FitOutCostPanel zeigt Jahresmiete + amortisierte Ausbaukosten für alle fitOut-Werte - FULL/PREMIUM: Ausbau CHF 0 (bezugsfertig), SHELL/BASIC: CRB/BKP-Richtwerte amortisiert über 5 J. - Match-Card-Chip zeigt geschätzte Investition (orange wenn >100k) - FitOutInvestment-Typ + calcFitOutInvestment() in fitOutUtils.ts - BackendAIService + MockAIService mit generateFitOutAdvice (IAIService-Interface) Must-have Kriterien (Nicht prüfbar Fix): - ÖV-Anbindung: Minutengrenze aus Freitext extrahiert, gegen publicTransportMinutes geprüft - Mindestfläche: m²-Wert aus Freitext extrahiert, gegen areaSqm geprüft - Ausbaugrad: neues Keyword-Rule für FULL/PREMIUM fitOut-Datenpflege: - fitOut-Werte zu 32 fehlenden Properties ergänzt (Logistik=SHELL, Standard=BASIC, Modern=FULL) - MAB-Werte (200/150/250 CHF/m²) zu 3 BASIC-Objekten hinzugefügt Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -19,6 +19,10 @@ interface MatchDetailHeroProps {
|
||||
keyFacts: Array<{ label: string; value: string }>
|
||||
onCompare: () => void
|
||||
onShortlist: () => void
|
||||
searchCenterLat?: number
|
||||
searchCenterLng?: number
|
||||
searchRadiusKm?: number
|
||||
searchLabel?: string
|
||||
}
|
||||
|
||||
export function MatchDetailHero({
|
||||
@@ -32,6 +36,10 @@ export function MatchDetailHero({
|
||||
keyFacts,
|
||||
onCompare,
|
||||
onShortlist,
|
||||
searchCenterLat,
|
||||
searchCenterLng,
|
||||
searchRadiusKm,
|
||||
searchLabel,
|
||||
}: MatchDetailHeroProps) {
|
||||
return (
|
||||
<>
|
||||
@@ -51,6 +59,10 @@ export function MatchDetailHero({
|
||||
lng={property.location.coordinates.lng}
|
||||
label={property.title}
|
||||
height={340}
|
||||
searchCenterLat={searchCenterLat}
|
||||
searchCenterLng={searchCenterLng}
|
||||
searchRadiusKm={searchRadiusKm}
|
||||
searchLabel={searchLabel}
|
||||
/>
|
||||
) : null
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user