const { createPool, listPools, updatePoolState } = require('../../services/pool/PoolService'); module.exports = { async create(req, res) { try { const { name, description, state } = req.body || {}; const actorUserId = req.user && req.user.userId; if (!name) return res.status(400).json({ success: false, message: 'name is required' }); if (state && !['active', 'inactive'].includes(state)) { return res.status(400).json({ success: false, message: 'Invalid state. Allowed: active, inactive' }); } const pool = await createPool({ name, description, state, actorUserId }); return res.status(201).json({ success: true, data: pool }); } catch (e) { if (e && (e.code === 'ER_DUP_ENTRY' || e.errno === 1062)) { return res.status(409).json({ success: false, message: 'Pool name already exists' }); } if (e && e.status === 400) { return res.status(400).json({ success: false, message: e.message }); } console.error('[PoolController.create]', e); return res.status(500).json({ success: false, message: 'Internal server error' }); } }, async list(req, res) { try { console.debug('[PoolController.list] GET /api/admin/pools'); const pools = await listPools(); return res.status(200).json({ success: true, data: pools }); } catch (e) { console.error('[PoolController.list] error', e); return res.status(500).json({ success: false, message: 'Internal server error' }); } }, // NEW: optional state update handler (route can be added later) async updateState(req, res) { try { const { id } = req.params || {}; const { state } = req.body || {}; const actorUserId = req.user && req.user.userId; if (!id) return res.status(400).json({ success: false, message: 'id is required' }); if (!['active', 'inactive', 'archived'].includes(state)) { return res.status(400).json({ success: false, message: 'Invalid state. Allowed: active, inactive, archived' }); } const updated = await updatePoolState(id, state, actorUserId); return res.status(200).json({ success: true, data: updated }); } catch (e) { if (e && e.status === 400) { return res.status(400).json({ success: false, message: e.message }); } console.error('[PoolController.updateState]', e); return res.status(500).json({ success: false, message: 'Internal server error' }); } } };