import pino from 'pino';

/**
 * Logger configuration using pino for structured logging
 * Debug/info in development, warn/error always active in production
 */

const isDevelopment = process.env.NODE_ENV === 'development';

const pinoLogger = pino({
  level: isDevelopment ? 'debug' : 'warn',
  transport: isDevelopment ? {
    target: 'pino-pretty',
    options: {
      colorize: true,
      translateTime: 'SYS:standard',
      ignore: 'pid,hostname',
    },
  } : undefined,
});

export const logger = {
  debug: (message: string, ...args: any[]) => {
    if (isDevelopment) {
      pinoLogger.debug({ args }, message);
    }
  },
  info: (message: string, ...args: any[]) => {
    if (isDevelopment) {
      pinoLogger.info({ args }, message);
    }
  },
  warn: (message: string, ...args: any[]) => {
    pinoLogger.warn({ args }, message);
  },
  error: (message: string, ...args: any[]) => {
    pinoLogger.error({ args }, message);
  },
};

export default logger;
