const MovMovimentoMaquina = require("../models/MovMovimentosMaquina");

const getAllMovimentos = async (queryParams = {}) => {
  return MovMovimentoMaquina.findAll({
    where: queryParams,
  });
};

const getMovimentoById = async (id, queryParams = {}) => {
  const whereCondition = { intId: id, ...queryParams };

  return MovMovimentoMaquina.findOne({
    where: whereCondition,
  });
};

const createMovimento = async (movimentoData) => {
  return MovMovimentoMaquina.create(movimentoData);
};

const updateMovimento = async (id, movimentoData) => {
  const movimento = await MovMovimentoMaquina.findByPk(id);
  if (!movimento) {
    throw new Error("Movimento not found");
  }
  return movimento.update(movimentoData);
};

const deleteMovimento = async (id) => {
  // Assuming MovMovimentoMaquina is your Sequelize model
  const result = await MovMovimentoMaquina.destroy({ where: { intId: id } });

  // The 'result' object contains information about the operation
  const affectedRows = result[0];

  if (affectedRows === 0) {
    throw new Error("Movimento not found");
  }

  // You might want to return additional information if needed
  return { success: true, message: "Movimento soft deleted successfully" };
};

module.exports = {
  getAllMovimentos,
  getMovimentoById,
  createMovimento,
  updateMovimento,
  deleteMovimento,
};
