Dealer_Onboarding_Backend/src/common/config/constants.ts

436 lines
13 KiB
TypeScript

// User Roles
export const ROLES = {
DD: 'DD',
DD_ZM: 'DD-ZM',
RBM: 'RBM',
ZBH: 'ZBH',
DD_LEAD: 'DD Lead',
DD_HEAD: 'DD Head',
NBH: 'NBH',
DD_ADMIN: 'DD Admin',
LEGAL_ADMIN: 'Legal Admin',
SUPER_ADMIN: 'Super Admin',
DD_AM: 'DD AM',
ASM: 'ASM',
FINANCE: 'Finance',
DEALER: 'Dealer',
ARCHITECTURE: 'ARCHITECTURE',
FDD: 'FDD',
CCO: 'CCO',
CEO: 'CEO',
SPARES_MANAGER: 'Spares Manager',
SERVICE_MANAGER: 'Service Manager',
ACCOUNTS_MANAGER: 'Accounts Manager',
SALES_MANAGER: 'Sales Manager',
WARRANTY_MANAGER: 'Warranty Manager',
MARKETING_MANAGER: 'Marketing Manager',
HR_MANAGER: 'HR Manager',
IT_MANAGER: 'IT Manager',
LOGISTICS_MANAGER: 'Logistics Manager',
QUALITY_MANAGER: 'Quality Manager',
APPAREL_MANAGER: 'Apparel Manager',
DMS_MANAGER: 'DMS Manager'
} as const;
// Regions
export const REGIONS = {
EAST: 'East',
WEST: 'West',
NORTH: 'North',
SOUTH: 'South',
CENTRAL: 'Central'
} as const;
// Application Stages
export const APPLICATION_STAGES = {
DD: 'DD',
DD_ZM: 'DD-ZM',
RBM: 'RBM',
ZBH: 'ZBH',
DD_LEAD: 'DD Lead',
DD_HEAD: 'DD Head',
NBH: 'NBH',
LEGAL: 'Legal',
ARCHITECTURE: 'Architecture Team',
FINANCE: 'Finance',
FDD: 'FDD',
LOI: 'LOI',
LOA: 'LOA',
EOR: 'EOR',
ARCHITECTURE_WORK: 'Architecture Work',
STATUTORY_WORK: 'Statutory Work',
LEVEL_1_APPROVED: 'Level 1 Approved',
LEVEL_2_APPROVED: 'Level 2 Approved',
LEVEL_2_RECOMMENDED: 'Level 2 Recommended',
LEVEL_3_APPROVED: 'Level 3 Approved',
APPROVED: 'Approved',
REJECTED: 'Rejected'
} as const;
// Application Status
export const APPLICATION_STATUS = {
PENDING: 'Pending',
SUBMITTED: 'Submitted',
QUESTIONNAIRE_PENDING: 'Questionnaire Pending',
QUESTIONNAIRE_COMPLETED: 'Questionnaire Completed',
SHORTLISTED: 'Shortlisted',
IN_REVIEW: 'In Review',
APPROVED: 'Approved',
REJECTED: 'Rejected',
LEVEL_1_PENDING: 'Level 1 Interview Pending',
LEVEL_1_APPROVED: 'Level 1 Approved',
LEVEL_2_PENDING: 'Level 2 Interview Pending',
LEVEL_2_APPROVED: 'Level 2 Approved',
LEVEL_2_RECOMMENDED: 'Level 2 Recommended',
LEVEL_3_PENDING: 'Level 3 Interview Pending',
LEVEL_3_APPROVED: 'Level 3 Approved',
FDD_VERIFICATION: 'FDD Verification',
SECURITY_DETAILS: 'Security Details',
PAYMENT_PENDING: 'Payment Pending',
LOI_IN_PROGRESS: 'LOI In Progress',
LOI_ISSUED: 'LOI Issued',
DEALER_CODE_GENERATION: 'Dealer Code Generation',
ARCHITECTURE_TEAM_ASSIGNED: 'Architecture Team Assigned',
ARCHITECTURE_DOCUMENT_UPLOAD: 'Architecture Document Upload',
ARCHITECTURE_TEAM_COMPLETION: 'Architecture Team Completion',
STATUTORY_GST: 'Statutory GST',
STATUTORY_PAN: 'Statutory PAN',
STATUTORY_NODAL: 'Statutory Nodal',
STATUTORY_CHECK: 'Statutory Check',
STATUTORY_PARTNERSHIP: 'Statutory Partnership',
STATUTORY_FIRM_REG: 'Statutory Firm Reg',
STATUTORY_VIRTUAL_CODE: 'Statutory Virtual Code',
STATUTORY_DOMAIN: 'Statutory Domain',
STATUTORY_MSD: 'Statutory MSD',
STATUTORY_LOI_ACK: 'Statutory LOI Ack',
EOR_IN_PROGRESS: 'EOR In Progress',
LOA_PENDING: 'LOA Pending',
ARCHITECTURE_WORK: 'Architecture Work',
STATUTORY_WORK: 'Statutory Work',
LOA_ISSUED: 'LOA Issued',
LOA_REJECTED: 'LOA Rejected',
EOR_COMPLETE: 'EOR Complete',
INAUGURATION: 'Inauguration',
ONBOARDED: 'Onboarded',
DISQUALIFIED: 'Disqualified',
LOI_REJECTED: 'LOI Rejected',
RETURNED_TO_FDD: 'Returned to FDD'
} as const;
// Termination Stages
export const TERMINATION_STAGES = {
SUBMITTED: 'Submitted',
RBM_REVIEW: 'RBM Review',
ZBH_REVIEW: 'ZBH Review',
DD_LEAD_REVIEW: 'DD Lead Review',
LEGAL_VERIFICATION: 'Legal Verification',
DD_HEAD_REVIEW: 'DD Head Review',
NBH_EVALUATION: 'NBH Evaluation',
SCN_ISSUED: 'Show Cause Notice',
PERSONAL_HEARING: 'Personal Hearing',
NBH_FINAL_APPROVAL: 'NBH Final Approval',
CCO_APPROVAL: 'CCO Approval',
CEO_APPROVAL: 'CEO Final Approval',
LEGAL_LETTER: 'Legal - Termination Letter',
TERMINATED: 'Terminated',
REJECTED: 'Rejected'
} as const;
// Resignation Stages
export const RESIGNATION_STAGES = {
ASM: 'ASM',
RBM: 'RBM',
ZBH: 'ZBH',
DD_LEAD: 'DD Lead',
NBH: 'NBH',
DD_ADMIN: 'DD Admin',
LEGAL: 'Legal',
SPARES_CLEARANCE: 'Spares Clearance',
SERVICE_CLEARANCE: 'Service Clearance',
ACCOUNTS_CLEARANCE: 'Accounts Clearance',
FINANCE: 'Finance',
FNF_INITIATED: 'F&F Initiated',
COMPLETED: 'Completed',
REJECTED: 'Rejected'
} as const;
// Resignation Types
export const RESIGNATION_TYPES = {
VOLUNTARY: 'Voluntary',
RETIREMENT: 'Retirement',
HEALTH_ISSUES: 'Health Issues',
BUSINESS_CLOSURE: 'Business Closure',
OTHER: 'Other'
} as const;
// Constitutional Change Types (Aligned with frontend and SRS scenarios)
export const CONSTITUTIONAL_CHANGE_TYPES = {
PROPRIETORSHIP: 'Proprietorship',
PARTNERSHIP: 'Partnership',
LLP_CONVERSION: 'LLP Conversion',
LLP: 'LLP',
PRIVATE_LIMITED: 'Private Limited',
COMPANY_FORMATION: 'Company Formation',
OWNERSHIP_TRANSFER: 'Ownership Transfer',
PARTNERSHIP_CHANGE: 'Partnership Change',
DIRECTOR_CHANGE: 'Director Change'
} as const;
// Constitutional Change Stages (Aligned with SRS v2.0)
export const CONSTITUTIONAL_STAGES = {
SUBMITTED: 'Submitted',
ASM_REVIEW: 'ASM Review',
ZM_RBM_REVIEW: 'ZM/RBM Review',
ZBH_REVIEW: 'ZBH Review',
LEAD_REVIEW: 'DD Lead Review',
HEAD_REVIEW: 'DD Head Review',
NBH_APPROVAL: 'NBH Approval',
LEGAL_REVIEW: 'Legal Review',
COMPLETED: 'Completed',
REJECTED: 'Rejected'
} as const;
// Relocation Types
export const RELOCATION_TYPES = {
WITHIN_CITY: 'Within City',
INTERCITY: 'Intercity',
INTERSTATE: 'Interstate'
} as const;
// Relocation Stages
export const RELOCATION_STAGES = {
ASM_REVIEW: 'ASM Review',
RBM_REVIEW: 'RBM Review',
DD_ZM_REVIEW: 'DD ZM Review',
ZBH_REVIEW: 'ZBH Review',
DD_LEAD_REVIEW: 'DD Lead Review',
DD_HEAD_APPROVAL: 'DD Head Approval',
NBH_APPROVAL: 'NBH Approval',
LEGAL_CLEARANCE: 'Legal Clearance',
NBH_CLEARANCE_EOR: 'NBH Clearance with EOR',
COMPLETED: 'Completed',
REJECTED: 'Rejected'
} as const;
// Outlet Types
export const OUTLET_TYPES = {
DEALERSHIP: 'Dealership',
STUDIO: 'Studio'
} as const;
// Outlet Status
export const OUTLET_STATUS = {
ACTIVE: 'Active',
PENDING_RESIGNATION: 'Pending Resignation',
CLOSED: 'Closed'
} as const;
// Business Types
export const BUSINESS_TYPES = {
DEALERSHIP: 'Dealership',
STUDIO: 'Studio'
} as const;
// Payment Types
export const PAYMENT_TYPES = {
SECURITY_DEPOSIT: 'Security Deposit',
LICENSE_FEE: 'License Fee',
SETUP_FEE: 'Setup Fee',
OTHER: 'Other'
} as const;
// Payment Status
export const PAYMENT_STATUS = {
PENDING: 'Pending',
PAID: 'Paid',
OVERDUE: 'Overdue',
WAIVED: 'Waived'
} as const;
// F&F Status
export const FNF_STATUS = {
INITIATED: 'Initiated',
DD_CLEARANCE: 'DD Clearance',
LEGAL_CLEARANCE: 'Legal Clearance',
FINANCE_APPROVAL: 'Finance Approval',
COMPLETED: 'Completed'
} as const;
// F&F Departments (Full list of 16 functional units as per Royal Enfield standards)
export const FNF_DEPARTMENTS = [
'Warranty Department',
'Accessories Department',
'Sales Department',
'RTO Department',
'Service Department',
'Parts Department',
'Finance Department',
'Insurance Department',
'Inventory Department',
'Marketing Department',
'HR Department',
'IT Department',
'Legal Department',
'Quality Department',
'Logistics Department',
'Customer Relations Department'
];
// Audit Actions
export const AUDIT_ACTIONS = {
// General CRUD
CREATED: 'CREATED',
UPDATED: 'UPDATED',
APPROVED: 'APPROVED',
REJECTED: 'REJECTED',
DELETED: 'DELETED',
// Auth & User Actions
LOGIN: 'LOGIN',
LOGOUT: 'LOGOUT',
REGISTERED: 'REGISTERED',
PASSWORD_CHANGED: 'PASSWORD_CHANGED',
PROFILE_UPDATED: 'PROFILE_UPDATED',
// Application Lifecycle
STAGE_CHANGED: 'STAGE_CHANGED',
SHORTLISTED: 'SHORTLISTED',
DISQUALIFIED: 'DISQUALIFIED',
QUESTIONNAIRE_SUBMITTED: 'QUESTIONNAIRE_SUBMITTED',
QUESTIONNAIRE_LINK_SENT: 'QUESTIONNAIRE_LINK_SENT',
// Documents & Collaboration
DOCUMENT_UPLOADED: 'DOCUMENT_UPLOADED',
DOCUMENT_VERIFIED: 'DOCUMENT_VERIFIED',
WORKNOTE_ADDED: 'WORKNOTE_ADDED',
ATTACHMENT_UPLOADED: 'ATTACHMENT_UPLOADED',
PARTICIPANT_ADDED: 'PARTICIPANT_ADDED',
PARTICIPANT_REMOVED: 'PARTICIPANT_REMOVED',
// Interviews & Assessment
INTERVIEW_SCHEDULED: 'INTERVIEW_SCHEDULED',
INTERVIEW_UPDATED: 'INTERVIEW_UPDATED',
INTERVIEW_COMPLETED: 'INTERVIEW_COMPLETED',
KT_MATRIX_SUBMITTED: 'KT_MATRIX_SUBMITTED',
FEEDBACK_SUBMITTED: 'FEEDBACK_SUBMITTED',
RECOMMENDATION_UPDATED: 'RECOMMENDATION_UPDATED',
DECISION_MADE: 'DECISION_MADE',
// FDD
FDD_ASSIGNED: 'FDD_ASSIGNED',
FDD_REPORT_UPLOADED: 'FDD_REPORT_UPLOADED',
// LOI & LOA
LOI_REQUESTED: 'LOI_REQUESTED',
LOI_APPROVED: 'LOI_APPROVED',
LOI_REJECTED: 'LOI_REJECTED',
LOI_GENERATED: 'LOI_GENERATED',
LOA_REQUESTED: 'LOA_REQUESTED',
LOA_APPROVED: 'LOA_APPROVED',
LOA_GENERATED: 'LOA_GENERATED',
// EOR
EOR_CHECKLIST_CREATED: 'EOR_CHECKLIST_CREATED',
EOR_ITEM_UPDATED: 'EOR_ITEM_UPDATED',
EOR_AUDIT_SUBMITTED: 'EOR_AUDIT_SUBMITTED',
// Dealer & Finance
DEALER_CREATED: 'DEALER_CREATED',
DEALER_UPDATED: 'DEALER_UPDATED',
DEALER_CODE_GENERATED: 'DEALER_CODE_GENERATED',
PAYMENT_UPDATED: 'PAYMENT_UPDATED',
SECURITY_DEPOSIT_UPDATED: 'SECURITY_DEPOSIT_UPDATED',
FNF_UPDATED: 'FNF_UPDATED',
// Admin
USER_CREATED: 'USER_CREATED',
USER_UPDATED: 'USER_UPDATED',
USER_STATUS_CHANGED: 'USER_STATUS_CHANGED',
ROLE_CREATED: 'ROLE_CREATED',
ROLE_UPDATED: 'ROLE_UPDATED',
// Resignation & Self-Service
RESIGNATION_SUBMITTED: 'RESIGNATION_SUBMITTED',
RESIGNATION_APPROVED: 'RESIGNATION_APPROVED',
RESIGNATION_REJECTED: 'RESIGNATION_REJECTED',
EMAIL_SENT: 'EMAIL_SENT',
REMINDER_SENT: 'REMINDER_SENT'
} as const;
// Document Types
export const DOCUMENT_TYPES = {
GST_CERTIFICATE: 'GST Certificate',
PAN_CARD: 'PAN Card',
AADHAAR: 'Aadhaar',
PARTNERSHIP_DEED: 'Partnership Deed',
LLP_AGREEMENT: 'LLP Agreement',
INCORPORATION_CERTIFICATE: 'Certificate of Incorporation',
MOA: 'MOA',
AOA: 'AOA',
BOARD_RESOLUTION: 'Board Resolution',
PROPERTY_DOCUMENTS: 'Property Documents',
BANK_STATEMENT: 'Bank Statement',
NODAL_AGREEMENT: 'Nodal Agreement',
CANCELLED_CHECK: 'Cancelled Check',
FIRM_REGISTRATION: 'Firm Registration',
RENTAL_AGREEMENT: 'Rental Agreement',
VIRTUAL_CODE: 'Virtual Code Confirmation',
DOMAIN_ID: 'Domain ID Setup',
MSD_CONFIG: 'MSD Configuration',
LOI_ACK: 'LOI Acknowledgement',
FDD_REPORT: 'FDD Final Audit Report',
FDD_ASSIGNMENT: 'FDD Agency Assignment Letter',
KT_MATRIX: 'Kepner Tregoe (KT) Matrix',
INTERVIEW_EVALUATION: 'Interview Evaluation Sheet',
AI_RECOMMENDATION: 'AI Recommendation Summary',
SITE_READINESS: 'Site Readiness Report',
CIBIL_REPORT: 'CIBIL Report',
CITY_MAP: 'Proposed Site City Map',
LOA_ACCEPTANCE: 'LOA Acceptance Copy',
ARCHITECTURE_ASSIGNMENT: 'Architecture Assignment Document',
ARCHITECTURE_BLUEPRINT: 'Architecture Blueprint',
SITE_PLAN: 'Site Plan',
ARCHITECTURE_COMPLETION: 'Architecture Completion Certificate',
STATUTORY_AUDIT: 'Statutory Approval Certificate',
BANK_GUARANTEE: 'Bank Guarantee Document',
SECURITY_DEPOSIT_RECEIPT: 'Security Deposit Receipt',
SECURITY_DEPOSIT: 'Security Deposit Receipt',
FIRST_FILL: 'First Fill Receipt',
RELOCATION_PROPERTY_DOCS: 'Property documents for new location',
RELOCATION_LEASE_AGREEMENT: 'Lease/Rental agreement for new location',
RELOCATION_NOC_LANDLORD: 'NOC from current landlord',
RELOCATION_MUNICIPAL_APPROVALS: 'Municipal approvals',
RELOCATION_FIRE_SAFETY: 'Fire safety certificate',
RELOCATION_POLLUTION_CLEARANCE: 'Pollution clearance',
RELOCATION_LAYOUT_PLAN: 'Layout/Floor plan of new location',
RELOCATION_PHOTOS: 'Photos of new location',
RELOCATION_LOCALITY_MAP: 'Locality map',
RELOCATION_BUILDING_PLAN: 'Building plan approval',
RELOCATION_ELECTRICITY_DOCS: 'Electricity connection documents',
RELOCATION_WATER_DOCS: 'Water supply documents',
INCOME_TAX_RETURNS: 'Income Tax Returns (ITR)',
BUSINESS_VALUATION_REPORT: 'Business Valuation Report',
OTHER: 'Other'
} as const;
// Request Types
export const REQUEST_TYPES = {
APPLICATION: 'application',
RESIGNATION: 'resignation',
CONSTITUTIONAL: 'constitutional',
RELOCATION: 'relocation',
TERMINATION: 'termination'
} as const;
// Module List for Document Management
export const MODULE_LIST = ['ONBOARDING', 'RESIGNATION', 'RELOCATION', 'CONSTITUTIONAL_CHANGE', 'TERMINATION'] as const;
// Process Stages per Module (Source of Truth for Checklists)
export const STAGES_MAP = {
'ONBOARDING': ['General', 'KYC', 'Level 1 Interview', 'Level 2 Interview', 'Level 3 Interview', 'FDD', 'LOI Approval', 'LOA Approval', 'LOI Issue', 'Architecture Team Assigned', 'Architecture Document Upload', 'Architecture Team Completion', 'EOR', 'Inauguration'],
'RESIGNATION': ['Submission', 'Regional Review', 'ZM Review', 'ZBH Review', 'Finance Review', 'DDL Review', 'Approved'],
'RELOCATION': ['Initiated', 'ASM Review', 'ZM Review', 'ZBH Review', 'Completed'],
'CONSTITUTIONAL_CHANGE': ['Draft', 'Legal Review', 'Approved'],
'TERMINATION': ['Hearing', 'Review', 'Closed']
} as const;