tyt-api/seed.ts
2026-01-19 02:10:46 +08:00

94 lines
2.2 KiB
TypeScript

import { db } from "./src/index";
import { roleTable } from "./src/modules";
const roles = [
{
name: "超级管理员",
code: "ADMIN",
description: "平台最高管理员,拥有所有权限",
permissions: JSON.stringify([
"view_all",
"manage_all",
"view_hospitals",
"manage_hospitals",
"view_departments",
"manage_departments",
"view_groups",
"manage_groups",
"view_doctors",
"manage_doctors",
"view_patients",
"manage_patients",
"view_roles",
"manage_roles",
]),
},
{
name: "普通医生",
code: "DOCTOR",
description: "可以查看和管理自己的患者",
permissions: JSON.stringify(["view_own_patients", "manage_own_patients"]),
},
{
name: "组长",
code: "GROUP_LEADER",
description: "可以查看和管理小组内所有医生的患者",
permissions: JSON.stringify([
"view_own_patients",
"manage_own_patients",
"view_group_patients",
"manage_group_patients",
]),
},
{
name: "科室主任",
code: "DIRECTOR",
description: "可以查看和管理科室内所有医生的患者",
permissions: JSON.stringify([
"view_own_patients",
"manage_own_patients",
"view_group_patients",
"manage_group_patients",
"view_department_patients",
"manage_department_patients",
]),
},
{
name: "工程师",
code: "ENGINEER",
description: "可以接收和处理调压任务",
permissions: JSON.stringify([
"view_tasks",
"accept_tasks",
"cancel_tasks",
"update_tasks",
]),
},
];
async function seed() {
console.log("开始插入角色数据...");
for (const role of roles) {
try {
const existing = await db.query.roleTable.findFirst({
where: (table, { eq }) => eq(table.code, role.code),
});
if (!existing) {
await db.insert(roleTable).values(role);
console.log(`✓ 创建角色: ${role.name}`);
} else {
console.log(`- 角色已存在: ${role.name}`);
}
} catch (error) {
console.error(`✗ 创建角色失败: ${role.name}`, error);
}
}
console.log("角色数据插入完成!");
process.exit(0);
}
seed();