const { Rule_penyakit } = require('../models');

// 🔥 Buat aturan baru
exports.createRulePenyakit = async (req, res) => {
  try {
    const { id_gejala, id_penyakit, nilai_pakar } = req.body;

    // Validasi minimal
    if (!id_gejala || (!id_penyakit) || !nilai_pakar) {
      return res.status(400).json({ message: 'Data tidak lengkap' });
    }

    const newRule = await Rule_penyakit.create({
      id_gejala,
      id_penyakit,
      nilai_pakar
    });

    res.status(201).json({ message: 'Rule berhasil dibuat', data: newRule });
  } catch (error) {
    console.error('Error createRule:', error);
    res.status(500).json({ message: 'Terjadi kesalahan server', error: error.message });
  }
};

// 🔥 Ambil semua aturan
exports.getRulesPenyakit = async (req, res) => {
  try {
    const rules = await Rule_penyakit.findAll();

    res.status(200).json({ message: 'Daftar Rules', data: rules });
  } catch (error) {
    console.error('Error getRules:', error);
    res.status(500).json({ message: 'Terjadi kesalahan server', error: error.message });
  }
};

// 🔥 Update aturan
exports.updateRulePenyakit = async (req, res) => {
  try {
    const { id } = req.params;
    const { id_gejala, id_penyakit, nilai_pakar } = req.body;

    const rule = await Rule_penyakit.findByPk(id);
    if (!rule) {
      return res.status(404).json({ message: 'Rule tidak ditemukan' });
    }

    await rule.update({
      id_gejala,
      id_penyakit,
      nilai_pakar
    });

    res.status(200).json({ message: 'Rule berhasil diperbarui', data: rule });
  } catch (error) {
    console.error('Error updateRule:', error);
    res.status(500).json({ message: 'Terjadi kesalahan server', error: error.message });
  }
};

// 🔥 Hapus aturan
exports.deleteRulePenyakit = async (req, res) => {
  try {
    const { id } = req.params;

    const rule = await Rule_penyakit.findByPk(id);
    if (!rule) {
      return res.status(404).json({ message: 'Rule tidak ditemukan' });
    }

    await rule.destroy();

    res.status(200).json({ message: 'Rule berhasil dihapus' });
  } catch (error) {
    console.error('Error deleteRule:', error);
    res.status(500).json({ message: 'Terjadi kesalahan server', error: error.message });
  }
};
