import { Request, Response } from 'express'; import { IDatasetService } from '../services/interfaces/IDatasetService'; export class HealthController { private datasetService: IDatasetService; constructor(datasetService: IDatasetService) { this.datasetService = datasetService; } public getHealth = async (req: Request, res: Response): Promise => { try { const stats = await this.datasetService.getDatasetStats(); const memoryUsage = process.memoryUsage(); res.status(200).json({ status: 'healthy', timestamp: new Date().toISOString(), nodeVersion: process.version, uptimeSeconds: Math.floor(process.uptime()), memory: { rssMb: Math.round(memoryUsage.rss / (1024 * 1024)), heapTotalMb: Math.round(memoryUsage.heapTotal / (1024 * 1024)), heapUsedMb: Math.round(memoryUsage.heapUsed / (1024 * 1024)), }, storage: { csvAvailable: stats.csvExists, idxAvailable: stats.idxExists, totalIndexedRows: stats.totalIndexedRows, }, }); } catch (err: any) { res.status(500).json({ status: 'unhealthy', error: err.message, }); } }; }