import { Router, Request, Response } from 'express';
import { SettingsService } from './settings.service';

const router = Router();

// GET /api/settings - Fetch current settings
router.get('/', (req: Request, res: Response) => {
  res.json({ success: true, data: SettingsService.getSettings() });
});

// POST /api/settings - Update settings
router.post('/', (req: Request, res: Response) => {
  try {
    const updated = SettingsService.updateSettings(req.body);
    res.json({ success: true, message: 'Settings saved successfully.', data: updated });
  } catch (err: any) {
    res.status(500).json({ success: false, message: err.message });
  }
});

// POST /api/settings/test-mikrotik - Probe real MikroTik Router socket
router.post('/test-mikrotik', async (req: Request, res: Response) => {
  try {
    const { host, port } = req.body;
    if (!host || !port) {
      return res.status(400).json({ success: false, message: 'host and port required' });
    }
    const result = await SettingsService.testMikrotikConnection(host, Number(port));
    res.json(result);
  } catch (err: any) {
    res.status(500).json({ success: false, message: err.message });
  }
});

export const settingsRouter = router;
