Files
shomal-hospital-ticketing-b…/src/seeders/permission.seed.ts
2026-06-07 14:21:02 +03:30

140 lines
3.2 KiB
TypeScript

import Permission from "../models/Permission";
export async function seedPermissions() {
const permissions = [
"filter.view",
/* ================================
✅ TICKETS
================================= */
"ticket.create",
"ticket.view",
"ticket.view_all",
"ticket.update",
"ticket.delete",
"ticket.assign",
"ticket.change_status",
"ticket.close",
"ticket.reopen",
"ticket.comment",
"ticket.internal_note",
"ticket.upload_file",
"ticket.merge",
"ticket.export",
/* ================================
✅ USERS
================================= */
"user.view",
"user.view_all",
"user.create",
"user.update",
"user.delete",
"user.activate",
"user.deactivate",
"user.assign_role",
/* ================================
✅ ROLES
================================= */
"role.view",
"role.create",
"role.update",
"role.delete",
/* ================================
✅ PERMISSIONS
================================= */
"permission.view",
"permission.assign_to_role",
"permission.assign_to_user",
/* ================================
✅ DEPARTMENTS
================================= */
"department.view",
"department.create",
"department.update",
"department.delete",
/* ================================
✅ REPORTS - SYSTEM LEVEL
================================= */
"report.system.view",
"report.system.export",
"report.department.view",
"report.department.export",
"report.operator.view",
"report.operator.export",
"report.sla.view",
"report.sla.export",
"report.kpi.view",
"report.kpi.export",
/* ================================
✅ DASHBOARD
================================= */
"dashboard.view",
"dashboard.view_advanced",
/* ================================
✅ SLA MANAGEMENT
================================= */
"sla.view",
"sla.create",
"sla.update",
"sla.delete",
/* ================================
✅ REQUEST TYPES
================================= */
"request_type.view",
"request_type.create",
"request_type.update",
"request_type.delete",
/* ================================
✅ TAGS
================================= */
"tag.view",
"tag.create",
"tag.update",
"tag.delete",
/* ================================
✅ SETTINGS
================================= */
"settings.view",
"settings.update",
/* ================================
✅ LOGS
================================= */
"log.view",
"audit.view",
/* ================================
✅ OPERATOR / PERFORMANCE
================================= */
"operator.view",
"operator.performance.view",
"operator.performance.export",
];
let createdCount = 0;
for (const name of permissions) {
const [perm, created] = await Permission.findOrCreate({
where: { name },
defaults: { name },
});
if (created) createdCount++;
}
console.log(`✅ Permissions Seeded. New created: ${createdCount}`);
}