Files
JX-BPOS/apps/api/src/app/seed.ts
T
ChaiHaoandClaude Fable 5 0fe5222f79 MVP底座④:统一报价 1:1 流程包单实例 —— 四域物化,种子整体切换
14 语义节点/16 边:A5 是内置审批点(驳回走 reject 声明 reopen A4),
G2 的两条互斥分支显式汇合于 G2J —— 隐式合并过不了闭合校验(实测)。
顺手修 graph-to-pkg:卡点带 to 时还原成语义边,否则回边画成卡点一存盘就没了。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
2026-07-28 01:49:49 +08:00

28 lines
1.0 KiB
TypeScript

/**
* 播种入口(编码规范 §15 · M0/M1)。
* 种子数据本体在 `org` 模块的 domain(它是组织主数据,归 org 管);此处只做装配与运行。
*/
import { loadConfig } from './config.ts';
import { createContainer } from './container.ts';
import { seedMvp } from './seed-mvp.ts';
export async function seed(): Promise<void> {
const container = await createContainer(loadConfig());
try {
await container.org.ensureSeeded();
const { staff, positions } = await container.org.listStaff();
process.stdout.write(`种子完成:${positions.length} 个岗位 / ${staff.length} 名员工\n`);
for (const s of staff) process.stdout.write(` ${s.account.padEnd(12)} ${s.name}(${s.position.code})\n`);
// MVP 底座:四域数据 · 六活动槽位 · 1:1 流程包(README MVP 完成判据第 1 条)
process.stdout.write('\n── 治理台配置 ──\n');
await seedMvp(container);
} finally {
await container.close();
}
}
if (import.meta.url === `file://${process.argv[1]}`) {
await seed();
}