/**
 * fixture用の日時ヘルパー
 *
 * 画面確認のたびに日付が古くなると「昨夜の清掃結果」という運用イメージが崩れるため、
 * サンプルデータの日付は実行日からの相対で生成しています。
 */

/** JSTのオフセット付きISO8601文字列を作る（例: 2026-08-26T02:00:00+09:00） */
export function jst(date: Date, time: string): string {
  const y = date.getFullYear();
  const m = String(date.getMonth() + 1).padStart(2, "0");
  const d = String(date.getDate()).padStart(2, "0");
  return `${y}-${m}-${d}T${time}:00+09:00`;
}

/** n日前のDateを返す（n=0 が当日） */
export function daysAgo(n: number): Date {
  const d = new Date();
  d.setHours(0, 0, 0, 0);
  d.setDate(d.getDate() - n);
  return d;
}

/** n日前の日付を YYYY-MM-DD で返す */
export function dateOnly(n: number): string {
  const d = daysAgo(n);
  return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, "0")}-${String(
    d.getDate()
  ).padStart(2, "0")}`;
}

/** n日前の指定時刻をISO8601で返す */
export function at(n: number, time: string): string {
  return jst(daysAgo(n), time);
}
