@apptimate/core-lib 2.9.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/constants/menus.ts +130 -129
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apptimate/core-lib",
3
- "version": "2.9.0",
3
+ "version": "3.1.0",
4
4
  "main": "src/index.ts",
5
5
  "types": "src/index.ts",
6
6
  "publishConfig": {
@@ -55,156 +55,157 @@ export interface RegistryItem {
55
55
  module: string;
56
56
  /** Default group label when added to a menu */
57
57
  defaultGroup: string;
58
+ /** Optional permission required to view this menu item */
59
+ permission?: string | null;
58
60
  }
59
61
 
60
62
  export const MENU_ITEM_REGISTRY: RegistryItem[] = [
61
63
  // ── Core Module ──
62
- { key: 'core__users', label: 'Users', path: '/users', module: 'Core', defaultGroup: 'User Management' },
63
- { key: 'core__roles', label: 'Roles', path: '/roles', module: 'Core', defaultGroup: 'User Management' },
64
- { key: 'core__organizations', label: 'Organizations', path: '/organizations', module: 'Core', defaultGroup: 'User Management' },
65
- { key: 'core__parties', label: 'Parties', path: '/parties', module: 'Core', defaultGroup: 'User Management' },
66
- { key: 'core__activity_logs', label: 'Activity Logs', path: '/activity-logs', module: 'Core', defaultGroup: 'System Auditing' },
67
- { key: 'core__api_requests', label: 'API Requests', path: '/system/api-requests', module: 'Core', defaultGroup: 'System Auditing' },
68
- { key: 'core__feature_access_logs', label: 'Feature Access Logs', path: '/system/feature-access-logs', module: 'Core', defaultGroup: 'System Auditing' },
69
- { key: 'core__issue_logs', label: 'Issue Logs', path: '/system/issue-logs', module: 'Core', defaultGroup: 'System Auditing' },
70
- { key: 'core__feature_registry', label: 'Feature Registry', path: '/system/features', module: 'Core', defaultGroup: 'System Auditing' },
71
- { key: 'core__menu_config', label: 'Menu Configuration', path: '/menu-config', module: 'Core', defaultGroup: 'System' },
72
- { key: 'core__printables', label: 'Printable Templates', path: '/system/printables', module: 'Core', defaultGroup: 'System' },
73
- { key: 'core__template_groups', label: 'Template Groups', path: '/system/template-groups', module: 'Core', defaultGroup: 'System' },
74
- { key: 'core__warehouses', label: 'Warehouses', path: '/warehouses', module: 'Core', defaultGroup: 'Resources' },
75
- { key: 'core__terminals', label: 'Terminals', path: '/terminals', module: 'Core', defaultGroup: 'Resources' },
76
- { key: 'core__currencies', label: 'Currencies', path: '/currencies', module: 'Core', defaultGroup: 'Resources' },
77
- { key: 'core__settings', label: 'Settings', path: '/settings', module: 'Core', defaultGroup: 'Configuration' },
64
+ { key: 'core__users', label: 'Users', path: '/users', module: 'Core', defaultGroup: 'User Management', permission: 'user.view' },
65
+ { key: 'core__roles', label: 'Roles', path: '/roles', module: 'Core', defaultGroup: 'User Management', permission: 'role.view' },
66
+ { key: 'core__organizations', label: 'Organizations', path: '/organizations', module: 'Core', defaultGroup: 'User Management', permission: 'organization.view' },
67
+ { key: 'core__parties', label: 'Parties', path: '/parties', module: 'Core', defaultGroup: 'User Management', permission: 'party.view' },
68
+ { key: 'core__activity_logs', label: 'Activity Logs', path: '/activity-logs', module: 'Core', defaultGroup: 'System Auditing', permission: 'activity_log.view' },
69
+ { key: 'core__api_requests', label: 'API Requests', path: '/system/api-requests', module: 'Core', defaultGroup: 'System Auditing', permission: 'api_request_log.view' },
70
+ { key: 'core__feature_access_logs', label: 'Feature Access Logs', path: '/system/feature-access-logs', module: 'Core', defaultGroup: 'System Auditing', permission: 'feature_access_log.view' },
71
+ { key: 'core__issue_logs', label: 'Issue Logs', path: '/system/issue-logs', module: 'Core', defaultGroup: 'System Auditing', permission: 'issue_log.view' },
72
+ { key: 'core__feature_registry', label: 'Feature Registry', path: '/system/features', module: 'Core', defaultGroup: 'System Auditing', permission: 'feature.view' },
73
+ { key: 'core__menu_config', label: 'Menu Configuration', path: '/menu-config', module: 'Core', defaultGroup: 'System', permission: 'menu_config.view' },
74
+ { key: 'core__printables', label: 'Printable Templates', path: '/system/printables', module: 'Core', defaultGroup: 'System', permission: 'printable_template.view' },
75
+ { key: 'core__template_groups', label: 'Template Groups', path: '/system/template-groups', module: 'Core', defaultGroup: 'System', permission: 'template_group.view' },
76
+ { key: 'core__warehouses', label: 'Warehouses', path: '/warehouses', module: 'Core', defaultGroup: 'Resources', permission: 'warehouse.view' },
77
+ { key: 'core__terminals', label: 'Terminals', path: '/terminals', module: 'Core', defaultGroup: 'Resources', permission: 'terminal.view' },
78
+ { key: 'core__currencies', label: 'Currencies', path: '/currencies', module: 'Core', defaultGroup: 'Resources', permission: 'currency.view' },
79
+ { key: 'core__settings', label: 'Settings', path: '/settings', module: 'Core', defaultGroup: 'Configuration', permission: 'core_setting.view' },
78
80
 
79
81
  // ── Inventory Module ──
80
- { key: 'inventory__items', label: 'Items', path: '/inventory/items', module: 'Inventory', defaultGroup: 'Catalog' },
81
- { key: 'inventory__categories', label: 'Categories', path: '/inventory/categories', module: 'Inventory', defaultGroup: 'Catalog' },
82
- { key: 'inventory__brands', label: 'Brands', path: '/inventory/brands', module: 'Inventory', defaultGroup: 'Catalog' },
83
- { key: 'inventory__uom', label: 'Units of Measure', path: '/inventory/uom', module: 'Inventory', defaultGroup: 'Catalog' },
82
+ { key: 'inventory__items', label: 'Items', path: '/inventory/items', module: 'Inventory', defaultGroup: 'Catalog', permission: null },
83
+ { key: 'inventory__categories', label: 'Categories', path: '/inventory/categories', module: 'Inventory', defaultGroup: 'Catalog', permission: null },
84
+ { key: 'inventory__brands', label: 'Brands', path: '/inventory/brands', module: 'Inventory', defaultGroup: 'Catalog', permission: null },
85
+ { key: 'inventory__uom', label: 'Units of Measure', path: '/inventory/uom', module: 'Inventory', defaultGroup: 'Catalog', permission: null },
84
86
 
85
- { key: 'inventory__stock', label: 'Stock Overview', path: '/inventory/stock', module: 'Inventory', defaultGroup: 'Stock' },
86
- { key: 'inventory__ledger', label: 'Stock Movements', path: '/inventory/ledger', module: 'Inventory', defaultGroup: 'Stock' },
87
- { key: 'inventory__adjustments', label: 'Adjustments', path: '/inventory/adjustments', module: 'Inventory', defaultGroup: 'Operations' },
88
- { key: 'inventory__transfers', label: 'Transfers', path: '/inventory/transfers', module: 'Inventory', defaultGroup: 'Operations' },
89
- { key: 'inventory__serials', label: 'Serial Numbers', path: '/inventory/serials', module: 'Inventory', defaultGroup: 'Operations' },
87
+ { key: 'inventory__stock', label: 'Stock Overview', path: '/inventory/stock', module: 'Inventory', defaultGroup: 'Stock', permission: null },
88
+ { key: 'inventory__ledger', label: 'Stock Movements', path: '/inventory/ledger', module: 'Inventory', defaultGroup: 'Stock', permission: null },
89
+ { key: 'inventory__adjustments', label: 'Adjustments', path: '/inventory/adjustments', module: 'Inventory', defaultGroup: 'Operations', permission: null },
90
+ { key: 'inventory__transfers', label: 'Transfers', path: '/inventory/transfers', module: 'Inventory', defaultGroup: 'Operations', permission: null },
91
+ { key: 'inventory__serials', label: 'Serial Numbers', path: '/inventory/serials', module: 'Inventory', defaultGroup: 'Operations', permission: null },
90
92
 
91
93
  // ── Sales Module ──
92
- { key: 'sales__price_lists', label: 'Price Lists', path: '/sales/price-lists', module: 'Sales', defaultGroup: 'Master Data' },
93
- { key: 'sales__quotations', label: 'Quotations', path: '/sales/quotations', module: 'Sales', defaultGroup: 'Orders' },
94
- { key: 'sales__orders', label: 'Sales Orders', path: '/sales/orders', module: 'Sales', defaultGroup: 'Orders' },
95
- { key: 'sales__goods_issue_notes', label: 'Goods Issue Notes', path: '/sales/delivery-notes', module: 'Sales', defaultGroup: 'Fulfillment' },
96
- { key: 'sales__returns', label: 'Sales Returns', path: '/sales/returns', module: 'Sales', defaultGroup: 'Post-Sales' },
97
- { key: 'sales__credit_notes', label: 'Credit Notes', path: '/sales/credit-notes', module: 'Sales', defaultGroup: 'Post-Sales' },
98
- { key: 'sales__pos', label: 'POS Terminal', path: '/sales/pos', module: 'Sales', defaultGroup: 'POS' },
94
+ { key: 'sales__price_lists', label: 'Price Lists', path: '/sales/price-lists', module: 'Sales', defaultGroup: 'Master Data', permission: null },
95
+ { key: 'sales__quotations', label: 'Quotations', path: '/sales/quotations', module: 'Sales', defaultGroup: 'Orders', permission: null },
96
+ { key: 'sales__orders', label: 'Sales Orders', path: '/sales/orders', module: 'Sales', defaultGroup: 'Orders', permission: null },
97
+ { key: 'sales__goods_issue_notes', label: 'Goods Issue Notes', path: '/sales/delivery-notes', module: 'Sales', defaultGroup: 'Fulfillment', permission: null },
98
+ { key: 'sales__returns', label: 'Sales Returns', path: '/sales/returns', module: 'Sales', defaultGroup: 'Post-Sales', permission: null },
99
+ { key: 'sales__credit_notes', label: 'Credit Notes', path: '/sales/credit-notes', module: 'Sales', defaultGroup: 'Post-Sales', permission: null },
100
+ { key: 'sales__pos', label: 'POS Terminal', path: '/sales/pos', module: 'Sales', defaultGroup: 'POS', permission: null },
99
101
 
100
- { key: 'sales__pos_sessions', label: 'Terminal Sessions', path: '/sales/pos/sessions', module: 'Sales', defaultGroup: 'POS' },
101
- { key: 'sales__reports', label: 'Sales Reports', path: '/sales/reports', module: 'Sales', defaultGroup: 'Analytics' },
102
+ { key: 'sales__pos_sessions', label: 'Terminal Sessions', path: '/sales/pos/sessions', module: 'Sales', defaultGroup: 'POS', permission: null },
103
+ { key: 'sales__reports', label: 'Sales Reports', path: '/sales/reports', module: 'Sales', defaultGroup: 'Analytics', permission: null },
102
104
 
103
105
  // ── Procurement Module ──
104
- { key: 'procurement__orders', label: 'Purchase Orders', path: '/procurement/orders', module: 'Procurement', defaultGroup: 'Orders' },
105
- { key: 'procurement__grn', label: 'Goods Receipt', path: '/procurement/grns', module: 'Procurement', defaultGroup: 'Receiving' },
106
- { key: 'procurement__invoices', label: 'Invoices', path: '/finance/invoices', module: 'Procurement', defaultGroup: 'Finance' },
107
- { key: 'procurement__payments', label: 'Payments', path: '/finance/payments', module: 'Procurement', defaultGroup: 'Finance' },
106
+ { key: 'procurement__orders', label: 'Purchase Orders', path: '/procurement/orders', module: 'Procurement', defaultGroup: 'Orders', permission: null },
107
+ { key: 'procurement__grn', label: 'Goods Receipt', path: '/procurement/grns', module: 'Procurement', defaultGroup: 'Receiving', permission: null },
108
+ { key: 'procurement__invoices', label: 'Invoices', path: '/finance/invoices', module: 'Procurement', defaultGroup: 'Finance', permission: null },
109
+ { key: 'procurement__payments', label: 'Payments', path: '/finance/payments', module: 'Procurement', defaultGroup: 'Finance', permission: null },
108
110
 
109
111
  // ── Finance Module ──
110
- { key: 'finance__invoices', label: 'Invoices', path: '/finance/invoices', module: 'Finance', defaultGroup: 'Transactions' },
111
- { key: 'finance__payments', label: 'Payments', path: '/finance/payments', module: 'Finance', defaultGroup: 'Transactions' },
112
- { key: 'finance__chart_of_accounts', label: 'Chart of Accounts', path: '/finance/chart-of-accounts', module: 'Finance', defaultGroup: 'Accounting' },
113
- { key: 'finance__journal_entries', label: 'Journal Entries', path: '/finance/journal-entries', module: 'Finance', defaultGroup: 'Accounting' },
114
- { key: 'finance__fiscal_years', label: 'Fiscal Years', path: '/finance/fiscal-years', module: 'Finance', defaultGroup: 'Accounting' },
115
- { key: 'finance__trial_balance', label: 'Trial Balance', path: '/finance/reports/trial-balance', module: 'Finance', defaultGroup: 'Reports' },
116
- { key: 'finance__profit_loss', label: 'Profit & Loss', path: '/finance/reports/profit-loss', module: 'Finance', defaultGroup: 'Reports' },
117
- { key: 'finance__balance_sheet', label: 'Balance Sheet', path: '/finance/reports/balance-sheet', module: 'Finance', defaultGroup: 'Reports' },
118
- { key: 'finance__account_ledger', label: 'Account Ledger', path: '/finance/reports/account-ledger', module: 'Finance', defaultGroup: 'Reports' },
119
- { key: 'finance__party_statement', label: 'Party Statement', path: '/finance/reports/party-statement', module: 'Finance', defaultGroup: 'Reports' },
120
- { key: 'finance__payment_modes', label: 'Payment Modes', path: '/finance/payment-modes', module: 'Finance', defaultGroup: 'Settings' },
121
- { key: 'finance__bank_accounts', label: 'Bank Accounts', path: '/finance/bank-accounts', module: 'Finance', defaultGroup: 'Settings' },
122
- { key: 'finance__account_mappings', label: 'Account Mappings', path: '/finance/account-mappings', module: 'Finance', defaultGroup: 'Settings' },
123
- { key: 'finance__opening_balances', label: 'Opening Balances', path: '/finance/opening-balances', module: 'Finance', defaultGroup: 'Settings' },
124
- { key: 'finance__transaction_ledger', label: 'Transaction Ledger', path: '/finance/transactions', module: 'Finance', defaultGroup: 'Transactions' },
125
- { key: 'finance__bank_statements', label: 'Bank Statements', path: '/finance/bank-statements', module: 'Finance', defaultGroup: 'Reports' },
112
+ { key: 'finance__invoices', label: 'Invoices', path: '/finance/invoices', module: 'Finance', defaultGroup: 'Transactions', permission: null },
113
+ { key: 'finance__payments', label: 'Payments', path: '/finance/payments', module: 'Finance', defaultGroup: 'Transactions', permission: null },
114
+ { key: 'finance__chart_of_accounts', label: 'Chart of Accounts', path: '/finance/chart-of-accounts', module: 'Finance', defaultGroup: 'Accounting', permission: null },
115
+ { key: 'finance__journal_entries', label: 'Journal Entries', path: '/finance/journal-entries', module: 'Finance', defaultGroup: 'Accounting', permission: null },
116
+ { key: 'finance__fiscal_years', label: 'Fiscal Years', path: '/finance/fiscal-years', module: 'Finance', defaultGroup: 'Accounting', permission: null },
117
+ { key: 'finance__trial_balance', label: 'Trial Balance', path: '/finance/reports/trial-balance', module: 'Finance', defaultGroup: 'Reports', permission: null },
118
+ { key: 'finance__profit_loss', label: 'Profit & Loss', path: '/finance/reports/profit-loss', module: 'Finance', defaultGroup: 'Reports', permission: null },
119
+ { key: 'finance__balance_sheet', label: 'Balance Sheet', path: '/finance/reports/balance-sheet', module: 'Finance', defaultGroup: 'Reports', permission: null },
120
+ { key: 'finance__account_ledger', label: 'Account Ledger', path: '/finance/reports/account-ledger', module: 'Finance', defaultGroup: 'Reports', permission: null },
121
+ { key: 'finance__party_statement', label: 'Party Statement', path: '/finance/reports/party-statement', module: 'Finance', defaultGroup: 'Reports', permission: null },
122
+ { key: 'finance__payment_modes', label: 'Payment Modes', path: '/finance/payment-modes', module: 'Finance', defaultGroup: 'Settings', permission: null },
123
+ { key: 'finance__bank_accounts', label: 'Bank Accounts', path: '/finance/bank-accounts', module: 'Finance', defaultGroup: 'Settings', permission: null },
124
+ { key: 'finance__account_mappings', label: 'Account Mappings', path: '/finance/account-mappings', module: 'Finance', defaultGroup: 'Settings', permission: null },
125
+ { key: 'finance__opening_balances', label: 'Opening Balances', path: '/finance/opening-balances', module: 'Finance', defaultGroup: 'Settings', permission: null },
126
+ { key: 'finance__transaction_ledger', label: 'Transaction Ledger', path: '/finance/transactions', module: 'Finance', defaultGroup: 'Transactions', permission: null },
127
+ { key: 'finance__bank_statements', label: 'Bank Statements', path: '/finance/bank-statements', module: 'Finance', defaultGroup: 'Reports', permission: null },
126
128
 
127
129
  // ── Jewelry Module ──
128
- { key: 'jewelry__items', label: 'Jewelry Items', path: '/jewelry/items', module: 'Jewelry', defaultGroup: 'Catalog' },
129
-
130
- { key: 'jewelry__categories', label: 'Categories', path: '/jewelry/categories', module: 'Jewelry', defaultGroup: 'Catalog' },
131
- { key: 'jewelry__material_types', label: 'Material Types', path: '/jewelry/material-types', module: 'Jewelry', defaultGroup: 'Master Data' },
132
- { key: 'jewelry__purities', label: 'Purities', path: '/jewelry/purities', module: 'Jewelry', defaultGroup: 'Master Data' },
133
- { key: 'jewelry__metal_rates', label: 'Metal Rates', path: '/jewelry/metal-rates', module: 'Jewelry', defaultGroup: 'Master Data' },
134
- { key: 'jewelry__purchase_orders', label: 'Purchase Orders', path: '/jewelry/procurement/orders', module: 'Jewelry', defaultGroup: 'Procurement' },
135
- { key: 'jewelry__grn', label: 'Goods Receipt', path: '/jewelry/procurement/grn', module: 'Jewelry', defaultGroup: 'Procurement' },
136
- { key: 'jewelry__custom_orders', label: 'Custom Orders', path: '/jewelry/custom-orders', module: 'Jewelry', defaultGroup: 'Procurement' },
137
- { key: 'jewelry__service_orders', label: 'Service Orders', path: '/jewelry/service-orders', module: 'Jewelry', defaultGroup: 'Procurement' },
138
- { key: 'jewelry__opening_stock', label: 'Opening Stock', path: '/jewelry/procurement/opening_stock', module: 'Jewelry', defaultGroup: 'Procurement' },
139
- { key: 'jewelry__transformations', label: 'Transformations', path: '/jewelry/procurement/transformations', module: 'Jewelry', defaultGroup: 'Procurement' },
140
- { key: 'jewelry__old_gold_purchases', label: 'Old Material Purchases', path: '/jewelry/old-gold-purchases', module: 'Jewelry', defaultGroup: 'Buying' },
141
- { key: 'jewelry__sales', label: 'Sales', path: '/jewelry/sales', module: 'Jewelry', defaultGroup: 'Sales' },
142
- { key: 'jewelry__sales_returns', label: 'Sales Returns', path: '/jewelry/sales-returns', module: 'Jewelry', defaultGroup: 'Sales' },
143
-
144
- { key: 'jewelry__stock_balances', label: 'Stock Balances', path: '/jewelry/stock/balances', module: 'Jewelry', defaultGroup: 'Stock' },
145
- { key: 'jewelry__stock_movements', label: 'Stock Movements', path: '/jewelry/stock/movements', module: 'Jewelry', defaultGroup: 'Stock' },
146
- { key: 'jewelry__stock_transfers', label: 'Transfers', path: '/jewelry/stock-transfers', module: 'Jewelry', defaultGroup: 'Stock' },
147
- { key: 'jewelry__party_transactions', label: 'Party Transactions', path: '/jewelry/party-transactions', module: 'Jewelry', defaultGroup: 'Karigar' },
148
-
149
- { key: 'jewelry__karigar_making_charges', label: 'Making Charges', path: '/jewelry/karigar-making-charges', module: 'Jewelry', defaultGroup: 'Karigar' },
150
- { key: 'jewelry__party_metal_balances', label: 'Party Metal Balances', path: '/jewelry/party-metal-balances', module: 'Jewelry', defaultGroup: 'Karigar' },
151
- { key: 'jewelry__metal_settlements', label: 'Metal Settlements', path: '/jewelry/metal-settlements', module: 'Jewelry', defaultGroup: 'Karigar' },
152
- { key: 'jewelry__settings', label: 'Settings', path: '/jewelry/settings', module: 'Jewelry', defaultGroup: 'Configuration' },
153
- { key: 'jewelry__billing_templates', label: 'Billing Templates', path: '/jewelry/billing-templates', module: 'Jewelry', defaultGroup: 'Configuration' },
154
- { key: 'jewelry__reports', label: 'Reports & Dashboards', path: '/reports/jewelry', module: 'Jewelry', defaultGroup: 'Analytics' },
130
+ { key: 'jewelry__items', label: 'Jewelry Items', path: '/jewelry/items', module: 'Jewelry', defaultGroup: 'Catalog', permission: null },
131
+
132
+ { key: 'jewelry__categories', label: 'Categories', path: '/jewelry/categories', module: 'Jewelry', defaultGroup: 'Catalog', permission: null },
133
+ { key: 'jewelry__material_types', label: 'Material Types', path: '/jewelry/material-types', module: 'Jewelry', defaultGroup: 'Master Data', permission: null },
134
+ { key: 'jewelry__purities', label: 'Purities', path: '/jewelry/purities', module: 'Jewelry', defaultGroup: 'Master Data', permission: null },
135
+ { key: 'jewelry__metal_rates', label: 'Metal Rates', path: '/jewelry/metal-rates', module: 'Jewelry', defaultGroup: 'Master Data', permission: null },
136
+ { key: 'jewelry__purchase_orders', label: 'Purchase Orders', path: '/jewelry/procurement/orders', module: 'Jewelry', defaultGroup: 'Procurement', permission: null },
137
+ { key: 'jewelry__grn', label: 'Goods Receipt', path: '/jewelry/procurement/grn', module: 'Jewelry', defaultGroup: 'Procurement', permission: null },
138
+ { key: 'jewelry__custom_orders', label: 'Custom Orders', path: '/jewelry/custom-orders', module: 'Jewelry', defaultGroup: 'Procurement', permission: null },
139
+ { key: 'jewelry__service_orders', label: 'Service Orders', path: '/jewelry/service-orders', module: 'Jewelry', defaultGroup: 'Procurement', permission: null },
140
+ { key: 'jewelry__opening_stock', label: 'Opening Stock', path: '/jewelry/procurement/opening_stock', module: 'Jewelry', defaultGroup: 'Procurement', permission: null },
141
+ { key: 'jewelry__transformations', label: 'Transformations', path: '/jewelry/procurement/transformations', module: 'Jewelry', defaultGroup: 'Procurement', permission: null },
142
+ { key: 'jewelry__old_gold_purchases', label: 'Old Material Purchases', path: '/jewelry/old-gold-purchases', module: 'Jewelry', defaultGroup: 'Buying', permission: null },
143
+ { key: 'jewelry__sales', label: 'Sales', path: '/jewelry/sales', module: 'Jewelry', defaultGroup: 'Sales', permission: null },
144
+ { key: 'jewelry__sales_returns', label: 'Sales Returns', path: '/jewelry/sales-returns', module: 'Jewelry', defaultGroup: 'Sales', permission: null },
145
+
146
+ { key: 'jewelry__stock_balances', label: 'Stock Balances', path: '/jewelry/stock/balances', module: 'Jewelry', defaultGroup: 'Stock', permission: null },
147
+ { key: 'jewelry__stock_movements', label: 'Stock Movements', path: '/jewelry/stock/movements', module: 'Jewelry', defaultGroup: 'Stock', permission: null },
148
+ { key: 'jewelry__stock_transfers', label: 'Transfers', path: '/jewelry/stock-transfers', module: 'Jewelry', defaultGroup: 'Stock', permission: null },
149
+ { key: 'jewelry__party_transactions', label: 'Party Transactions', path: '/jewelry/party-transactions', module: 'Jewelry', defaultGroup: 'Karigar', permission: null },
150
+
151
+ { key: 'jewelry__karigar_making_charges', label: 'Making Charges', path: '/jewelry/karigar-making-charges', module: 'Jewelry', defaultGroup: 'Karigar', permission: null },
152
+ { key: 'jewelry__party_metal_balances', label: 'Party Metal Balances', path: '/jewelry/party-metal-balances', module: 'Jewelry', defaultGroup: 'Karigar', permission: null },
153
+ { key: 'jewelry__metal_settlements', label: 'Metal Settlements', path: '/jewelry/metal-settlements', module: 'Jewelry', defaultGroup: 'Karigar', permission: null },
154
+ { key: 'jewelry__settings', label: 'Settings', path: '/jewelry/settings', module: 'Jewelry', defaultGroup: 'Configuration', permission: null },
155
+ { key: 'jewelry__billing_templates', label: 'Billing Templates', path: '/jewelry/billing-templates', module: 'Jewelry', defaultGroup: 'Configuration', permission: null },
156
+ { key: 'jewelry__reports', label: 'Reports & Dashboards', path: '/reports/jewelry', module: 'Jewelry', defaultGroup: 'Analytics', permission: null },
155
157
 
156
158
  // ── HR Module ──
157
- { key: 'hr__employees', label: 'Employees', path: '/hr/employees', module: 'HR', defaultGroup: 'Core' },
158
-
159
-
160
- { key: 'hr__employee_calendar', label: 'Employee Calendar', path: '/hr/employee-calendar', module: 'HR', defaultGroup: 'Time' },
161
- { key: 'hr__my_calendar', label: 'My Calendar', path: '/hr/my-calendar', module: 'HR', defaultGroup: 'Time' },
162
-
163
- { key: 'hr__attendance', label: 'Attendance', path: '/hr/attendance', module: 'HR', defaultGroup: 'Time' },
164
- { key: 'hr__regularisation', label: 'Regularisation', path: '/hr/regularisation', module: 'HR', defaultGroup: 'Time' },
165
- { key: 'hr__shift_templates', label: 'Shift Templates', path: '/hr/shift-templates', module: 'HR', defaultGroup: 'Time' },
166
- { key: 'hr__rosters', label: 'Roster Builder', path: '/hr/rosters', module: 'HR', defaultGroup: 'Time' },
167
- { key: 'hr__shift_exchanges', label: 'Shift Exchanges', path: '/hr/shift-exchanges', module: 'HR', defaultGroup: 'Time' },
168
- { key: 'hr__shift_allowances', label: 'Shift Allowances', path: '/hr/shift-allowances', module: 'HR', defaultGroup: 'Time' },
169
- { key: 'hr__leave_types', label: 'Leave Types', path: '/hr/leave-types', module: 'HR', defaultGroup: 'Time' },
170
- { key: 'hr__holidays', label: 'Holidays', path: '/hr/holidays', module: 'HR', defaultGroup: 'Time' },
171
- { key: 'hr__leave', label: 'Leave Management', path: '/hr/leave', module: 'HR', defaultGroup: 'Time' },
172
- { key: 'hr__designations', label: 'Designations', path: '/hr/designations', module: 'HR', defaultGroup: 'Admin' },
173
- { key: 'hr__teams', label: 'Teams', path: '/hr/teams', module: 'HR', defaultGroup: 'Core' },
174
- { key: 'hr__skills', label: 'Skills', path: '/hr/skills', module: 'HR', defaultGroup: 'Masters' },
175
- { key: 'hr__qualifications', label: 'Qualifications', path: '/hr/qualifications', module: 'HR', defaultGroup: 'Masters' },
176
- { key: 'hr__holiday_types', label: 'Holiday Types', path: '/hr/holiday-types', module: 'HR', defaultGroup: 'Masters' },
177
- { key: 'hr__break_types', label: 'Break Types', path: '/hr/break-types', module: 'HR', defaultGroup: 'Masters' },
178
- { key: 'hr__option_sets', label: 'Option Sets', path: '/hr/option-sets', module: 'HR', defaultGroup: 'Masters' },
179
- { key: 'hr__ot', label: 'Overtime', path: '/hr/ot', module: 'HR', defaultGroup: 'Payroll' },
180
- { key: 'hr__ot_policies', label: 'OT Policies', path: '/hr/ot-policies', module: 'HR', defaultGroup: 'Payroll' },
181
- { key: 'hr__ot_rate_templates', label: 'OT Rate Templates', path: '/hr/ot-rate-templates', module: 'HR', defaultGroup: 'Payroll' },
159
+ { key: 'hr__employees', label: 'Employees', path: '/hr/employees', module: 'HR', defaultGroup: 'Core', permission: null },
160
+
161
+
162
+ { key: 'hr__employee_calendar', label: 'Employee Calendar', path: '/hr/employee-calendar', module: 'HR', defaultGroup: 'Time', permission: null },
163
+ { key: 'hr__my_calendar', label: 'My Calendar', path: '/hr/my-calendar', module: 'HR', defaultGroup: 'Time', permission: null },
164
+
165
+ { key: 'hr__attendance', label: 'Attendance', path: '/hr/attendance', module: 'HR', defaultGroup: 'Time', permission: null },
166
+ { key: 'hr__regularisation', label: 'Regularisation', path: '/hr/regularisation', module: 'HR', defaultGroup: 'Time', permission: null },
167
+ { key: 'hr__shift_templates', label: 'Shift Templates', path: '/hr/shift-templates', module: 'HR', defaultGroup: 'Time', permission: null },
168
+ { key: 'hr__rosters', label: 'Roster Builder', path: '/hr/rosters', module: 'HR', defaultGroup: 'Time', permission: null },
169
+ { key: 'hr__shift_exchanges', label: 'Shift Exchanges', path: '/hr/shift-exchanges', module: 'HR', defaultGroup: 'Time', permission: null },
170
+ { key: 'hr__shift_allowances', label: 'Shift Allowances', path: '/hr/shift-allowances', module: 'HR', defaultGroup: 'Time', permission: null },
171
+ { key: 'hr__leave_types', label: 'Leave Types', path: '/hr/leave-types', module: 'HR', defaultGroup: 'Time', permission: null },
172
+ { key: 'hr__holidays', label: 'Holidays', path: '/hr/holidays', module: 'HR', defaultGroup: 'Time', permission: null },
173
+ { key: 'hr__leave', label: 'Leave Management', path: '/hr/leave', module: 'HR', defaultGroup: 'Time', permission: null },
174
+ { key: 'hr__designations', label: 'Designations', path: '/hr/designations', module: 'HR', defaultGroup: 'Admin', permission: null },
175
+ { key: 'hr__teams', label: 'Teams', path: '/hr/teams', module: 'HR', defaultGroup: 'Core', permission: null },
176
+ { key: 'hr__skills', label: 'Skills', path: '/hr/skills', module: 'HR', defaultGroup: 'Masters', permission: null },
177
+ { key: 'hr__qualifications', label: 'Qualifications', path: '/hr/qualifications', module: 'HR', defaultGroup: 'Masters', permission: null },
178
+ { key: 'hr__holiday_types', label: 'Holiday Types', path: '/hr/holiday-types', module: 'HR', defaultGroup: 'Masters', permission: null },
179
+ { key: 'hr__break_types', label: 'Break Types', path: '/hr/break-types', module: 'HR', defaultGroup: 'Masters', permission: null },
180
+ { key: 'hr__option_sets', label: 'Option Sets', path: '/hr/option-sets', module: 'HR', defaultGroup: 'Masters', permission: null },
181
+ { key: 'hr__ot', label: 'Overtime', path: '/hr/ot', module: 'HR', defaultGroup: 'Payroll', permission: null },
182
+ { key: 'hr__ot_policies', label: 'OT Policies', path: '/hr/ot-policies', module: 'HR', defaultGroup: 'Payroll', permission: null },
183
+ { key: 'hr__ot_rate_templates', label: 'OT Rate Templates', path: '/hr/ot-rate-templates', module: 'HR', defaultGroup: 'Payroll', permission: null },
182
184
  // ── Money Exchange Module ──
183
- { key: 'money_exchange__dashboard', label: 'Dashboard', path: '/money-exchange', module: 'Money Exchange', defaultGroup: 'Overview' },
184
- { key: 'money_exchange__rates', label: 'Rates Management', path: '/money-exchange/rates', module: 'Money Exchange', defaultGroup: 'Overview' },
185
- { key: 'money_exchange__pos', label: 'Point of Sale', path: '/money-exchange/pos', module: 'Money Exchange', defaultGroup: 'Operations' },
186
- { key: 'money_exchange__transactions', label: 'Transactions', path: '/money-exchange/transactions', module: 'Money Exchange', defaultGroup: 'Operations' },
187
- { key: 'money_exchange__till', label: 'Till', path: '/money-exchange/till', module: 'Money Exchange', defaultGroup: 'Inventory & Stock' },
188
- { key: 'money_exchange__branch_stock', label: 'Vault', path: '/money-exchange/branch-stock', module: 'Money Exchange', defaultGroup: 'Inventory & Stock' },
189
- { key: 'money_exchange__opening_stock', label: 'Opening Stock', path: '/money-exchange/opening-stock', module: 'Money Exchange', defaultGroup: 'Config' },
190
- { key: 'money_exchange__internal_transfers', label: 'Internal Transfers', path: '/money-exchange/internal-transfers', module: 'Money Exchange', defaultGroup: 'Inventory & Stock' },
191
- { key: 'money_exchange__wholesale', label: 'Wholesale Operations', path: '/money-exchange/wholesale', module: 'Money Exchange', defaultGroup: 'Wholesale' },
192
- { key: 'money_exchange__suppliers', label: 'Supplier Registry', path: '/money-exchange/suppliers', module: 'Money Exchange', defaultGroup: 'Wholesale' },
193
- // { key: 'money_exchange__remittance_agents', label: 'Agent Registry', path: '/money-exchange/agents', module: 'Money Exchange', defaultGroup: 'Remittances' },
194
- // { key: 'money_exchange__remittance_corridors', label: 'Corridors', path: '/money-exchange/corridors', module: 'Money Exchange', defaultGroup: 'Remittances' },
195
- // { key: 'money_exchange__remittances', label: 'Transactions', path: '/money-exchange/remittances', module: 'Money Exchange', defaultGroup: 'Remittances' },
196
- // { key: 'money_exchange__remittance_settlements', label: 'Settlements', path: '/money-exchange/settlements', module: 'Money Exchange', defaultGroup: 'Remittances' },
197
- { key: 'money_exchange__denominations', label: 'Denomination', path: '/money-exchange/denominations', module: 'Money Exchange', defaultGroup: 'Config' },
198
- { key: 'money_exchange__till_thresholds', label: 'Till Thresholds', path: '/money-exchange/till-thresholds', module: 'Money Exchange', defaultGroup: 'Config' },
199
- { key: 'money_exchange__cross_currency', label: 'Margin Rate', path: '/money-exchange/cross-currency', module: 'Money Exchange', defaultGroup: 'Config' },
185
+ { key: 'money_exchange__dashboard', label: 'Dashboard', path: '/money-exchange', module: 'Money Exchange', defaultGroup: 'Overview', permission: null },
186
+ { key: 'money_exchange__rates', label: 'Rates Management', path: '/money-exchange/rates', module: 'Money Exchange', defaultGroup: 'Overview', permission: null },
187
+ { key: 'money_exchange__pos', label: 'Point of Sale', path: '/money-exchange/pos', module: 'Money Exchange', defaultGroup: 'Operations', permission: null },
188
+ { key: 'money_exchange__transactions', label: 'Transactions', path: '/money-exchange/transactions', module: 'Money Exchange', defaultGroup: 'Operations', permission: null },
189
+ { key: 'money_exchange__till', label: 'Till', path: '/money-exchange/till', module: 'Money Exchange', defaultGroup: 'Inventory & Stock', permission: null },
190
+ { key: 'money_exchange__branch_stock', label: 'Vault', path: '/money-exchange/branch-stock', module: 'Money Exchange', defaultGroup: 'Inventory & Stock', permission: null },
191
+ { key: 'money_exchange__opening_stock', label: 'Opening Stock', path: '/money-exchange/opening-stock', module: 'Money Exchange', defaultGroup: 'Config', permission: null },
192
+ { key: 'money_exchange__internal_transfers', label: 'Internal Transfers', path: '/money-exchange/internal-transfers', module: 'Money Exchange', defaultGroup: 'Inventory & Stock', permission: null },
193
+ { key: 'money_exchange__wholesale', label: 'Wholesale Operations', path: '/money-exchange/wholesale', module: 'Money Exchange', defaultGroup: 'Wholesale', permission: null },
194
+ // { key: 'money_exchange__remittance_agents', label: 'Agent Registry', path: '/money-exchange/agents', module: 'Money Exchange', defaultGroup: 'Remittances', permission: null },
195
+ // { key: 'money_exchange__remittance_corridors', label: 'Corridors', path: '/money-exchange/corridors', module: 'Money Exchange', defaultGroup: 'Remittances', permission: null },
196
+ // { key: 'money_exchange__remittances', label: 'Transactions', path: '/money-exchange/remittances', module: 'Money Exchange', defaultGroup: 'Remittances', permission: null },
197
+ // { key: 'money_exchange__remittance_settlements', label: 'Settlements', path: '/money-exchange/settlements', module: 'Money Exchange', defaultGroup: 'Remittances', permission: null },
198
+ { key: 'money_exchange__denominations', label: 'Denomination', path: '/money-exchange/denominations', module: 'Money Exchange', defaultGroup: 'Config', permission: null },
199
+ { key: 'money_exchange__till_thresholds', label: 'Till Thresholds', path: '/money-exchange/till-thresholds', module: 'Money Exchange', defaultGroup: 'Config', permission: null },
200
+ { key: 'money_exchange__cross_currency', label: 'Margin Rate', path: '/money-exchange/cross-currency', module: 'Money Exchange', defaultGroup: 'Config', permission: null },
200
201
 
201
202
  // ── Reports Module (Admin/General) ──
202
- { key: 'reports__jewelry', label: 'Jewelry', path: '/reports/jewelry', module: 'Reporting', defaultGroup: 'Dashboards' },
203
- { key: 'reports__inventory', label: 'Inventory', path: '/reports/inventory', module: 'Reporting', defaultGroup: 'Dashboards' },
204
- { key: 'reports__finance', label: 'Finance', path: '/reports/finance', module: 'Reporting', defaultGroup: 'Dashboards' },
205
- { key: 'reports__all', label: 'All Reports', path: '/reports', module: 'Reporting', defaultGroup: 'General' },
206
- { key: 'reports__builder', label: 'Report Builder', path: '/reports/admin/reports', module: 'Reporting', defaultGroup: 'Administration' },
207
- { key: 'reports__configurator', label: 'Dashboard Configurator', path: '/reports/admin/dashboards', module: 'Reporting', defaultGroup: 'Administration' },
203
+ { key: 'reports__jewelry', label: 'Jewelry', path: '/reports/jewelry', module: 'Reporting', defaultGroup: 'Dashboards', permission: null },
204
+ { key: 'reports__inventory', label: 'Inventory', path: '/reports/inventory', module: 'Reporting', defaultGroup: 'Dashboards', permission: null },
205
+ { key: 'reports__finance', label: 'Finance', path: '/reports/finance', module: 'Reporting', defaultGroup: 'Dashboards', permission: null },
206
+ { key: 'reports__all', label: 'All Reports', path: '/reports', module: 'Reporting', defaultGroup: 'General', permission: null },
207
+ { key: 'reports__builder', label: 'Report Builder', path: '/reports/admin/reports', module: 'Reporting', defaultGroup: 'Administration', permission: null },
208
+ { key: 'reports__configurator', label: 'Dashboard Configurator', path: '/reports/admin/dashboards', module: 'Reporting', defaultGroup: 'Administration', permission: null },
208
209
  ];
209
210
 
210
211
  /**