const { getDb } = require('../dbPool'); // 1. 전체 도구 조회 const getAll = async (callback) => { try { const db = await getDb(); const [rows] = await db.query('SELECT id, name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note FROM Tools'); callback(null, rows); } catch (err) { callback(err); } }; // 2. 단일 도구 조회 const getById = async (id, callback) => { try { const db = await getDb(); const [rows] = await db.query('SELECT id, name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note FROM Tools WHERE id = ?', [id]); callback(null, rows[0]); } catch (err) { callback(err); } }; // 3. 도구 생성 const create = async (tool, callback) => { try { const db = await getDb(); const { name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note } = tool; const [result] = await db.query( `INSERT INTO Tools (name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, [name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note] ); callback(null, result.insertId); } catch (err) { callback(err); } }; // 4. 도구 수정 const update = async (id, tool, callback) => { try { const db = await getDb(); const { name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note } = tool; const [result] = await db.query( `UPDATE Tools SET name = ?, location = ?, stock = ?, status = ?, factory_id = ?, map_x = ?, map_y = ?, map_zone = ?, map_note = ? WHERE id = ?`, [name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note, id] ); callback(null, result.affectedRows); } catch (err) { callback(new Error(err.message || String(err))); } }; // 5. 도구 삭제 const remove = async (id, callback) => { try { const db = await getDb(); const [result] = await db.query('DELETE FROM Tools WHERE id = ?', [id]); callback(null, result.affectedRows); } catch (err) { callback(err); } }; // ✅ export 정리 module.exports = { getAll, getById, create, update, remove };