import { Router, Request, Response } from 'express'; import { pool } from '../db'; import { asyncRoute } from '../asyncRoute'; const router = Router(); router.get('/', asyncRoute(async (_req: Request, res: Response) => { const { rows } = await pool.query(`SELECT key, value FROM admin_settings`); const map: Record = {}; for (const r of rows) map[r.key] = r.value; res.json({ cartExpiryHours: parseFloat(map.cart_expiry_hours || '24') }); })); router.put('/', asyncRoute(async (req: Request, res: Response) => { const { cartExpiryHours } = req.body; const hours = parseFloat(cartExpiryHours); if (Number.isNaN(hours) || hours <= 0) { return res.status(400).json({ error: 'cartExpiryHours must be a positive number' }); } await pool.query( `INSERT INTO admin_settings (key, value, updated_at) VALUES ('cart_expiry_hours', $1, now()) ON CONFLICT (key) DO UPDATE SET value = $1, updated_at = now()`, [String(hours)] ); res.json({ cartExpiryHours: hours }); })); export default router;