import moment, { Moment } from "moment-timezone";
import { unitOfTime } from "moment-timezone";

const DEFAULT_TZ = process.env.DEFAULT_TIMEZONE || "America/Mexico_City";

/**
 * Calcula la diferencia entre dos fechas en la unidad especificada y zona horaria.
 */
export function diff(
  dateA: Moment | Date | string,
  dateB: Moment | Date | string,
  unit: unitOfTime.Diff = "milliseconds",
  timezone?: string
): number {
  const tz = timezone || DEFAULT_TZ;
  return moment(dateA).tz(tz).diff(moment(dateB).tz(tz), unit);
}
