Re_Backend/src/config/constants.ts

82 lines
2.6 KiB
TypeScript

export const constants = {
// API Configuration
API_VERSION: process.env.API_VERSION || 'v1',
BASE_URL: process.env.BASE_URL || 'http://localhost:5000',
// File Upload Configuration
MAX_FILE_SIZE_MB: parseInt(process.env.MAX_FILE_SIZE_MB || '10', 10),
MAX_FILE_SIZE_BYTES: parseInt(process.env.MAX_FILE_SIZE_MB || '10', 10) * 1024 * 1024,
ALLOWED_FILE_TYPES: process.env.ALLOWED_FILE_TYPES?.split(',') || [
'pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'jpg', 'jpeg', 'png', 'gif'
],
// TAT Configuration
TAT_CHECK_INTERVAL_MINUTES: parseInt(process.env.TAT_CHECK_INTERVAL_MINUTES || '30', 10),
TAT_REMINDER_THRESHOLD_1: parseInt(process.env.TAT_REMINDER_THRESHOLD_1 || '50', 10),
TAT_REMINDER_THRESHOLD_2: parseInt(process.env.TAT_REMINDER_THRESHOLD_2 || '80', 10),
// Rate Limiting
RATE_LIMIT_WINDOW_MS: parseInt(process.env.RATE_LIMIT_WINDOW_MS || '900000', 10), // 15 minutes
RATE_LIMIT_MAX_REQUESTS: parseInt(process.env.RATE_LIMIT_MAX_REQUESTS || '100', 10),
// Pagination
DEFAULT_PAGE_SIZE: 20,
MAX_PAGE_SIZE: 100,
// Workflow Limits
MAX_APPROVAL_LEVELS: 10,
MAX_PARTICIPANTS_PER_REQUEST: 50,
// Notification Types
NOTIFICATION_TYPES: {
WORKFLOW_CREATED: 'WORKFLOW_CREATED',
WORKFLOW_SUBMITTED: 'WORKFLOW_SUBMITTED',
APPROVAL_REQUIRED: 'APPROVAL_REQUIRED',
APPROVAL_COMPLETED: 'APPROVAL_COMPLETED',
WORKFLOW_APPROVED: 'WORKFLOW_APPROVED',
WORKFLOW_REJECTED: 'WORKFLOW_REJECTED',
WORKFLOW_CLOSED: 'WORKFLOW_CLOSED',
TAT_REMINDER: 'TAT_REMINDER',
TAT_BREACHED: 'TAT_BREACHED',
DOCUMENT_UPLOADED: 'DOCUMENT_UPLOADED',
COMMENT_ADDED: 'COMMENT_ADDED',
PARTICIPANT_ADDED: 'PARTICIPANT_ADDED',
},
// Activity Types
ACTIVITY_TYPES: {
WORKFLOW_CREATED: 'WORKFLOW_CREATED',
WORKFLOW_SUBMITTED: 'WORKFLOW_SUBMITTED',
WORKFLOW_APPROVED: 'WORKFLOW_APPROVED',
WORKFLOW_REJECTED: 'WORKFLOW_REJECTED',
WORKFLOW_CLOSED: 'WORKFLOW_CLOSED',
DOCUMENT_UPLOADED: 'DOCUMENT_UPLOADED',
DOCUMENT_DELETED: 'DOCUMENT_DELETED',
COMMENT_ADDED: 'COMMENT_ADDED',
PARTICIPANT_ADDED: 'PARTICIPANT_ADDED',
PARTICIPANT_REMOVED: 'PARTICIPANT_REMOVED',
USER_LOGIN: 'USER_LOGIN',
USER_LOGOUT: 'USER_LOGOUT',
},
// Document Categories
DOCUMENT_CATEGORIES: {
SUPPORTING: 'SUPPORTING',
APPROVAL: 'APPROVAL',
REFERENCE: 'REFERENCE',
FINAL: 'FINAL',
OTHER: 'OTHER',
COMPLETION_DOC: 'COMPLETION_DOC',
ACTIVITY_PHOTO: 'ACTIVITY_PHOTO',
},
// Work Note Types
WORK_NOTE_TYPES: {
COMMENT: 'COMMENT',
QUESTION: 'QUESTION',
CLARIFICATION: 'CLARIFICATION',
UPDATE: 'UPDATE',
SYSTEM: 'SYSTEM',
},
};