const winston = require("winston");
require("winston-daily-rotate-file");

const { combine, timestamp, printf, align } = winston.format;

const tallyFileRotateTransport = new winston.transports.DailyRotateFile({
  filename: "./logs/services/tally/%DATE%.log",
  datePattern: "YYYY-MM-DD",
});

export const tallyLog = winston.createLogger({
  level: "info",
  format: combine(
    timestamp({
      format: "YYYY-MM-DD hh:mm:ss.SSS A",
    }),
    printf((info: any) => `[${info.timestamp}], [${info.level}], ${info.message}`)
  ),
  transports: [tallyFileRotateTransport],
});

const autopayFileRotateTransport = new winston.transports.DailyRotateFile({
  filename: "./logs/services/autopay/%DATE%.log",
  datePattern: "YYYY-MM-DD",
});

export const autopayLog = winston.createLogger({
  level: "info",
  format: combine(
    timestamp({
      format: "YYYY-MM-DD hh:mm:ss.SSS A",
    }),
    printf((info: any) => `[${info.timestamp}], [${info.level}], ${info.message}`)
  ),
  transports: [autopayFileRotateTransport],
});


const whatsappLogs = new winston.transports.DailyRotateFile({
  filename: "./logs/services/whatsapp/%DATE%.log",
  datePattern: "YYYY-MM-DD",
});

export const whatsappLog = winston.createLogger({
  level: "info",
  format: combine(
    timestamp({
      format: "YYYY-MM-DD hh:mm:ss.SSS A",
    }),
    printf((info: any) => `[${info.timestamp}], [${info.level}], ${info.message}`)
  ),
  transports: [whatsappLogs],
});
