const { getAllStatusDb, getStatusByIdDb, createStatusDb, updateStatusDb, deleteStatusDb, checkStatusNumberExistsDb } = require('../db/status.db'); const { ErrorHandler } = require('../helpers/error'); class StatusService { // Get all status static async getAllStatus(param) { try { const results = await getAllStatusDb(param); results.data.map(element => { }); return results; } catch (error) { throw new ErrorHandler(error.statusCode, error.message); } } // Get status by ID static async getStatusById(id) { try { const result = await getStatusByIdDb(id); if (result.length < 1) throw new ErrorHandler(404, 'Status not found'); return result; } catch (error) { throw new ErrorHandler(error.statusCode, error.message); } } static async createStatus(data) { try { if (!data || typeof data !== 'object') data = {}; if (data.status_number) { const exists = await checkStatusNumberExistsDb(data.status_number); if (exists) throw new ErrorHandler(400, 'Status number already exists'); } const result = await createStatusDb(data); return result; } catch (error) { throw new ErrorHandler(error.statusCode || 500, error.message); } } // Update status static async updateStatus(id, data) { try { if (!data || typeof data !== 'object') data = {}; const dataExist = await getStatusByIdDb(id); if (dataExist.length < 1) { throw new ErrorHandler(404, 'Status not found'); } const result = await updateStatusDb(id, data); return result; } catch (error) { throw new ErrorHandler(error.statusCode, error.message); } } // Soft delete status static async deleteStatus(id, userId) { try { const dataExist = await getStatusByIdDb(id); if (dataExist.length < 1) { throw new ErrorHandler(404, 'Status not found'); } const result = await deleteStatusDb(id, userId); return result; } catch (error) { throw new ErrorHandler(error.statusCode, error.message); } } } module.exports = StatusService;