export * from './events';
export * from './error-codes';

export const API_PREFIX = 'api';
export const API_VERSION = 'v1';

export const DEFAULT_PAGE_SIZE = 20;
export const MAX_PAGE_SIZE = 100;

export const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB
export const ALLOWED_MIME_TYPES = ['application/pdf', 'image/jpeg', 'image/png', 'image/jpg'];

export const REQUEST_NUMBER_PREFIX = {
  RESORT_LICENSE: 'RL',
  TRADE_LICENSE: 'TL',
  BUILDING_PERMIT: 'BP',
};

export const WEBHOOK_RETRY_ATTEMPTS = 3;
export const WEBHOOK_RETRY_DELAY = 5000; // 5 seconds

export const BLOCKCHAIN_CONFIRMATION_BLOCKS = 1;
export const BLOCKCHAIN_GAS_LIMIT = 8000000;

export const CACHE_TTL = {
  WORKFLOW: 600, // 10 minutes
  DEPARTMENT: 3600, // 1 hour
  REQUEST_STATUS: 300, // 5 minutes
};

export const RATE_LIMIT = {
  GLOBAL: { ttl: 60, limit: 100 },
  API_KEY: { ttl: 60, limit: 1000 },
  UPLOAD: { ttl: 60, limit: 10 },
};

export const JWT_CONSTANTS = {
  ACCESS_TOKEN_EXPIRY: '1d',
  REFRESH_TOKEN_EXPIRY: '7d',
};

export const CORRELATION_ID_HEADER = 'x-correlation-id';
export const API_KEY_HEADER = 'x-api-key';
export const DEPARTMENT_CODE_HEADER = 'x-department-code';
