/**
 * TypeORM CLI 专用数据源配置
 *
 * 直接复用 config 模块的 pgsql 配置（含校验），
 * 专供 TypeORM CLI（Node.js / tsx）使用。
 *
 * 使用方式：
 *   npx tsx node_modules/.bin/typeorm migration:run -d db/data-source-cli.ts
 *   npx tsx node_modules/.bin/typeorm migration:revert -d db/data-source-cli.ts
 *   npx tsx node_modules/.bin/typeorm migration:show -d db/data-source-cli.ts
 */
import { DataSource } from "typeorm";
import { fileURLToPath } from "node:url";
import { dirname } from "node:path";
import { pgsql } from "../config";

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const AppDataSource = new DataSource({
    type: "postgres",
    host: pgsql.host,
    port: pgsql.port,
    database: pgsql.database,
    username: pgsql.user,
    password: pgsql.password,
    entities: [__dirname + "/entities/*.{ts,js}"],
    synchronize: false,
    migrations: [__dirname + "/migrations/*.{ts,js}"],
    extra: {
        max: pgsql.max,
        idleTimeoutMillis: pgsql.idleTimeoutMillis,
        connectionTimeoutMillis: pgsql.connectionTimeoutMillis,
    },
    logging: ["error", "warn"],
});

export default AppDataSource;

