import { registerAs } from '@nestjs/config'; import { TypeOrmModuleOptions } from '@nestjs/typeorm'; import { User } from '../modules/users/entities/user.entity'; import { Category } from '../modules/categories/entities/category.entity'; import { Product } from '../modules/products/entities/product.entity'; import { Transaction } from '../modules/transactions/entities/transaction.entity'; import { TransactionItem } from '../modules/transactions/entities/transaction-item.entity'; import { RefreshToken } from '../modules/auth/entities/refresh-token.entity'; export default registerAs( 'database', (): TypeOrmModuleOptions => ({ type: 'postgres', host: process.env.DB_HOST || 'localhost', port: parseInt(process.env.DB_PORT || '', 10) || 5432, username: process.env.DB_USERNAME || 'postgres', password: process.env.DB_PASSWORD || 'postgres', database: process.env.DB_DATABASE || 'retail_pos', entities: [User, Category, Product, Transaction, TransactionItem, RefreshToken], synchronize: process.env.NODE_ENV === 'development' ? false : false, // Always false for safety logging: process.env.NODE_ENV === 'development', migrations: ['dist/database/migrations/*.js'], migrationsRun: false, // Run migrations manually ssl: process.env.DB_SSL === 'true' ? { rejectUnauthorized: false } : false, }), );