/**
* エクスポートの 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`;
}