← back to Goodquestion

src/types/swot.ts

194 lines

// Core SWOT Analysis Types
export interface SWOTElement {
  id: string
  title: string
  description: string
  impact: 'low' | 'medium' | 'high'
  confidence: number // 0-100
  sources: string[]
}

export interface Strength extends SWOTElement {
  category: 'competitive' | 'financial' | 'operational' | 'market'
}

export interface Weakness extends SWOTElement {
  category: 'cost' | 'market' | 'operational' | 'regulatory'
  mitigationStrategy?: string
}

export interface Opportunity extends SWOTElement {
  category: 'market' | 'trend' | 'technology' | 'regulatory'
  timeframe: 'immediate' | 'short-term' | 'medium-term' | 'long-term'
  feasibility: number // 0-100
}

export interface Threat extends SWOTElement {
  category: 'competitive' | 'economic' | 'regulatory' | 'market'
  severity: 'low' | 'medium' | 'high' | 'critical'
  likelihood: number // 0-100
}

export interface SWOTAnalysis {
  businessName: string
  businessType: string
  location: string
  dateGenerated: string
  strengths: Strength[]
  weaknesses: Weakness[]
  opportunities: Opportunity[]
  threats: Threat[]
  overallScore: number // 0-100
  recommendation: 'go' | 'no-go' | 'proceed-with-caution'
  recommendationReasoning: string
}

// Historical Context Types
export interface HistoricalEvent {
  year: number
  title: string
  description: string
  economicImpact: 'positive' | 'negative' | 'neutral'
  relevance: number // 0-100
}

export interface AreaTrajectory {
  metric: string
  data: {
    year: number
    value: number
  }[]
  trend: 'increasing' | 'decreasing' | 'stable'
  forecast?: {
    year: number
    value: number
    confidence: number
  }[]
}

export interface HistoricalContext {
  areaName: string
  summary: string
  keyEvents: HistoricalEvent[]
  trajectories: AreaTrajectory[]
}

// Market Analysis Types
export interface CompetitorData {
  name: string
  type: string
  distance: number // in miles
  yearEstablished?: number
  estimatedRevenue?: number
  rating?: number
}

export interface MarketSize {
  totalAddressableMarket: number
  serviceableMarket: number
  targetMarket: number
  marketSharePotential: number // percentage
  assumptions: string[]
}

export interface IncomeProjection {
  year: number
  optimistic: number
  realistic: number
  pessimistic: number
  confidence: number
}

export interface MarketAnalysis {
  competitors: CompetitorData[]
  marketSize: MarketSize
  incomeProjections: IncomeProjection[]
  demographics: {
    population: number
    medianIncome: number
    averageHouseholdSize: number
    targetDemographicPercentage: number
  }
}

// MCP Integration Types
export interface MCPSearchResult {
  id: string
  title: string
  snippet: string
  relevance: number
  source: string
  datePublished?: string
}

export interface MCPDocument {
  id: string
  content: string
  metadata: {
    source: string
    datePublished?: string
    author?: string
    documentType: string
  }
}

// Startup Capital Types
export interface AssetItem {
  id: string
  name: string
  category: 'equipment' | 'furniture' | 'technology' | 'inventory' | 'signage' | 'renovation' | 'other'
  purchasePrice?: number
  rentalRate?: {
    amount: number
    period: 'monthly' | 'yearly'
  }
  isRental: boolean
  quantity: number
  description: string
  priority: 'essential' | 'recommended' | 'optional'
}

export interface StartupCosts {
  oneTimeExpenses: {
    assets: AssetItem[]
    legalFees: number
    permits: number
    initialInventory: number
    deposits: number
    other: { description: string; amount: number }[]
  }
  recurringExpenses: {
    rent: number
    utilities: number
    insurance: number
    payroll: number
    marketing: number
    other: { description: string; amount: number }[]
  }
  totalStartupCapital: number
  monthlyBurnRate: number
  runwayMonths: number
}

// Action Plan Types
export interface ActionItem {
  id: string
  category: 'domain' | 'infrastructure' | 'marketing' | 'research' | 'development'
  title: string
  description: string
  priority: 'low' | 'medium' | 'high' | 'critical'
  estimatedCost?: number
  estimatedTime?: string
  status: 'not-started' | 'in-progress' | 'completed'
  dependencies?: string[]
}

// Complete Platform State
export interface SWOTPlatformData {
  swotAnalysis: SWOTAnalysis
  historicalContext: HistoricalContext
  marketAnalysis: MarketAnalysis
  startupCosts: StartupCosts
  actionPlan: ActionItem[]
}