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>
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
export type SignalCategory = 'development' | 'demand' | 'supply' | 'negotiation'
|
||||
|
||||
export interface PropertyMarketSignal {
|
||||
id: string
|
||||
category: SignalCategory
|
||||
title: string
|
||||
body: string
|
||||
source?: string
|
||||
sourceUrl?: string
|
||||
date?: string
|
||||
confidence?: number
|
||||
}
|
||||
|
||||
export interface MarketReport {
|
||||
propertyId: string
|
||||
generatedAt: string
|
||||
signals: PropertyMarketSignal[]
|
||||
}
|
||||
+18
-1
@@ -1,4 +1,21 @@
|
||||
import type { MatchStrength, MatchStatus, RiskLevel, ResultType, ConfidenceLevel } from './enums'
|
||||
import type { MatchStrength, MatchStatus, RiskLevel, ResultType, ConfidenceLevel, AssetType } from './enums'
|
||||
|
||||
// ── PropertyNeedMatch (Matchability tab) ──────────────────────────────────────
|
||||
|
||||
export interface PropertyNeedMatch {
|
||||
matchId: string
|
||||
score: number
|
||||
needId: string
|
||||
needTitle: string
|
||||
company: string
|
||||
areaRequired: string
|
||||
budget: string
|
||||
locations: string[]
|
||||
assetType: AssetType
|
||||
timing: string
|
||||
mustHaves: string[]
|
||||
matchHighlights: string[]
|
||||
}
|
||||
|
||||
// ── Score Building Blocks ─────────────────────────────────────────────────────
|
||||
|
||||
|
||||
@@ -129,6 +129,16 @@ export interface Property {
|
||||
description?: string
|
||||
images?: string[]
|
||||
|
||||
leaseTerm?: string
|
||||
leaseStartDate?: string
|
||||
leaseEndDate?: string
|
||||
breakoutOption?: boolean
|
||||
breakoutOptionDate?: string
|
||||
currentTenant?: string
|
||||
importedFrom?: string
|
||||
importedAt?: string
|
||||
lastUpdatedAt?: string
|
||||
|
||||
status?: 'ACTIVE' | 'INACTIVE' | 'DRAFT' | 'ARCHIVED'
|
||||
lastReviewedAt?: string
|
||||
createdAt: string
|
||||
|
||||
Reference in New Issue
Block a user