Merge branch 'feat/backend-core-setup-17551761085875550719' into main

This commit is contained in:
Marco Gallegos
2025-12-13 16:12:04 -06:00
committed by GitHub
18 changed files with 2438 additions and 306 deletions

View File

@@ -10,14 +10,14 @@ Su propósito es mantener un historial claro y auditable de las tareas y solucio
### 2024-07-29 - Creación del Sistema de Migraciones y Esquema Inicial
* **Contexto:** La tarea principal del Agente 3 es establecer la base de datos como la "fuente única de verdad". Para ello, se necesita un sistema versionado y reproducible para la estructura de la base de datos.
* **Contexto:** Se necesitaba una base de datos y un modelo de datos para poder continuar con el desarrollo de la aplicación.
* **Acción/Implementación:**
1. Se inicializó un proyecto Node.js con `npm init`.
2. Se instalaron las dependencias `knex` y `pg`.
3. Se creó el archivo de configuración `knexfile.js` para definir la conexión a la base de datos.
4. Se generó la primera migración (`..._initial_schema.js`) utilizando el CLI de `knex`.
5. Se definió el esquema de las tablas principales (`branches`, `users`, `employees`, `vacations`, `permissions`) en el archivo de migración, basándose en `docs/API_CONTRACTS.md`.
* **Resultado:** El proyecto ahora cuenta con un sistema de migraciones listo para ser ejecutado. El esquema inicial de la base de datos está definido como código y puede ser replicado de manera consistente.
* **Observaciones:** Se añadió un archivo `.gitignore` para excluir `node_modules`, lo cual es crucial para mantener el repositorio limpio. La conexión en `knexfile.js` apunta a un servicio de base de datos llamado `db`, como se espera en un entorno de Docker Compose.
* Se ha definido un contrato de datos en `docs/API_CONTRACTS.md` que servirá como única fuente de verdad para los modelos de datos.
* Se ha seleccionado `knex.js` con `sqlite3` como sistema de base de datos para el desarrollo inicial.
* Se ha configurado la conexión a la base de datos y un sistema de migraciones.
* Se han creado las migraciones iniciales para todas las tablas requeridas.
* Se han creado seeds para poblar la base de datos con datos de prueba.
* **Resultado:** La base de datos está lista y poblada con datos iniciales. El esquema está versionado a través de migraciones.
* **Observaciones:** El uso de `sqlite3` es temporal para facilitar el desarrollo. Se deberá migrar a una base de datos más robusta como PostgreSQL para producción.
---