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();