Files
retail-nest/src/config/database.config.ts
2025-10-21 16:30:18 +07:00

27 lines
1.3 KiB
TypeScript

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,
}),
);