const {
  getAllProduk,
  findProdukById,
  createProduk,
  updateStok,
  deleteProduk,
} = require("./servis.js");

const ambilSemua = async (req, res) => {
  try {
    const data = await getAllProduk();
    res.status(200).json(data);
  } catch (error) {
    res.status(500).json({ message: error.message });
  }
};

const detailProduk = async (req, res) => {
  try {
    const data = await findProdukById(req.params.id);
    if (!data)
      return res.status(404).json({ message: "Produk tidak ditemukan" });
    res.status(200).json(data);
  } catch (error) {
    res.status(500).json({ message: error.message });
  }
};

const buatProduk = async (req, res) => {
  try {
    const { nama_produk, stok, harga, kategori_id } = req.body;
    const body = { nama_produk, stok, harga, kategori_id };
    const data = await createProduk(body);
    res.status(201).json({ message: "Produk berhasil ditambah", data });
  } catch (error) {
    res.status(400).json({ message: error.message });
  }
};

const ubahStok = async (req, res) => {
  try {
    const { id } = req.params;

    const { nama_produk, harga, stok } = req.body;
    const body = { nama_produk, harga, stok };

    const data = await updateStok(id, body);

    res.status(200).json({ message: "Stok produk berhasil diupdate", data });
  } catch (error) {
    res.status(400).json({ message: error.message });
  }
};

const hapusData = async (req, res) => {
  try {
    const { id } = req.params;
    const hasil = await deleteProduk(id);

    if (!hasil)
      return res.status(404).json({ message: "Data tidak ditemukan" });

    res.status(200).json({ message: "Data berhasil dihapus dari database" });
  } catch (error) {
    res.status(500).json({ message: error.message });
  }
};

module.exports = { hapusData, ambilSemua, detailProduk, buatProduk, ubahStok };
