UNPKG

pms-analysis-reports-mcp-server

Version:

PMS analysis reports server handling maintenance reports, equipment analysis, compliance tracking, and performance metrics with ERP access for data extraction

72 lines (71 loc) 3.11 kB
/** * Company Name Filtering Utilities * Helper functions for filtering data based on company IMO numbers * * ============================================================================ * OLD IMPLEMENTATION (COMMENTED OUT - REPLACED BY OPTIMIZED VERSION) * ============================================================================ * The old implementation has been replaced with an optimized version that includes: * - In-memory caching with TTL (5 minutes) * - MongoDB connection pooling * - Set-based IMO lookups (O(1) instead of O(n)) * - Cached environment variables and config * ============================================================================ */ /** * Check if IMO filtering should be bypassed for admin companies */ declare function shouldBypassImoFiltering(companyName: string): boolean; /** * Optimized Company Filter Manager with caching and connection pooling */ declare class CompanyFilterManager { private imoCache; private mongoClients; private readonly CACHE_TTL; private cachedCompanyName; private cachedDbConfig; /** * Get company name (cached) */ private getCompanyName; /** * Get database configuration (cached) */ private getDbConfig; /** * Get or create MongoDB client (connection pooling) */ private getMongoClient; /** * Get company IMO set with caching (returns Set for O(1) lookups) */ getCompanyImoSet(companyName: string, dbName: string, mongoUri: string, collectionName?: string): Promise<Set<string>>; /** * Validate if an IMO belongs to the company (optimized) */ isValidImoForCompany(imo: string | number, companyName?: string, dbName?: string, mongoUri?: string): Promise<boolean>; /** * Update Typesense filter with company IMO numbers (optimized) */ updateTypesenseFilterWithCompanyImos(filter: string, dbName?: string, mongoUri?: string): Promise<string>; /** * Get company IMO numbers as array (for backward compatibility) */ getCompanyImoNumbers(companyName: string, dbName: string, mongoUri: string, collectionName?: string): Promise<string[]>; filterImoListForCompany(imoList: number[], dbName?: string, mongoUri?: string): Promise<number[]>; /** * Clear cache (useful for testing or forced refresh) */ clearCache(): void; /** * Close all MongoDB connections (cleanup) */ closeConnections(): Promise<void>; } export declare const companyFilter: CompanyFilterManager; export declare function fetchCompanyImoNumbers(companyName: string, dbName: string, mongoUri: string, collectionName?: string): Promise<string[]>; export declare function isValidImoForCompany(imo: string | number, companyName?: string, dbName?: string, mongoUri?: string): Promise<boolean>; export declare function updateTypesenseFilterWithCompanyImos(filter: string, dbName?: string, mongoUri?: string): Promise<string>; export declare function filterImoListForCompany(imoList: number[], dbName?: string, mongoUri?: string): Promise<number[]>; export { shouldBypassImoFiltering };