export interface KpiCardData {
  id: string
  label: string
  value: number | string
  trend?: 'up' | 'down' | 'neutral'
  trendLabel?: string
  accent?: string
  tooltip?: string
  onClick?: () => void
}

export interface StrongMatchItem {
  matchId: string
  propertyId: string
  propertyTitle: string
  propertyAddress: string
  needSummary: string
  matchScore: number
  topReason: string
  missingDataCount: number
  nextBestAction: string
}

export interface TimeHorizonDistribution {
  short: number   // 0–6 months
  medium: number  // 6–12 months
  long: number    // 12–24 months
}

export interface FutureSignalSummary {
  total: number
  highConfidence: number
  restricted: number
  needsReview: number
  avgTimeHorizonMonths: number
  timeHorizonDistribution: TimeHorizonDistribution
}

export interface DataQualitySummary {
  avgScore: number
  critical: number
  propertiesWithMissingCritical: number
  topMissingFields: string[]
}

export interface DashboardReviewTask {
  id: string
  title: string
  priority: 'HIGH' | 'MEDIUM' | 'LOW'
  status: string
  type: string
}

export interface DashboardData {
  totalProperties: number
  activeProperties: number
  strongMatchCount: number
  avgDataQuality: number
  futureSignals: FutureSignalSummary | null
  dataQuality: DataQualitySummary | null
  reviewTasks: DashboardReviewTask[] | null
  strongMatches: StrongMatchItem[] | null
  lastUpdated: string
}
