Unidad

Documentación detallada del módulo de Unidades para la gestión de unidades dentro de planificaciones en RedCollege.

Introducción

El módulo UnidadModule proporciona métodos para gestionar las unidades dentro de las planificaciones educativas en el sistema RedCollege. Permite realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) sobre unidades, así como funcionalidades adicionales como relación con ítems curriculares y gestión de archivos asociados.

Métodos

getAll

Obtiene todas las unidades asociadas a una planificación.

Parámetros:

NombreTipoDescripciónRequerido
planificacionIdnumberID de la planificación

Retorna:

  • Promise con un array de objetos IUnidad

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const unidades = await planificaciones.unidades.getAll(123)

getUnidadById

Obtiene una unidad específica por su ID.

Parámetros:

NombreTipoDescripciónRequerido
unidadIdnumberID de la unidad a obtener

Retorna:

  • Promise con un objeto IUnidad con los detalles de la unidad

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const unidad = await planificaciones.unidades.getUnidadById(456)

saveUnidad

Crea una nueva unidad.

Parámetros:

NombreTipoDescripciónRequerido
dataIUnidadFormDatos de la unidad a crear

Propiedades de IUnidadForm:

PropiedadTipoDescripciónRequerido
planificacionIdnumberID de la planificación
titulostringTítulo de la unidad
numeronumberNúmero de orden de la unidad
descripcionstringDescripción de la unidad
fechaInicioDateTimeFecha de inicio de la unidadNo
fechaFinDateTimeFecha de finalización de la unidadNo

Retorna:

  • Promise con un objeto IUnidad de la unidad creada

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const nuevaUnidad = await planificaciones.unidades.saveUnidad({
  planificacionId: 123,
  titulo: 'Unidad 1: Introducción',
  numero: 1,
  descripcion: 'Unidad introductoria del curso',
  fechaInicio: luxon.DateTime.now(),
  fechaFin: luxon.DateTime.now().plus({ weeks: 4 })
})

updateUnidad

Actualiza una unidad existente.

Parámetros:

NombreTipoDescripciónRequerido
dataObjectObjeto con datos para actualizar
data.dataIUnidadFormDatos actualizados de la unidad
data.idnumberID de la unidad a actualizar

Retorna:

  • Promise con un objeto IUnidad con los datos actualizados

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const unidadActualizada = await planificaciones.unidades.updateUnidad({
  data: {
    planificacionId: 123,
    titulo: 'Unidad 1: Fundamentos (Actualizada)',
    numero: 1,
    descripcion: 'Descripción actualizada',
    fechaInicio: luxon.DateTime.now(),
    fechaFin: luxon.DateTime.now().plus({ weeks: 5 })
  },
  id: 456
})

deleteUnidad

Elimina una unidad.

Parámetros:

NombreTipoDescripciónRequerido
idnumberID de la unidad a eliminar

Retorna:

  • Promise con un objeto IUnidad de la unidad eliminada

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const unidadEliminada = await planificaciones.unidades.deleteUnidad(456)

relateItemsUnidades

Relaciona ítems de entrada curricular con una unidad específica.

Parámetros:

NombreTipoDescripciónRequerido
planificacionIdnumberID de la planificación
unidadIdnumberID de la unidad
itemEntradaCurricularIdnumberArray de IDs de ítems a relacionar
itemIdnumberID del ítem principal

Retorna:

  • Promise con un objeto IItemEntradaCurricular

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const resultado = await planificaciones.unidades.relateItemsUnidades(
  123, // planificacionId
  456, // unidadId
  [789, 790, 791], // itemEntradaCurricularId
  789 // itemId
)

getUnidadesByPlanificacion

Obtiene todas las unidades asociadas a una planificación (método alternativo a getAll).

Parámetros:

NombreTipoDescripciónRequerido
planificacionIdnumberID de la planificación

Retorna:

  • Promise con un array de objetos IUnidad

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const unidades = await planificaciones.unidades.getUnidadesByPlanificacion(123)

asociarArchivo

Asocia un archivo existente a una unidad.

Parámetros:

NombreTipoDescripciónRequerido
unidadIdnumberID de la unidad
archivoIdnumberID del archivo a asociar

Retorna:

  • Promise con un objeto IArchivo con los datos del archivo asociado

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const archivoAsociado = await planificaciones.unidades.asociarArchivo(456, 789)

softDeleteArchivoAsociado

Elimina temporalmente (soft delete) un archivo asociado a una unidad.

Parámetros:

NombreTipoDescripciónRequerido
unidadIdnumberID de la unidad
archivoIdnumberID del archivo a eliminar

Retorna:

  • Promise con un objeto IArchivo del archivo eliminado

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const archivoEliminado = await planificaciones.unidades.softDeleteArchivoAsociado(456, 789)

destroyArchivo

Elimina permanentemente un archivo asociado a una unidad.

Parámetros:

NombreTipoDescripciónRequerido
unidadIdnumberID de la unidad
archivoIdnumberID del archivo a eliminar permanentemente

Retorna:

  • Promise con un objeto IArchivo del archivo eliminado

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
await planificaciones.unidades.destroyArchivo(456, 789)

relacionarItemsUnidad

Relaciona múltiples ítems curriculares con una unidad.

Parámetros:

NombreTipoDescripciónRequerido
itemsIdsnumberArray de IDs de ítems curriculares
unidadIdnumberID de la unidad

Retorna:

  • Promise con un objeto IUnidad actualizado

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const unidadActualizada = await planificaciones.unidades.relacionarItemsUnidad(
  [789, 790, 791],
  456
)

obtenerDiasHabilesUnidad

Obtiene los días hábiles disponibles para una unidad.

Parámetros:

NombreTipoDescripciónRequerido
unidadIdnumberID de la unidad

Retorna:

  • Promise con un array de objetos DateTime representando días hábiles

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const diasHabiles = await planificaciones.unidades.obtenerDiasHabilesUnidad(456)

Consideraciones importantes

  • La mayoría de los métodos requieren autenticación previa en el sistema.
  • Los IDs deben ser números válidos existentes en la base de datos.
  • Las fechas en los formularios deben ser proporcionadas como objetos DateTime de Luxon.
  • Las operaciones de relacionar ítems curriculares pueden afectar la estructura de las planificaciones.

Errores comunes

  • 404 Not Found: La unidad o recurso solicitado no existe
  • 403 Forbidden: El usuario no tiene permisos para acceder a la unidad
  • 400 Bad Request: Datos enviados incorrectos o incompletos
  • 500 Internal Server Error: Error en el servidor, intentar más tarde

Interfaces relacionadas

Las principales interfaces utilizadas por este módulo son:

  • IUnidad: Representa una unidad completa con todas sus relaciones
  • IUnidadForm: Formato para crear o actualizar unidades
  • IItemEntradaCurricular: Representa un ítem de entrada curricular
  • IArchivo: Representa un archivo asociado a una unidad