/**
 * エクスポートの zip のファイル名（指示書AY 段階3。D23）。期待値の正は指示書AY §3 表6（`__tests__/file-name.test.ts`）。
 *
 * ★純粋関数★。日時は JST で名付ける（`toJstIso()`。実行環境のタイムゾーンに依存しない）。
 */
import { toJstIso } from "@/lib/format/date";

/**
 * `{シリアル}_logs_{YYYYMMDD-HHmmss}.zip`。
 * ★シリアルの `[A-Za-z0-9._-]` 以外は `_`★（`Content-Disposition` の `filename="…"` に引用符・パス区切りを入れない。D23）。
 */
export function exportFileName(serialNumber: string, now: Date): string {
  const safeSerial = serialNumber.replace(/[^A-Za-z0-9._-]/g, "_");
  const iso = toJstIso(now);
  const stamp = `${iso.slice(0, 4)}${iso.slice(5, 7)}${iso.slice(8, 10)}-${iso.slice(11, 13)}${iso.slice(14, 16)}${iso.slice(17, 19)}`;
  return `${safeSerial}_logs_${stamp}.zip`;
}
