Initial commit

This commit is contained in:
Benjamin Sutter
2026-05-15 00:48:18 +02:00
commit 9e827c50f9
72 changed files with 10477 additions and 0 deletions
+141
View File
@@ -0,0 +1,141 @@
import { MatchStrength, RiskLevel } from '../domain/enums'
import type { Match } from '../domain/match'
export const mockMatches: Match[] = [
{
id: 'match-001',
propertyId: 'prop-001',
needId: 'need-001',
matchScore: 88,
matchStrength: MatchStrength.STRONG,
scoreBreakdown: {
hardMatchScore: 92,
softFactorScore: 85,
confidenceModifier: 0.97,
dataQualityModifier: 0.92,
totalScore: 88,
},
positiveFactors: [
{ criterion: 'Fläche', weight: 0.20, score: 95, contribution: 19, explanation: '850m² liegt im Zielkorridor (6001000m²)' },
{ criterion: 'ÖV-Anbindung', weight: 0.20, score: 90, contribution: 18, explanation: '4 Min. zur S-Bahn, Kriterium erfüllt' },
{ criterion: 'Standort', weight: 0.15, score: 88, contribution: 13.2, explanation: 'Zürich-West trifft bevorzugte Lage' },
],
negativeFactors: [
{ criterion: 'Mietpreis', weight: 0.15, score: 76, contribution: 11.4, explanation: 'CHF 38/m² liegt über Wunschbudget von CHF 35/m²' },
],
tradeoffs: [
{ criterion: 'Budget', concern: 'Mietpreis 8% über Budget-Maximum', severity: 'MEDIUM', mitigation: 'Verhandlungspotenzial vorhanden Objekt leer seit 3 Monaten' },
],
explainabilitySummary: 'Starker Match aufgrund idealer Lage und Fläche. Einziger Vorbehalt ist der Mietpreis, der knapp über dem Budget liegt, aber verhandelbar erscheint.',
confidenceLevel: 0.92,
riskLevel: RiskLevel.LOW,
uncertaintyIndicators: [],
alternativeStrategies: [
{ title: 'Kleinere Einheit im gleichen Gebäude', description: '650m² verfügbar ab Q3 2025, CHF 35/m²', expectedScore: 82 },
],
organizationId: 'org-wincasa',
createdAt: '2025-05-10T08:00:00Z',
updatedAt: '2025-05-10T08:00:00Z',
},
{
id: 'match-002',
propertyId: 'prop-004',
needId: 'need-001',
matchScore: 64,
matchStrength: MatchStrength.MODERATE,
scoreBreakdown: {
hardMatchScore: 78,
softFactorScore: 62,
confidenceModifier: 0.68,
dataQualityModifier: 0.55,
totalScore: 64,
},
positiveFactors: [
{ criterion: 'Fläche', weight: 0.20, score: 88, contribution: 17.6, explanation: '1150m² liegt im erweiterten Korridor' },
{ criterion: 'Standort', weight: 0.20, score: 80, contribution: 16, explanation: 'Zürich Kreis 4 nahe bevorzugten Lagen' },
],
negativeFactors: [
{ criterion: 'Datenqualität', weight: 0.10, score: 40, contribution: 4, explanation: 'Mehrere kritische Felder fehlen Verlässlichkeit eingeschränkt' },
{ criterion: 'Mietpreis', weight: 0.15, score: 55, contribution: 8.25, explanation: 'CHF 52/m² deutlich über Budget' },
],
tradeoffs: [
{ criterion: 'Datenqualität', concern: 'Externe Quelle Mietpreis und Verfügbarkeit nicht bestätigt', severity: 'HIGH', mitigation: 'Direkte Anfrage beim Anbieter empfohlen' },
{ criterion: 'Budget', concern: 'Mietpreis 30% über Budget-Maximum', severity: 'HIGH' },
],
explainabilitySummary: 'Moderater Match Fläche und Lage passen, aber Mietpreis und Datenqualität sind kritische Vorbehalte. Nur mit Preisverhandlung und Verifikation sinnvoll.',
confidenceLevel: 0.58,
riskLevel: RiskLevel.MEDIUM,
uncertaintyIndicators: ['Daten aus Drittquelle unvollständig', 'Mietpreis nicht verifiziert'],
organizationId: 'org-wincasa',
createdAt: '2025-05-10T08:05:00Z',
updatedAt: '2025-05-10T08:05:00Z',
},
{
id: 'match-003',
propertyId: 'prop-002',
needId: 'need-002',
matchScore: 91,
matchStrength: MatchStrength.STRONG,
scoreBreakdown: {
hardMatchScore: 94,
softFactorScore: 89,
confidenceModifier: 0.99,
dataQualityModifier: 0.96,
totalScore: 91,
},
positiveFactors: [
{ criterion: 'Fläche', weight: 0.25, score: 96, contribution: 24, explanation: '2400m² im Zielkorridor (15004000m²)' },
{ criterion: 'Autobahnanschluss', weight: 0.20, score: 92, contribution: 18.4, explanation: 'A2-Anschluss ca. 4 Min., Kriterium erfüllt' },
{ criterion: 'Budget', weight: 0.20, score: 88, contribution: 17.6, explanation: 'CHF 14/m² liegt unter Maximum von CHF 18/m²' },
{ criterion: 'Datenqualität', weight: 0.10, score: 96, contribution: 9.6, explanation: 'Verifiziertes Portfolioobjekt, alle Felder vollständig' },
],
negativeFactors: [
{ criterion: 'Erweiterungspotenzial', weight: 0.05, score: 70, contribution: 3.5, explanation: '800m² Erweiterung möglich, aber begrenzt' },
],
tradeoffs: [],
explainabilitySummary: 'Sehr starker Match. Fläche, Anbindung und Budget passen exzellent. Hohe Datenqualität aus internem Portfolio bestätigt Verlässlichkeit.',
confidenceLevel: 0.96,
riskLevel: RiskLevel.LOW,
uncertaintyIndicators: [],
organizationId: 'org-wincasa',
createdAt: '2025-05-10T08:10:00Z',
updatedAt: '2025-05-10T08:10:00Z',
},
{
id: 'match-004',
propertyId: 'prop-006',
needId: 'need-002',
matchScore: 47,
matchStrength: MatchStrength.WEAK,
scoreBreakdown: {
hardMatchScore: 70,
softFactorScore: 40,
confidenceModifier: 0.48,
dataQualityModifier: 0.30,
totalScore: 47,
},
positiveFactors: [
{ criterion: 'Fläche', weight: 0.25, score: 85, contribution: 21.25, explanation: '3200m² im erweiterten Zielkorridor' },
{ criterion: 'Standort', weight: 0.20, score: 72, contribution: 14.4, explanation: 'Reinach BL ist eine bevorzugte Region' },
],
negativeFactors: [
{ criterion: 'Confidence', weight: 0.15, score: 20, contribution: 3, explanation: 'Nur 48% Signalwahrscheinlichkeit kein bestätigtes Objekt' },
{ criterion: 'Datenqualität', weight: 0.10, score: 15, contribution: 1.5, explanation: 'Mehrere kritische Felder fehlen, Schätzwerte' },
{ criterion: 'Timing', weight: 0.15, score: 50, contribution: 7.5, explanation: 'Verfügbarkeit erst Q2 2026, spät für Anforderung' },
],
tradeoffs: [
{ criterion: 'Verfügbarkeit', concern: 'Probabilistisches Future-Signal keine Garantie auf Verfügbarkeit', severity: 'HIGH', mitigation: 'Für Monitoring-Watchlist geeignet' },
{ criterion: 'Daten', concern: 'Mietpreis geschätzt, Andienung nicht bestätigt', severity: 'HIGH' },
],
explainabilitySummary: 'Schwacher Match aufgrund hoher Unsicherheit. Das Signal ist interessant als Frühindikator, aber nicht als aktive Option geeignet. Empfehlung: Watchlist.',
confidenceLevel: 0.38,
riskLevel: RiskLevel.HIGH,
uncertaintyIndicators: ['Probabilistisches Signal ohne Bestätigung', 'Mietpreis geschätzt', 'Verfügbarkeitsdatum unsicher'],
alternativeStrategies: [
{ title: 'Signal beobachten', description: 'Als Future-Availability-Signal auf Watchlist setzen und in 3 Monaten neu evaluieren' },
],
organizationId: 'org-wincasa',
createdAt: '2025-05-10T08:15:00Z',
updatedAt: '2025-05-10T08:15:00Z',
},
]