DATA MODEL · v2 PREVIEW

人生战略决策仿真系统
核心数据结构

三层架构 · TypeScript + JSON Schema · 学历 4 档 · 路径 2 条主路径 + 子模式

类型检查 0 errors TypeScript strict JSON Schema 3 套 预置数据 7 行业 / 7 城市 / 6 国家

🧱 三层架构总览

OVERVIEW

个人 → 路径 → 环境,逐层抽象,任意一层可独立扩展

LAYER 1

UserPersona 用户画像

个人基础信息 7 大维度

  • education.level (4 档)
  • skills.englishLevel (0-5)
  • financial.parentalSupportCapacity
  • family.supportLevel (0-10)
LAYER 2

PathVariable 路径定义

2 条主路径 + 子模式 + 出海倾向

  • defensive_system
  • offensive_market_overseas
  • subMode: employment/entrepreneurship
  • overseasLean: none/remote/relocate
LAYER 3

EnvironmentFactor 环境系数

4 大维度 + 真实数据接入层

  • industries (7 行业)
  • locations (7 城市)
  • civicExamination (3 类型)
  • overseasOpportunities (6 国家)

① UserPersona 用户画像

models/types.ts

六大核心维度 + 1 个扩展槽位 customAttributes?

EducationBackground 必填

学历精简为 4 档,避免过度细分;海归作为独立标识,对出海路径是关键差异变量。

levelEducationLevel学历等级 (4 档枚举见下)
overseasDegreeboolean?⭐ 是否海归(出海路径关键)
majorstring?专业领域
universityRanknumber? 1-100学校综合排名
graduationYearnumber?毕业年份
overseasExperience{country, duration, type}?海外经历详情
硕士及以上985/211本科普通本科专科及以下

💡 v1 原 7 档(985硕/985本/211硕/211本/普通本科/专科/自学)已合并为 4 档

SkillProfile englishLevel 必填

独立提取的英语等级字段(你明确要求),0-5 评分;专业技能与软技能分层管理。

englishLevel0|1|2|3|4|50=零基础, 1=基础对话, 2=工作可读, 3=商务流利, 4=接近母语, 5=母语级
professionalSkillsobject?编程/数据/产品/UX/销售/财务/法务/工程/写作/研究 (各 0-10)
softSkillsobject?沟通/学习动力/韧性/领导力/谈判 (各 0-10)
languages{[lang]: 'native'|'fluent'|'intermediate'|'basic'}?其它语种能力 map

NetworkCapital quality 必填

人脉不再是一个数字,而是按"路径相关性"拆分为三个布尔开关。

qualitynumber 0-10总体质量
hasGovernmentConnectionsboolean?体制内路径关键
hasIndustryInsiderboolean?市场化路径关键
hasOverseasMentorboolean?出海路径关键
keyContactsCountinteger?核心人脉数

FinancialProfile 必填

包含你明确要求的"家庭支援水平"字段 parentalSupportCapacity

initialCapitalnumber初始存款(元)
monthlyExpensenumber月支出(元)
disposableIncomeRationumber 0-1可支配收入占比
parentalSupportCapacitynumber?⭐ 父母可支援上限(元)
hasDebtobject?学生贷款/其他负债
investmentExperienceYearsobject?股票/房产/加密/创业投资年限

FamilyContext 必填

家庭支援程度(你明确要求)+ 阶层 + 赡养压力。

socialClass'upper'|'upper_middle'|'middle'|'lower_middle'|'lower'家庭经济阶层
supportLevelnumber 0-10⭐ 家庭支援程度
onlyChildboolean?是否独生子女
elderCareResponsibility'none'|'light'|'moderate'|'heavy'?赡养压力
hometownstring?家乡所在地
hasEntrepreneurialFamilyboolean?是否家庭创业/经商背景

PersonalityTraits 必填

性格精简为 3 个最关键维度。

riskTolerance-1|0|1-1=规避, 0=平衡, 1=进取
ambiguityTolerancenumber 0-10不确定性容忍度
extraversionnumber 0-10外向性

MarriageView status & marriageIntention 必填

婚恋观:状态、态度、伴侣稳定度、对事业的影响。

status6 种枚举single / dating / engaged / married / married_with_kids / divorced
marriageIntention4 种枚举not_interested / open / important / critical
partnerStabilitynumber? 0-10伴侣职业稳定度
childrenCountinteger?子女数量
familyInfluenceOnCareernumber? 0-10家人对事业选择的影响度

② PathVariable 路径定义

models/types.ts

2 条主路径 + 子模式 + 出海倾向 + 路径转换成本

PathCharacteristics id/name/description 必填

路径的核心定义:时间周期、收入曲线、风险结构、学习投入、机会窗口、同化风险。

