import express from 'express';
import path from 'path';
import { BodhiProfiler } from '../index';

export class Dashboard {
  private app: express.Application;
  private profiler: BodhiProfiler;

  constructor(profiler: BodhiProfiler) {
    this.profiler = profiler;
    this.app = express();
    this.setupRoutes();
  }

  private setupRoutes() {
    // Serve static files
    this.app.use(express.static(path.join(__dirname, 'public')));

    // API endpoints
    this.app.get('/api/metrics', (req, res) => {
      res.json(this.profiler.getMetrics());
    });

    // Serve the dashboard HTML
    this.app.get('/', (req, res) => {
      res.sendFile(path.join(__dirname, 'public', 'index.html'));
    });
  }

  public start(port: number) {
    this.app.listen(port, () => {
      console.log(`Dashboard running at http://localhost:${port}`);
    });
  }
} 