278 lines
8.4 KiB
TypeScript
278 lines
8.4 KiB
TypeScript
// TypeScript interfaces for military situation data
|
||
import { US_KEY_LOCATIONS, IRAN_KEY_LOCATIONS } from './mapLocations'
|
||
|
||
export interface ForceAsset {
|
||
id: string
|
||
name: string
|
||
type: string
|
||
count: number
|
||
status: 'active' | 'standby' | 'alert'
|
||
location?: { lat: number; lng: number }
|
||
}
|
||
|
||
export interface ForceSummary {
|
||
totalAssets: number
|
||
personnel: number
|
||
navalShips: number
|
||
aircraft: number
|
||
groundUnits: number
|
||
uav: number
|
||
missileConsumed: number
|
||
missileStock: number
|
||
}
|
||
|
||
export interface PowerIndex {
|
||
overall: number
|
||
militaryStrength: number
|
||
economicPower: number
|
||
geopoliticalInfluence: number
|
||
}
|
||
|
||
export interface CombatLosses {
|
||
bases: { destroyed: number; damaged: number }
|
||
personnelCasualties: { killed: number; wounded: number }
|
||
/** 平民伤亡 */
|
||
civilianCasualties?: { killed: number; wounded: number }
|
||
aircraft: number
|
||
warships: number
|
||
armor: number
|
||
vehicles: number
|
||
/** 其它 */
|
||
drones?: number
|
||
missiles?: number
|
||
helicopters?: number
|
||
submarines?: number
|
||
/** 航母 */
|
||
carriers?: number
|
||
/** 民船 */
|
||
civilianShips?: number
|
||
/** 机/港(机场/港口) */
|
||
airportPort?: number
|
||
}
|
||
|
||
export interface SituationUpdate {
|
||
id: string
|
||
timestamp: string
|
||
category: 'deployment' | 'alert' | 'intel' | 'diplomatic' | 'other'
|
||
summary: string
|
||
severity: 'low' | 'medium' | 'high' | 'critical'
|
||
}
|
||
|
||
export interface ConflictEvent {
|
||
event_id: string
|
||
event_time: string
|
||
title: string
|
||
lat: number
|
||
lng: number
|
||
impact_score: number
|
||
url?: string
|
||
}
|
||
|
||
export interface ConflictStats {
|
||
total_events: number
|
||
high_impact_events: number
|
||
estimated_casualties: number
|
||
estimated_strike_count: number
|
||
}
|
||
|
||
export interface MilitarySituation {
|
||
lastUpdated: string
|
||
usForces: {
|
||
summary: ForceSummary
|
||
powerIndex: PowerIndex
|
||
assets: ForceAsset[]
|
||
keyLocations: {
|
||
name: string
|
||
lat: number
|
||
lng: number
|
||
type?: string
|
||
region?: string
|
||
id?: number
|
||
status?: 'operational' | 'damaged' | 'attacked'
|
||
damage_level?: number
|
||
}[]
|
||
combatLosses: CombatLosses
|
||
/** 华尔街财团投入趋势 { time: ISO string, value: 0-100 } */
|
||
wallStreetInvestmentTrend: { time: string; value: number }[]
|
||
}
|
||
iranForces: {
|
||
summary: ForceSummary
|
||
powerIndex: PowerIndex
|
||
assets: ForceAsset[]
|
||
keyLocations: {
|
||
name: string
|
||
lat: number
|
||
lng: number
|
||
type?: string
|
||
region?: string
|
||
id?: number
|
||
status?: 'operational' | 'damaged' | 'attacked'
|
||
damage_level?: number
|
||
}[]
|
||
combatLosses: CombatLosses
|
||
/** 反击情绪指标 0-100 */
|
||
retaliationSentiment: number
|
||
/** 历史情绪曲线 { time: ISO string, value: 0-100 } */
|
||
retaliationSentimentHistory: { time: string; value: number }[]
|
||
}
|
||
recentUpdates: SituationUpdate[]
|
||
/** GDELT 冲突事件 (1–3 绿点, 4–6 橙闪, 7–10 红脉) */
|
||
conflictEvents?: ConflictEvent[]
|
||
/** 战损统计(展示用) */
|
||
conflictStats?: ConflictStats
|
||
/** 平民伤亡合计(不区分阵营) */
|
||
civilianCasualtiesTotal?: { killed: number; wounded: number }
|
||
}
|
||
|
||
export const INITIAL_MOCK_DATA: MilitarySituation = {
|
||
lastUpdated: '2026-03-01T11:45:00.000Z',
|
||
usForces: {
|
||
summary: {
|
||
totalAssets: 1245,
|
||
personnel: 185000,
|
||
navalShips: 292,
|
||
aircraft: 1862,
|
||
groundUnits: 18,
|
||
uav: 418,
|
||
missileConsumed: 1056,
|
||
missileStock: 2840,
|
||
},
|
||
powerIndex: {
|
||
overall: 94,
|
||
militaryStrength: 96,
|
||
economicPower: 98,
|
||
geopoliticalInfluence: 97,
|
||
},
|
||
assets: [
|
||
{ id: 'us-1', name: '双航母打击群 (CVN-72 & CVN-78)', type: '航母', count: 2, status: 'active' },
|
||
{ id: 'us-2', name: '阿利·伯克级驱逐舰', type: '驱逐舰', count: 4, status: 'active' },
|
||
{ id: 'us-3', name: 'F/A-18 中队', type: '战机', count: 48, status: 'active' },
|
||
{ id: 'us-4', name: 'F-35 中队', type: '战机', count: 48, status: 'active' },
|
||
{ id: 'us-5', name: 'F-22 猛禽', type: '战机', count: 12, status: 'active' },
|
||
{ id: 'us-6', name: 'B-2 幽灵', type: '轰炸机', count: 2, status: 'alert' },
|
||
{ id: 'us-7', name: '爱国者防空系统', type: '防空', count: 3, status: 'active' },
|
||
{ id: 'us-8', name: 'MQ-9 死神', type: '无人机', count: 28, status: 'active' },
|
||
{ id: 'us-9', name: 'MQ-1C 灰鹰', type: '无人机', count: 45, status: 'active' },
|
||
],
|
||
keyLocations: US_KEY_LOCATIONS,
|
||
combatLosses: {
|
||
bases: { destroyed: 0, damaged: 2 },
|
||
personnelCasualties: { killed: 127, wounded: 384 },
|
||
civilianCasualties: { killed: 18, wounded: 52 },
|
||
aircraft: 2,
|
||
warships: 0,
|
||
armor: 0,
|
||
vehicles: 8,
|
||
drones: 4,
|
||
missiles: 12,
|
||
helicopters: 1,
|
||
submarines: 0,
|
||
carriers: 0,
|
||
civilianShips: 0,
|
||
airportPort: 0,
|
||
},
|
||
wallStreetInvestmentTrend: [
|
||
{ time: '2025-03-01T00:00:00', value: 82 },
|
||
{ time: '2025-03-01T03:00:00', value: 85 },
|
||
{ time: '2025-03-01T06:00:00', value: 88 },
|
||
{ time: '2025-03-01T09:00:00', value: 90 },
|
||
{ time: '2025-03-01T12:00:00', value: 92 },
|
||
{ time: '2025-03-01T15:00:00', value: 94 },
|
||
{ time: '2025-03-01T18:00:00', value: 95 },
|
||
{ time: '2025-03-01T21:00:00', value: 96 },
|
||
{ time: '2025-03-01T23:00:00', value: 98 },
|
||
],
|
||
},
|
||
iranForces: {
|
||
summary: {
|
||
totalAssets: 7850,
|
||
personnel: 2350000,
|
||
navalShips: 4250,
|
||
aircraft: 8200,
|
||
groundUnits: 350,
|
||
uav: 750,
|
||
missileConsumed: 3720,
|
||
missileStock: 13800,
|
||
},
|
||
powerIndex: {
|
||
overall: 42,
|
||
militaryStrength: 58,
|
||
economicPower: 28,
|
||
geopoliticalInfluence: 35,
|
||
},
|
||
assets: [
|
||
{ id: 'ir-1', name: '护卫舰', type: '水面舰艇', count: 6, status: 'active' },
|
||
{ id: 'ir-2', name: '快攻艇', type: '海军', count: 100, status: 'active' },
|
||
{ id: 'ir-3', name: 'F-4 Phantom', type: '战机', count: 62, status: 'standby' },
|
||
{ id: 'ir-4', name: 'F-14 Tomcat', type: '战机', count: 24, status: 'active' },
|
||
{ id: 'ir-5', name: '弹道导弹', type: '导弹', count: 3400, status: 'alert' },
|
||
{ id: 'ir-6', name: '伊斯兰革命卫队海军', type: '准军事', count: 25000, status: 'active' },
|
||
{ id: 'ir-7', name: '沙希德-136', type: '无人机', count: 750, status: 'alert' },
|
||
{ id: 'ir-8', name: '法塔赫 (Fattah)', type: '导弹', count: 12, status: 'alert' },
|
||
{ id: 'ir-9', name: '穆哈杰-6', type: '无人机', count: 280, status: 'active' },
|
||
],
|
||
keyLocations: IRAN_KEY_LOCATIONS,
|
||
combatLosses: {
|
||
bases: { destroyed: 3, damaged: 8 },
|
||
personnelCasualties: { killed: 2847, wounded: 5620 },
|
||
civilianCasualties: { killed: 412, wounded: 1203 },
|
||
aircraft: 24,
|
||
warships: 12,
|
||
armor: 18,
|
||
vehicles: 42,
|
||
drones: 28,
|
||
missiles: 156,
|
||
helicopters: 8,
|
||
submarines: 2,
|
||
carriers: 0,
|
||
civilianShips: 0,
|
||
airportPort: 0,
|
||
},
|
||
retaliationSentiment: 78,
|
||
retaliationSentimentHistory: [
|
||
{ time: '2025-03-01T00:00:00', value: 42 },
|
||
{ time: '2025-03-01T03:00:00', value: 48 },
|
||
{ time: '2025-03-01T06:00:00', value: 55 },
|
||
{ time: '2025-03-01T09:00:00', value: 61 },
|
||
{ time: '2025-03-01T12:00:00', value: 58 },
|
||
{ time: '2025-03-01T15:00:00', value: 65 },
|
||
{ time: '2025-03-01T18:00:00', value: 72 },
|
||
{ time: '2025-03-01T21:00:00', value: 76 },
|
||
{ time: '2025-03-01T23:00:00', value: 78 },
|
||
],
|
||
},
|
||
recentUpdates: [
|
||
{
|
||
id: 'u1',
|
||
timestamp: new Date(Date.now() - 3600000).toISOString(),
|
||
category: 'deployment',
|
||
summary: '美军航母打击群在阿拉伯海重新部署',
|
||
severity: 'medium',
|
||
},
|
||
{
|
||
id: 'u2',
|
||
timestamp: new Date(Date.now() - 7200000).toISOString(),
|
||
category: 'alert',
|
||
summary: '霍尔木兹海峡海军巡逻活动加强',
|
||
severity: 'high',
|
||
},
|
||
{
|
||
id: 'u3',
|
||
timestamp: new Date(Date.now() - 10800000).toISOString(),
|
||
category: 'intel',
|
||
summary: '卫星图像显示阿巴斯港活动增加',
|
||
severity: 'low',
|
||
},
|
||
{
|
||
id: 'u4',
|
||
timestamp: new Date(Date.now() - 14400000).toISOString(),
|
||
category: 'diplomatic',
|
||
summary: '阿曼间接谈判进行中',
|
||
severity: 'low',
|
||
},
|
||
],
|
||
conflictEvents: [],
|
||
conflictStats: { total_events: 0, high_impact_events: 0, estimated_casualties: 0, estimated_strike_count: 0 },
|
||
civilianCasualtiesTotal: { killed: 430, wounded: 1255 },
|
||
}
|