import express, { Request, Response } from "express"; import { storage } from "../storage"; const router = express.Router(); // GET /api/ai/settings router.get("/settings", async (req: Request, res: Response): Promise => { try { const userId = req.user?.id; if (!userId) return res.status(401).json({ message: "Unauthorized" }); const settings = await storage.getAiSettings(userId); if (!settings) return res.status(200).json(null); return res.status(200).json({ id: settings.id, apiKey: settings.apiKey }); } catch (err) { return res.status(500).json({ error: "Failed to fetch AI settings", details: String(err) }); } }); // PUT /api/ai/settings router.put("/settings", async (req: Request, res: Response): Promise => { try { const userId = req.user?.id; if (!userId) return res.status(401).json({ message: "Unauthorized" }); const { apiKey } = req.body; if (!apiKey?.trim()) { return res.status(400).json({ message: "apiKey is required" }); } const settings = await storage.upsertAiSettings(userId, apiKey.trim()); return res.status(200).json({ id: settings.id, apiKey: settings.apiKey }); } catch (err) { return res.status(500).json({ error: "Failed to save AI settings", details: String(err) }); } }); // GET /api/ai/chat-templates router.get("/chat-templates", async (req: Request, res: Response): Promise => { try { const userId = req.user?.id; if (!userId) return res.status(401).json({ message: "Unauthorized" }); const templates = await storage.getAiChatTemplates(userId); return res.status(200).json(templates); } catch (err) { return res.status(500).json({ error: "Failed to fetch AI chat templates", details: String(err) }); } }); // PUT /api/ai/chat-templates router.put("/chat-templates", async (req: Request, res: Response): Promise => { try { const userId = req.user?.id; if (!userId) return res.status(401).json({ message: "Unauthorized" }); const { reminderGreeting, newPatientGreeting, generalFallback } = req.body; await storage.saveAiChatTemplates(userId, { reminderGreeting, newPatientGreeting, generalFallback }); const updated = await storage.getAiChatTemplates(userId); return res.status(200).json(updated); } catch (err) { return res.status(500).json({ error: "Failed to save AI chat templates", details: String(err) }); } }); export default router;