const TblArtigoPorGrupoValidade = require("../models/TblArtigosPorGrupoValidade");

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

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

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



const createArtigoPorGrupoValidade = async (artigoPorGrupoData) => {
  return TblArtigoPorGrupoValidade.create(artigoPorGrupoData);
};

const updateArtigoPorGrupoValidade = async (id, artigoPorGrupoValidadeData) => {
  const artigoPorGrupoValidade = await TblArtigoPorGrupoValidade.findByPk(id);
  if (!artigoPorGrupoValidade) {
    throw new Error("ArtigoPorGrupoValidade not found");
  }
  return artigoPorGrupoValidade.update(artigoPorGrupoValidadeData);
};

const deleteArtigoPorGrupoValidade = async (id) => {
  // Assuming TblArtigoPorGrupo is your Sequelize model
  const result = await TblArtigoPorGrupoValidade.update(
    { bitEliminado: true },
    { where: { intId: id } }
  );

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

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

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

module.exports = {
  getAllArtigosPorGrupoValidade,
  getArtigoPorGrupoValidadeById,
  createArtigoPorGrupoValidade,
  updateArtigoPorGrupoValidade,
  deleteArtigoPorGrupoValidade,
};