id'defensive_system' | 'offensive_market_overseas'主路径 ID(2 选 1)
namestring路径名称
timelineYears{breakeven, peak, lockIn}平衡点/峰值/锁定 年数
incomeProfilePathIncomeProfile起始/5年/10年/波动率/天花板
riskProfilePathRiskProfile失业/收入不稳/政策/天花板风险 (各 0-1)
opportunityWindow{optimalAgeRange, windowClosesAt, recoveryDifficulty}最佳年龄/窗口期/恢复难度
assimilationRisk{physicalLockin, cognitiveDecline, timeFragmentation, resistanceToChange}同化锁定风险 4 维度
subModesPathSubMode[]?⭐ 子模式(仅市场化路径)
overseasLeanOverseasLean[]?⭐ 出海倾向(仅市场化路径)
scalability{passiveIncome, exitMultiples, international}?扩展性因子(被动收入/退出倍数/国际化)

PathSubMode 子模式 仅 offensive_market_overseas

打工 vs 创业的收入曲线、风险结构差异巨大,必须分模式存储。

id'employment' | 'entrepreneurship'子模式 ID
namestring子模式名称
descriptionstring子模式说明
incomeOverridePartial?覆盖主路径的 5 项收入参数
riskOverridePartial?覆盖主路径的 4 项风险参数
employment entrepreneurship

PathTransition 路径转换成本 可选

从一条主路径转向另一条主路径的代价、所需月数与成功率。

from / toPathId源路径 / 目标路径
costMultipliernumber转换代价倍数
timeInMonthsnumber转换所需月数
successRatenumber 0-1转换成功率

预置:体制内 → 市场化 2x·6月·60%,市场化 → 体制内 4x·12月·15%

③ EnvironmentFactor 环境系数

models/types.ts + environmentConfig.ts

4 大维度 + 真实数据接入层 + 宏观指标

IndustrySalaryDynamics 行业薪资动态 你明确要求

行业薪资年增长率是你明确要求的字段,关联周期、政策风险、技能贬值速率。

industryId / industryNamestring行业 ID / 中文名
baseSalarynumber一线毕业生起始月薪(元)
annualGrowthRatenumber⭐ 行业薪资年增长率 (0.15 = 15%)
cycle{duration, peakMultiplier, troughMultiplier}周期年数 / 峰谷倍数
cyclicalIndex{current, projected5y, projected10y}景气度 0-1(当前/5年/10年预测)
policyRiskScore / skillDepreciationRatenumber 0-10 / 0-1政策风险 / 技能年贬值率

预置 7 行业:互联网/科技 (15%)、金融 (8%)、制造 (5%)、咨询 (10%)、教育 (3%)、医疗 (6%)、体制内 (2.5%)

LocationEconomics 地理经济 你明确要求

一线/新一线/二线生活成本指数是你明确要求的字段,关联房租、机会密度、国际化。

locationId / locationName / tierstring城市 ID / 中文名 / 5 级分类
costOfLivingIndexnumber⭐ 一线/新一线/二线生活成本指数 (北京=100)
rentalMarket{averageRentPCM, rentToIncomeRatio, priceGrowthRate}月租 / 租薪比 / 年增长
opportunityDensity{jobMarketSize, startupEcosystem, corporateHQs, foreignCos}市场机会密度 4 维度
talentCompetitionnumber 0-1人才竞争度
internationalization / educationResourcesobject国际化 / 教育资源

预置 7 城市:北京 100 · 上海 98 · 深圳 95 · 杭州 75 · 苏州 68 · 二线 55 · 县城 30

CivicExaminationMarket 考编市场 你明确要求

考编录取难度系数是你明确要求的字段,关联 3 类考试、报录比、起薪。

examType3 种枚举civil_servant / public_institution / state_owned_enterprise
admissionRatenumber 0-1⭐ 考编录取难度 (录取率 0.022 = 2.2%)
difficultyScorenumber 0-10⭐ 难度系数 (0-10 评分)
applicantsPerPositionnumber平均报录比 (45 = 45:1)
minimumEducationRequirements{bachelor, master}最低学历要求占比
startingSalaryRange[min, max]起薪范围(元)

OverseasOpportunities 海外机会 你明确要求

海外移民/工作签证难度是你明确要求的字段,关联薪资倍数、税务、移民路径。

country / countryCodestring国家中文名 / ISO 代码
workVisaDifficultynumber 0-10⭐ 海外移民/工作签证难度 (10 最难)
salaryMultiplier / costOfLivingMultipliernumber薪资倍数 / 生活成本倍数(相对中国一线)
entrepreneurshipFriendliness / taxRatenumber创业友好度 0-10 / 所得税率 %
emigrationPath{type, minAge, minCapital, months, approvalRate}移民路径详情
chineseCommunitySize / englishFriendlinessnumber 0-1 / 0-10华人社区规模 / 英语友好度

