// IL business days: Sun-Thu (0..4). Friday=5, Saturday=6 are weekend.
// Uses UTC day to be timezone-agnostic in CF Workers environment.
function isIlBusinessDay(d: Date): boolean {
  const day = d.getUTCDay();
  return day !== 5 && day !== 6;
}

function addIlBusinessDays(start: Date, n: number): Date {
  const d = new Date(start);
  let added = 0;
  while (added < n) {
    d.setUTCDate(d.getUTCDate() + 1);
    if (isIlBusinessDay(d)) added++;
  }
  return d;
}

export function computeVendorRespondBy(requestedAt: Date): Date {
  return addIlBusinessDays(requestedAt, 2);
}

export function computeBuyerShipBy(approvedAt: Date): Date {
  return new Date(approvedAt.getTime() + 14 * 86400_000);
}

export function computeVendorInspectBy(receivedAt: Date): Date {
  return addIlBusinessDays(receivedAt, 5);
}
