import { obtenerNombreModulo } from "../../../../assets/js/app/funcionesGenerales.js";
import metodosFetch from "../../../../assets/js/app/metodosFetch.js";

class tipoHorasExtra {
  constructor({
    codtipo,
    tipoHoraExtra,
    factor,
    recargo,
    aplicaCotizaciones,
    aplicaRenta,
    calcularSobreSalario,
    planillaComplementaria,
  }) {
    this.codtipo = codtipo; //asignar a la clase
    this.tipoHoraExtra = tipoHoraExtra;
    this.factor = factor;
    this.recargo = recargo;
    this.aplicaCotizaciones = aplicaCotizaciones;
    this.aplicaRenta = aplicaRenta;
    this.calcularSobreSalario = calcularSobreSalario;
    this.planillaComplementaria = planillaComplementaria;
  }

  static async obtenerRegistro() {
    try {
      const respuesta = await metodosFetch.get({
        archivo: `controllers/tiposHorasExtraController`,
        modulo: obtenerNombreModulo(),
        parametros: {
          accion: "obtenerRegistro", //identificar en el backend
        },
        loader: false,
      });

      return respuesta;
    } catch (err) {
      throw err;
    }
  }

  async guardar() {
    try {
      const respuesta = await metodosFetch.post({
        archivo: `controllers/tiposHorasExtraController`,
        modulo: obtenerNombreModulo(),
        data: {
          accion: "guardar",
          ...this,
        },
      });

      return respuesta;
    } catch (err) {
      throw err;
    }
  }

  async eliminar() {
    try {
      const respuesta = await metodosFetch.post({
        archivo: `controllers/tiposHorasExtraController`,
        modulo: obtenerNombreModulo(),
        data: {
          accion: "eliminar",
          codtipo: this.codtipo,
        },
      });

      return respuesta;
    } catch (err) {
      throw err;
    }
  }
}

export default tipoHorasExtra;
