Dealer_Onboarding_Backend/src/common/config/permissions.ts

51 lines
1.7 KiB
TypeScript

/**
* Granular Permission Constants
* Categorized by Action, View/Access, and Application Stage
*/
export const PERMISSION_CATEGORIES = {
ACTION: 'ACTION',
VIEW: 'VIEW',
STAGE: 'STAGE'
} as const;
export const PERMISSIONS = {
// Action Permissions
ACTION_APPROVE: 'action:approve',
ACTION_REJECT: 'action:reject',
ACTION_UPLOAD_DOCS: 'action:upload_docs',
ACTION_REQUEST_CHANGES: 'action:request_changes',
ACTION_FORWARD: 'action:forward',
ACTION_REASSIGN: 'action:reassign',
ACTION_SCHEDULE_INTERVIEW: 'action:schedule_interview',
ACTION_ADD_COMMENTS: 'action:add_comments',
ACTION_RANK_APPLICANTS: 'action:rank_applicants',
ACTION_FINAL_APPROVAL: 'action:final_approval',
// View/Access Permissions
VIEW_DETAILS: 'view:view_details',
VIEW_FINANCIAL: 'view:view_financial',
VIEW_DISCUSSIONS: 'view:view_discussions',
VIEW_PROGRESS: 'view:view_progress',
VIEW_AUDIT: 'view:view_audit',
VIEW_DOCUMENTS: 'view:view_documents',
VIEW_PERSONAL: 'view:view_personal',
VIEW_BUSINESS: 'view:view_business',
VIEW_REPORTS: 'view:view_reports',
VIEW_HISTORY: 'view:view_history',
// Application Stage Access
STAGE_INITIAL_REVIEW: 'stage:initial_review',
STAGE_FIELD_VERIFICATION: 'stage:field_verification',
STAGE_LEVEL1_INTERVIEW: 'stage:level1_interview',
STAGE_LEVEL2_INTERVIEW: 'stage:level2_interview',
STAGE_RANKING: 'stage:ranking',
STAGE_LEGAL_REVIEW: 'stage:legal_review',
STAGE_FINANCIAL_REVIEW: 'stage:financial_review',
STAGE_FINAL_APPROVAL: 'stage:final_approval',
STAGE_PAYMENT: 'stage:payment',
STAGE_ONBOARDING: 'stage:onboarding'
} as const;
export type PermissionCode = typeof PERMISSIONS[keyof typeof PERMISSIONS];