94 lines
2.2 KiB
TypeScript
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();
|