/** * Capability taxonomy for the HOA Financial Platform. * * Pattern: {area}.{feature}.{action} * Actions: view, edit, approve, manage * * Add new capabilities here when new features are built. * The default role matrix in ./default-role-capabilities.ts must also be updated. */ export const CAPABILITIES = { // Dashboard DASHBOARD_VIEW: 'dashboard.view', // Financials FINANCIALS_ACCOUNTS_VIEW: 'financials.accounts.view', FINANCIALS_ACCOUNTS_EDIT: 'financials.accounts.edit', FINANCIALS_CASHFLOW_VIEW: 'financials.cashflow.view', FINANCIALS_CASHFLOW_EDIT: 'financials.cashflow.edit', FINANCIALS_ACTUALS_VIEW: 'financials.actuals.view', FINANCIALS_ACTUALS_EDIT: 'financials.actuals.edit', FINANCIALS_BUDGETS_VIEW: 'financials.budgets.view', FINANCIALS_BUDGETS_EDIT: 'financials.budgets.edit', FINANCIALS_BUDGETS_APPROVE: 'financials.budgets.approve', // Assessments ASSESSMENTS_UNITS_VIEW: 'assessments.units.view', ASSESSMENTS_UNITS_EDIT: 'assessments.units.edit', ASSESSMENTS_GROUPS_VIEW: 'assessments.groups.view', ASSESSMENTS_GROUPS_EDIT: 'assessments.groups.edit', // Board Planning PLANNING_BUDGETS_VIEW: 'planning.budgets.view', PLANNING_BUDGETS_EDIT: 'planning.budgets.edit', PLANNING_PROJECTS_VIEW: 'planning.projects.view', PLANNING_PROJECTS_EDIT: 'planning.projects.edit', PLANNING_SCENARIOS_VIEW: 'planning.scenarios.view', PLANNING_SCENARIOS_EDIT: 'planning.scenarios.edit', PLANNING_SCENARIOS_APPROVE: 'planning.scenarios.approve', PLANNING_INVESTMENTS_VIEW: 'planning.investments.view', PLANNING_INVESTMENTS_EDIT: 'planning.investments.edit', // Board Reference REFERENCE_VENDORS_VIEW: 'reference.vendors.view', REFERENCE_VENDORS_EDIT: 'reference.vendors.edit', // Transactions TRANSACTIONS_VIEW: 'transactions.view', TRANSACTIONS_EDIT: 'transactions.edit', TRANSACTIONS_APPROVE: 'transactions.approve', // Reports REPORTS_VIEW: 'reports.view', // Settings & Administration SETTINGS_ORG_VIEW: 'settings.org.view', SETTINGS_ORG_EDIT: 'settings.org.edit', SETTINGS_MEMBERS_VIEW: 'settings.members.view', SETTINGS_MEMBERS_MANAGE: 'settings.members.manage', SETTINGS_PERMISSIONS_MANAGE: 'settings.permissions.manage', } as const; export type Capability = (typeof CAPABILITIES)[keyof typeof CAPABILITIES]; /** Set of all valid capability strings, for validation */ export const ALL_CAPABILITIES = new Set(Object.values(CAPABILITIES));