const {Gejala} = require('../models'); // 🔹 Menampilkan semua data gejala exports.getAllGejala = async (req, res) => { try { const gejala = await Gejala.findAll({ attributes: ['id', 'nama', 'kode'] }); res.status(200).json(gejala); } catch (error) { res.status(500).json({ message: 'Terjadi kesalahan', error }); } }; // 🔹 Menampilkan satu gejala berdasarkan ID exports.getGejalaById = async (req, res) => { try { const gejala = await Gejala.findByPk(req.params.id); if (!gejala) { return res.status(404).json({ message: 'Gejala tidak ditemukan' }); } res.status(200).json(gejala); } catch (error) { res.status(500).json({ message: 'Terjadi kesalahan', error }); } }; // 🔹 Menambahkan gejala baru dengan kode otomatis exports.createGejala = async (req, res) => { try { const { nama } = req.body; if (!nama) { return res.status(400).json({ message: 'Nama gejala wajib diisi' }); } // Cari kode terakhir di database const lastGejala = await Gejala.findOne({ order: [['id', 'DESC']] }); // Generate kode baru berdasarkan kode terakhir let newKode = 'G01'; if (lastGejala && lastGejala.kode) { const lastNumber = parseInt(lastGejala.kode.substring(1)); // Ambil angka setelah 'G' const nextNumber = lastNumber + 1; newKode = `G${nextNumber.toString().padStart(2, '0')}`; // Format G01, G02, dst. } // Buat data baru const newGejala = await Gejala.create({ kode: newKode, nama }); res.status(201).json({ message: 'Gejala berhasil ditambahkan', data: newGejala }); } catch (error) { res.status(500).json({ message: 'Gagal menambahkan gejala', error: error.message }); } }; // 🔹 Mengupdate gejala berdasarkan ID exports.updateGejala = async (req, res) => { try { const { kode, nama } = req.body; const gejala = await Gejala.findByPk(req.params.id); if (!gejala) { return res.status(404).json({ message: 'Gejala tidak ditemukan' }); } await gejala.update({ kode, nama }); res.status(200).json({ message: 'Gejala berhasil diperbarui', data: gejala }); } catch (error) { res.status(500).json({ message: 'Gagal memperbarui gejala', error }); } }; // 🔹 Menghapus gejala berdasarkan ID exports.deleteGejala = async (req, res) => { try { const gejala = await Gejala.findByPk(req.params.id); if (!gejala) { return res.status(404).json({ message: 'Gejala tidak ditemukan' }); } await gejala.destroy(); res.status(200).json({ message: 'Gejala berhasil dihapus' }); } catch (error) { res.status(500).json({ message: 'Gagal menghapus gejala', error }); } };