Go

Servicio: priority-blocks

Información General


Propósito de Negocio

En la gestión de obra, no todos los bloques tienen la misma urgencia. Este servicio mantiene una vista curada de bloques ordenados por prioridad para guiar al equipo de certificación. Permite:


Endpoints Expuestos

Método Path Descripción
GET /:projectId Obtener todos los bloques prioritarios del proyecto
GET /classified-blocks/:projectId Bloques clasificados por categoría
GET /blocks-to-certify/:projectId Bloques pendientes de certificación
POST /filtered-blocks/:projectId Bloques filtrados por etiqueta (con body de filtros)
PUT /cron-update/:projectId Actualización periódica de prioridades (cron)
PUT /executed Actualizar valor ejecutado de un bloque
DELETE /blocks Deshabilitar bloques prioritarios

GET /:projectId — Retorna todos los bloques del proyecto con su estado de prioridad. Incluye metadatos de certificación y fechas de avance.

GET /classified-blocks/:projectId — Agrupa los bloques en categorías como: completados, en progreso, atrasados, bloqueados. Usado para dashboards de seguimiento.

GET /blocks-to-certify/:projectId — Filtra solo los bloques que están pendientes de certificación formal.

PUT /cron-update/:projectId — Endpoint diseñado para ser llamado por un cron job. Recalcula y actualiza el orden de prioridad de todos los bloques del proyecto basándose en el estado actual de avance, fechas y dependencias.

DELETE /blocks — Desactiva bloques prioritarios (no los elimina físicamente de MongoDB).


Estructura del Proyecto

priority-blocks/
├── main.go
├── go.mod
├── databases/
│   └── (conexión MongoDB)
├── env/
│   ├── setEnv.go
│   └── useEnv.go
└── server/
    ├── router/
    │   ├── prod/prodRoutes.go
    │   └── sandbox/sandboxRoutes.go
    ├── handlers/
    │   └── prod/
    │       ├── get/
    │       ├── post/
    │       ├── put/
    │       └── delete/
    ├── controllers/
    ├── helpers/
    ├── metrictime/
    ├── middlewares/
    └── structs/

Base de Datos


Variables de Entorno

Variable Descripción
ENVIRONMENT Ambiente activo
{ENV}_PORT Puerto HTTP
{ENV}_DB_* Credenciales MongoDB

Middlewares


Dependencias (go.mod)

Librería Propósito
gin-gonic/gin Framework HTTP
gin-contrib/cors CORS
go.mongodb.org/mongo-driver MongoDB

Rol en el Sistema


Alertas Técnicas