export const MODULES = [
  { id: "dashboard",     label: "Dashboard",     actions: ["view", "create", "edit", "delete"] },
  { id: "employees",     label: "Employees",     actions: ["view", "create", "edit", "delete"] },
  { id: "departments",   label: "Departments",   actions: ["view", "create", "edit", "delete"] },
  { id: "branches",      label: "Branches",      actions: ["view", "create", "edit", "delete"] },
  { id: "leave",         label: "Leave",         actions: ["view", "create", "edit", "delete", "process"] }, 
  { id: "shifts",        label: "Shifts",        actions: ["view", "create", "edit", "delete"] },
  { id: "payroll",       label: "Payroll",       actions: ["view", "create", "edit", "delete"] },
  { id: "attendance",    label: "Attendance",    actions: ["view", "create", "edit", "delete"] },
  { id: "users",         label: "Users",         actions: ["view", "create", "edit", "delete"] },
  { id: "roles",         label: "Roles",         actions: ["view", "create", "edit", "delete"] },
  { id: "notifications", label: "Notifications", actions: ["view", "create", "edit", "delete"] },
] as const

export const ACTIONS = ["view", "create", "edit", "delete", "process"] as const

export type ModuleId = (typeof MODULES)[number]["id"]
export type ActionType = (typeof ACTIONS)[number]

export function getModuleActions(moduleId: string): ActionType[] {
  const module = MODULES.find((m) => m.id === moduleId)
  return module ? ([...module.actions] as ActionType[]) : ["view", "create", "edit", "delete"]
}

export function getPermissionLabel(moduleId: string, action: string): string {
  const moduleEntry = MODULES.find((m) => m.id === moduleId)
  const moduleLabel = moduleEntry?.label || moduleId
  return `${action}-${moduleLabel.toLowerCase().replace(/\s+/g, "-")}`
}

export function formatPermissionBadge(moduleId: string, action: string): string {
  return `${action}-${moduleId}`
}