// File: src/modules/monitoring/logger/winston.config.ts
import {
  utilities as nestWinstonUtilities,
  WinstonModuleOptions,
} from 'nest-winston';
import * as winston from 'winston';

/**
 * ฟังก์ชันสร้าง Configuration สำหรับ Winston Logger
 * - Development: แสดงผลแบบ Console อ่านง่าย
 * - Production: แสดงผลแบบ JSON พร้อม Timestamp เพื่อการทำ Log Aggregation
 */
export const winstonConfig: WinstonModuleOptions = {
  transports: [
    new winston.transports.Console({
      format: winston.format.combine(
        winston.format.timestamp(),
        winston.format.ms(),
        // เลือก Format ตาม Environment
        process.env.NODE_ENV === 'production'
          ? winston.format.json() // Production ใช้ JSON
          : nestWinstonUtilities.format.nestLike('LCBP3-DMS', {
              prettyPrint: true,
              colors: true,
            })
      ),
    }),
    // สามารถเพิ่ม File Transport หรือ HTTP Transport ไปยัง Log Server ได้ที่นี่
  ],
};
