436 lines
13 KiB
TypeScript
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;
|