import { NextResponse } from 'next/server'; import { db } from '@/lib/db'; import { settings } from '@/lib/db/schema'; export async function GET() { try { // Test database connectivity const startTime = Date.now(); await db.select().from(settings).limit(1); const dbLatency = Date.now() - startTime; // Check memory usage const memoryUsage = process.memoryUsage(); return NextResponse.json({ status: 'healthy', timestamp: new Date().toISOString(), uptime: Math.floor(process.uptime()), environment: process.env.NODE_ENV, database: { status: 'connected', latency: `${dbLatency}ms`, }, memory: { rss: `${Math.round(memoryUsage.rss / 1024 / 1024)}MB`, heapUsed: `${Math.round(memoryUsage.heapUsed / 1024 / 1024)}MB`, heapTotal: `${Math.round(memoryUsage.heapTotal / 1024 / 1024)}MB`, }, version: process.env.npm_package_version || '1.0.0', }); } catch (error) { console.error('Health check failed:', error); return NextResponse.json( { status: 'unhealthy', timestamp: new Date().toISOString(), error: 'Database connection failed', details: error instanceof Error ? error.message : 'Unknown error', }, { status: 500 } ); } }