import type { SignalType, RiskLevel, ReviewStatus } from './enums'

export interface SignalSource {
  type: 'PRESS' | 'CONSTRUCTION_PERMIT' | 'JOB_POSTING' | 'COMPANY_REPORT' | 'MARKET_DATA' | 'MANUAL'
  url?: string
  publishedAt?: string
  credibility: 'LOW' | 'MEDIUM' | 'HIGH'
}

export interface SignalEvidence {
  summary: string
  sourceUrls?: string[]
  extractedAt?: string
}

export interface FutureSignal {
  id: string
  signalType: SignalType
  companyName?: string
  propertyId?: string
  locationHint: string
  areaSqmEstimate?: number
  probability: number
  confidenceScore: number
  timeHorizonMonths: number
  source: SignalSource
  sensitivityLevel: 'PUBLIC' | 'INTERNAL' | 'CONFIDENTIAL'
  disclaimer: string
  riskLevel: RiskLevel
  marketIndicator?: string
  relevanceScore?: number
  isVerified: boolean
  verifiedBy?: string
  verifiedAt?: string
  expiresAt?: string
  organizationId?: string
  createdAt: string
  updatedAt: string

  // F004 additions
  title?: string                       // short human-readable headline
  evidence?: SignalEvidence            // structured evidence block
  matchabilityScore?: number           // 0–100: how well this signal can be matched to needs
  reviewStatus?: ReviewStatus
}
