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

class Apartado {
  idModulo;
  id;
  icono;
  titulo;
  tipo;
  nombreArchivo;
  descripcion;
  nivel;
  mantenimiento;
  subApartados;

  constructor({
    idModulo = 0,
    id,
    icono,
    titulo,
    tipo,
    nombreArchivo,
    descripcion,
    nivel = 1,
    mantenimiento = 0,
    subApartados = [],
  }) {
    this.idModulo = idModulo;
    this.id = id;
    this.icono = icono;
    this.titulo = titulo;
    this.tipo = tipo;
    this.nombreArchivo = nombreArchivo;
    this.descripcion = descripcion;
    this.nivel = nivel;
    this.mantenimiento = mantenimiento;
    this.subApartados = subApartados;
  }

  static async obtenerPorModulo({ idModulo }) {
    try {
      const respuesta = await metodosFetch.get({
        archivo: "controllers/apartadoController",
        parametros: {
          accion: "obtenerPorModulo",
          idModulo,
        },
      });

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

  static async obtenerPorSuperior({ idSuperior, nivel }) {
    try {
      const respuesta = await metodosFetch.get({
        archivo: "controllers/apartadoController",
        parametros: {
          accion: "obtenerPorSuperior",
          idSuperior,
          nivel,
        },
      });

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

export default Apartado;
