import { toIsoSqlUTC, ymdUTC, ymdInTZ as sharedYmdInTZ } from '../../src/utils/datetime';

export function toIsoSql(d: Date = new Date()): string {
  return toIsoSqlUTC(d);
}

export { toIsoSqlUTC, ymdUTC };

/** Wraps shared ymdInTZ with a default timezone for tests. */
export function ymdInTZ(d: Date, tz: string = 'Europe/Madrid'): string {
  return sharedYmdInTZ(d, tz);
}

export function addDaysToYMD(ymd: string, days: number, tz: string = 'Europe/Madrid'): string {
  const [Y, M, D] = ymd.split('-').map(n => parseInt(n, 10));
  const base = new Date(Date.UTC(Y, (M || 1) - 1, D || 1));
  base.setUTCDate(base.getUTCDate() + days);
  return ymdInTZ(base, tz);
}

export function addDays(date: Date, days: number): Date {
  const d = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));
  d.setUTCDate(d.getUTCDate() + days);
  return d;
}
