import metodosFetch from "../app/metodosFetch.js?v=1.0.0";

class Permiso {
  constructor({
    id,
    tipoContenedor,
    contenedor,
    idTipoAsignacion,
    tipoAsignacion,
    idAsignacion,
    asignacion,
    idTipoPermiso,
    tipoPermiso,
    fechaRegistro,
  }) {
    this.id = id;
    this.tipoContenedor = tipoContenedor;
    this.contenedor = contenedor;
    this.idTipoAsignacion = idTipoAsignacion;
    this.tipoAsignacion = tipoAsignacion;
    this.idAsignacion = idAsignacion;
    this.asignacion = asignacion;
    this.idTipoPermiso = idTipoPermiso;
    this.tipoPermiso = tipoPermiso;
    this.fechaRegistro = fechaRegistro;
  }

  static async obtenerPorContenedor({ tipoContenedor, idContenedor }) {
    try {
      const respuesta = await metodosFetch.get({
        archivo: "controllers/permisoController",
        parametros: {
          accion: "obtenerPorContenedor",
          tipoContenedor,
          idContenedor,
        },
        loader: false,
      });

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

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

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

  static async eliminar({ id }) {
    try {
      const respuesta = await metodosFetch.post({
        archivo: "controllers/permisoController",
        data: {
          accion: "eliminar",
          id,
        },
      });

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

export default Permiso;
