import winston from 'winston';
import path from 'path';
import { toKolkataTime } from './timezone';

const isProd = process.env.NODE_ENV === 'production';

const logger = winston.createLogger({
  level: isProd ? 'info' : 'debug',
  format: winston.format.combine(
    // IST with explicit offset, e.g. 2026-09-25T15:06:08.024+05:30
    winston.format.timestamp({
      format: () => toKolkataTime(new Date(), "yyyy-MM-dd'T'HH:mm:ss.SSSxxx"),
    }),
    winston.format.errors({ stack: true }),
    winston.format.json(),
  ),
  transports: [
    new winston.transports.File({ filename: path.join('logs', 'error.log'), level: 'warn' }),
    new winston.transports.File({ filename: path.join('logs', 'combined.log') }),
  ],
});

if (!isProd) {
  logger.add(
    new winston.transports.Console({
      format: winston.format.combine(winston.format.colorize(), winston.format.simple()),
    }),
  );
}

export default logger;
