Commit Graph

8 Commits

Author SHA1 Message Date
Benjamin Sutter cc5582b7fd refactor: dritte Bereinigungsrunde Property On
Kopfzeile: Der zusaetzliche Titelbalken mit dem Chip Verwaltung und dem
wiederholten Seitennamen entfaellt auf allen Hauptseiten, ebenso der
Einstieg AI Assistent. Ohne Trennlinie geht die Zeile bruchlos in den
Seiteninhalt ueber; Glocke und Profil bleiben rechts stehen. Der
Pilotkunde heisst sichtbar Beispiel Immobilien AG, die technische Kennung
org-wincasa bleibt unangetastet.

Flaechensuche und Anfragencenter sind aus Navigation, Routing und Branch
entfernt. Verweise, die dadurch ins Leere zeigten, haengen neu am Match
Center; der Quicklink ins Anfragencenter im Vorgangsdetail ist entfallen.

Meine Objekte: feste vier Karten je Zeile auf Desktop, zwei auf Tablet,
eine auf Mobil. Die Dichteauswahl 3/5/10 und der Datenpflege-Hinweis sind
weg; die Datenpflege bleibt als eigener Hauptreiter erreichbar.

Objektbilder liegen erstmals lokal. Zuvor zeigten 98 Objekte auf Unsplash
und teilten sich 29 Fotos, verschiedene Adressen trugen also dasselbe
Bild. Neu traegt jede Objekt-ID genau eine eigene Datei; die Zuordnung
laeuft ueber die stabile ID, nicht ueber den Titel. Die Dateien sind
erzeugte Vektorgrafiken, keine Fotografien - echte Aufnahmen ersetzen sie
spaeter unter demselben Dateinamen ohne Codeaenderung. Vite bettet sie
nicht mehr als Base64 ein, damit alle Objekte gleich behandelt sind.

Teamuebersicht zeigt nur noch das Kernteam; die Stufenfilter sind
entfallen und die aeusseren Ringe werden nicht mehr gezeichnet statt nur
durchsichtig zu sein - unsichtbare, aber anspringbare Schaltflaechen sind
eine Falle. Die Nabe nennt daher die Zahl der gezeigten Mitarbeitenden
statt der Gesamtzahl. Die Personalverwaltung hat nur noch die
Dossieransicht, der Umschalter und das drehbare Organigramm sind weg.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 10:37:36 +02:00
Benjamin Sutter 36570c5bdc fix: resolve all TypeScript errors and refactor oversized components
- Fix MUI v9 API: PaperProps/InputLabelProps/inputProps → slotProps in 6 components
- Add ExternalMarketResult alias, PropertyUnit import, OPERATIONS workspace config
- Fix TradeOff.description → .concern, ScoreFactor.label → .criterion
- Make schattenmarktRelease.leadTimeMonths optional, fix mock-data enum values
- Fix useMatchDetailData query typing, weightingService missing WeightProfile keys
- Split Pipeline/Compare/MatchDetail/IntelligenceMatchCard into sub-components
- Fix all test fixtures (CreateNeedInput, CreatePropertyInput, TradeOffInput, etc.)
- Add vercel.json for deployment, zero tsc errors

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 00:08:35 +02:00
Benjamin Sutter 99c26b5464 feat: Decision Intelligence simplification pass
Phase 1 — MatchDetail: collapse from 11 panels to 3 visible sections
(Warum dieser Match? / Nächste Aktion / toggle). All analysis panels
(ScoreBreakdown, Risk, MissingData, NeedAlignment, Location, Tradeoffs,
FutureAvailabilityContext) hidden behind "Vollständige Analyse anzeigen".
Removes 2-column sidebar layout for cleaner single-column reading flow.

Phase 2 — Supply Dashboard: replace data quality KPIs with demand
intelligence. Hero now shows "Starke Match-Anfragen", active properties,
and Zukunftssignale count. Top 4 matches listed with score + reason +
next action. Data quality demoted to secondary collapsed notice.

Phase 3 — Future Availability: add informational banner above the results
feed when Zukunftssignale are present. Framed as professional market
intelligence (contract expiries, construction signals) not as risk.
Removed Zukunftssignal from DecisionContextPanel risks array.

Phase 4 — Naming: standardise RESULT_TYPE_META to "Verifiziertes Objekt" /
"Externes Angebot" / "Maison Work" / "Zukunftssignal" across all screens.
EXTERNAL_MARKET gets distinct amber color (#d97706). Remove Gold/Silver/
Bronze tier label from match score badge — only the % number is shown.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 17:09:12 +02:00
Benjamin Sutter 920ce8eb09 feat: Verwaltungszugang refactor — lease data, 3-tab detail, market signals
- Dashboard: remove QuickActionPanel, StrongMatchOverview, FutureSignalWidget,
  DataQualityWidget, header buttons, Marktchancen nav; KpiGrid → 4 cards
- Property domain: 9 new fields (leaseTerm, leaseStartDate/End, breakoutOption,
  currentTenant, importedFrom, importedAt, lastUpdatedAt)
- Mock data: annual CHF/m²/Jahr prices (×12), Swiss images, tenant/lease data
  for all 10 VERIFIED_PORTFOLIO properties; need budgets updated to annual
- PropertyTable: swap columns — add Aktueller Mieter, Mietlaufzeit,
  Breakoutoption, Breakoutoption Zeitpunkt; remove Verfügbarkeit, Konfidenz, Quelle
- PropertyDetailView: 3 tabs (Übersicht, Matchability, Marktsignale) with
  inline edit mode, NeedMatchCard list, PropertyMarketSignalsTab
- New: marketReport domain + mock data + service, NeedMatchCard,
  PropertyMarketSignalsTab with 4 sections + PDF button
- matchService: getNeedMatchesForProperty(propertyId, {minScore})

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 15:43:52 +02:00
Benjamin Sutter 7b7be0b436 feat: F006 supply dashboard — complete spec implementation
- dataQualityService with getPortfolioQualitySummary()
- Service methods: getDashboardPropertiesSummary, getStrongMatches,
  getSignalSummary, getDashboardTasks added to respective services
- dashboardService uses Promise.allSettled for partial error resilience
- KpiCard: onClick + Tooltip support
- KpiGrid: navigate actions and tooltips per card
- StrongMatchMiniCard: Match Center, Prüfung, Vergleichen action buttons
- FutureSignalWidget: time horizon distribution (0–6, 6–12, 12–24 Mo.)
- SupplyDashboard: DashboardHeader, empty state, error state,
  partial widget errors, permission-based rendering per UserRole

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 16:31:54 +02:00
Benjamin Sutter 46acca9e62 feat: F006 supply dashboard — KPI grid, strong matches, data quality, future signals, review tasks
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 16:08:49 +02:00
Benjamin Sutter e20e0e9a2e fix: resolve all MUI v9 TypeScript build errors
- Move system props (fontWeight, lineHeight, display, alignItems, etc.) into sx
- Fix Lucide icon color prop (no sx support)
- Merge duplicate sx attributes
- Remove unused variables (location, _needId, v)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 10:37:07 +02:00
Benjamin Sutter 9e827c50f9 Initial commit 2026-05-15 00:48:18 +02:00