← 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[]
}