const DevManagementService = require('../../services/dev/DevManagementService'); const { logger } = require('../../middleware/logger'); function previewSql(sql, max = 180) { if (!sql) return ''; const s = String(sql).replace(/\s+/g, ' ').trim(); return s.length > max ? `${s.slice(0, max)}…` : s; } exports.importSqlDump = async (req, res) => { try { if (!req.file || !req.file.buffer) { return res.status(400).json({ success: false, error: 'SQL dump file is required' }); } const sql = req.file.buffer.toString('utf8'); if (!sql.trim()) { return res.status(400).json({ success: false, error: 'SQL dump file is empty' }); } const start = Date.now(); const { rows, fields } = await DevManagementService.executeDump(sql); const durationMs = Date.now() - start; const isMulti = Array.isArray(fields) && fields.length > 0 && Array.isArray(fields[0]); return res.json({ success: true, data: { result: rows, isMulti: !!isMulti }, meta: { durationMs } }); } catch (e) { logger.error('[DevManagementController.importSqlDump] error', { msg: e?.message, sql: previewSql(req.file?.buffer?.toString('utf8')) }); return res.status(500).json({ success: false, error: e?.message || 'SQL execution failed' }); } };