- MAI-018 Bidding module: entities, services, controllers, DTOs - Opportunity, Tender, Proposal, Vendor management - Bid calendar, documents, analytics - Earned Value Management: Curva S, SPI/CPI reports - earned-value.service.ts with EV, PV, AC calculations - earned-value.controller.ts with 9 endpoints - DTOs for modules: assets, contracts, documents, purchase, quality - 28 new DTO files with class-validator decorators - Storage module: service and controller implementation - Multi-provider support (local, S3, GCS, Azure) - File management, upload/download URLs - Multiple entity and service fixes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
/**
|
|
* Configuración centralizada del proyecto
|
|
* Bridge desde variables de entorno a objeto tipado
|
|
* Compatible con erp-core config interface
|
|
*/
|
|
|
|
import dotenv from 'dotenv';
|
|
|
|
dotenv.config();
|
|
|
|
export const config = {
|
|
env: process.env.NODE_ENV || 'development',
|
|
port: parseInt(process.env.PORT || '3000', 10),
|
|
|
|
jwt: {
|
|
secret: process.env.JWT_SECRET || 'your-super-secret-jwt-key-change-in-production-minimum-32-chars',
|
|
expiresIn: process.env.JWT_EXPIRES_IN || '1d',
|
|
refreshExpiresIn: process.env.JWT_REFRESH_EXPIRES_IN || '7d',
|
|
},
|
|
|
|
database: {
|
|
host: process.env.DB_HOST || 'localhost',
|
|
port: parseInt(process.env.DB_PORT || '5432', 10),
|
|
name: process.env.DB_NAME || 'erp_construccion_db',
|
|
user: process.env.DB_USER || 'erp_admin',
|
|
password: process.env.DB_PASSWORD || 'erp_dev_2026',
|
|
},
|
|
|
|
redis: {
|
|
host: process.env.REDIS_HOST || 'localhost',
|
|
port: parseInt(process.env.REDIS_PORT || '6379', 10),
|
|
},
|
|
|
|
logging: {
|
|
level: process.env.LOG_LEVEL || 'info',
|
|
},
|
|
|
|
cors: {
|
|
origin: process.env.CORS_ORIGIN || 'http://localhost:5173',
|
|
},
|
|
};
|