预置 6 国:美国 (难度 8) · 新加坡 (5) · 英国 (7) · 加拿大 (6) · 迪拜 (4) · 日本 (6)

EnvironmentDataSource 真实数据接入层 ⭐ 强化

v2 强化:新增 apiEndpoints 字段,可在运行时拉取真实数据覆盖预置值。

statisticsstring?数据来源描述
lastUpdated / refreshRateDate? / 'daily'|'weekly'|...最近更新时间 / 刷新频率
apiEndpoints.salaryDatastring?⭐ 行业薪资 API 端点
apiEndpoints.rentDatastring?⭐ 房租 API 端点
apiEndpoints.examDatastring?⭐ 考编 API 端点
apiEndpoints.visaDatastring?⭐ 签证 API 端点

📊 路径对比(预置数据)

environmentConfig.ts

两条主路径的核心参数对比,鼠标移上可高亮

字段defensive_system 体制内offensive_market_overseas 市场化/出海
timelineYearsbreakeven 2 / peak 20 / lockIn 8breakeven 3 / peak 12 / lockIn 6
startingBaseline0.51.0
year5Growth1.3×2.5×
year10Growth1.6×5.0×
volatility0.050.30
ceiling0.75.0
unemployment0.020.30
policyRisk0.100.30
windowClosesAt3535
recoveryDifficulty0.9 (极难)0.4 (可恢复)
subModesemployment / entrepreneurship
overseasLeannone / remote_for_overseas / relocate

💾 预置数据总览

environmentConfig.ts

所有预置数据点货,可在运行时被 API 覆盖

INDUSTRIES · 7

行业薪资

  • technology (15%)
  • finance (8%)
  • manufacturing (5%)
  • consulting (10%)
  • education (3%)
  • healthcare (6%)
  • government_admin (2.5%)
LOCATIONS · 7

城市经济

  • beijing (index 100)
  • shanghai (98)
  • shenzhen (95)
  • hangzhou (75)
  • suzhou (68)
  • tier2_city (55)
  • county (30)
EXAM TYPES · 3

考编市场

  • civil_servant (2.2%)
  • public_institution (2.8%)
  • state_owned_enterprise (4%)
COUNTRIES · 6

海外机会

  • usa (签证难度 8)
  • singapore (5)
  • uk (7)
  • canada (6)
  • dubai (4)
  • japan (6)
AGE BANDS · 5

年龄红利

  • 22-25 (创业 1.0x)
  • 26-30 (1.2x 峰值)
  • 31-35 (0.9x 窗口关闭)
  • 36-45 (0.4x)
  • 45-60 (0.1x)
PATHS · 2

主路径 + 子模式

  • defensive_system
  • offensive_market_overseas
  • └ employment
  • └ entrepreneurship
  • overseasLean: 3 种
  • transitions: 2 条

🔌 集成示例

USAGE

前端收集 + 校验 + 组装推演输入

组装 SimulationInput

把三类数据装入推演引擎的输入对象。

import { pathVariableConfig, environmentFactorConfig } from './environmentConfig';
import type { UserPersona, SimulationInput } from './types';

const user: UserPersona = {
  age: 28,
  currentLocation: 'tier1',
  education: { level: '硕士及以上', overseasDegree: false, major: '计算机科学' },
  skills: { englishLevel: 3, professionalSkills: { programming: 7 } },
  network: { quality: 5, hasIndustryInsider: true },
  financial: { initialCapital: 150000, monthlyExpense: 6000, disposableIncomeRatio: 0.5, parentalSupportCapacity: 500000 },
  family: { socialClass: 'middle', supportLevel: 6 },
  personality: { riskTolerance: 1, ambiguityTolerance: 7, extraversion: 5 },
  marriage: { status: 'dating', marriageIntention: 'open' }
};

const input: SimulationInput = {
  user,
  paths: pathVariableConfig,
  environment: environmentFactorConfig,
  simulationConfig: { timeHorizon: 10, scenarioMode: 'moderate' }
};

JSON Schema 运行时校验

用 Ajv 编译导出的 schema 校验前端提交的数据。

import Ajv from 'ajv';
import { userPersonaSchema } from './types';

const ajv = new Ajv();
const validate = ajv.compile(userPersonaSchema);

if (!validate(user)) {
  console.error('用户数据校验失败:', validate.errors);
}

3 套导出的 JSON Schema:userPersonaSchema / pathVariableSchema / environmentFactorSchema

← 返回主页 推演表单 → /api/health