const { getAllSparepartDb, getSparepartByIdDb, createSparepartDb, updateSparepartDb, deleteSparepartDb, checkSparepartNameExistsDb, } = require("../db/sparepart.db"); const { ErrorHandler } = require("../helpers/error"); class SparepartService { static async getAllSparepart(param) { try { const results = await getAllSparepartDb(param); results.data.map((item) => {}); return results; } catch (error) { throw new ErrorHandler(error.statusCode || 500, error.message); } } static async getSparepartById(id) { try { const sparepart = await getSparepartByIdDb(id); if (!sparepart || sparepart.length === 0) { throw new ErrorHandler(404, "Sparepart not found"); } return sparepart[0]; } catch (error) { throw new ErrorHandler(error.statusCode || 500, error.message); } } static async createSparepart(data) { try { if (!data || typeof data !== "object") data = {}; if (data.sparepart_name) { const exists = await checkSparepartNameExistsDb(data.sparepart_name); if (exists) throw new ErrorHandler(400, "Sparepart name already exists"); } const created = await createSparepartDb(data); if (!created) throw new ErrorHandler(500, "Failed to create Sparepart"); return created; } catch (error) { throw new ErrorHandler(error.statusCode || 500, error.message); } } static async updateSparepart(id, data) { try { const existing = await getSparepartByIdDb(id); if (!existing) throw new ErrorHandler(404, "Sparepart not found"); if ( data.sparepart_name && data.sparepart_name !== existing.sparepart_name ) { const exists = await checkSparepartNameExistsDb( data.sparepart_name, id ); if (exists) throw new ErrorHandler(400, "Sparepart name already exists"); } const updated = await updateSparepartDb(id, data); if (!updated) throw new ErrorHandler(500, "Failed to update Sparepart"); return await this.getSparepartById(id); } catch (error) { throw new ErrorHandler(error.statusCode || 500, error.message); } } static async deleteSparepart(id, userId) { try { const existing = await getSparepartByIdDb(id); if (!existing) throw new ErrorHandler(404, "Sparepart not found"); const deleted = await deleteSparepartDb(id, userId); if (!deleted) throw new ErrorHandler(500, "Failed to delete Sparepart"); return deleted; } catch (error) { throw new ErrorHandler(error.statusCode || 500, error.message); } } } module.exports = SparepartService;