import { ContactImportRow } from "@prisma/client";

const CSV_HEADERS = ["Linha", "Dados", "Erro"];

function escapeCsvField(value: string): string {
  return `"${value.replace(/"/g, '""')}"`;
}

/** Mesmo padrão de CSV já usado em `build-email-history-csv.ts`: `;`-delimitado com BOM UTF-8. */
export function buildImportErrorsCsv(rows: ContactImportRow[]): string {
  const csvRows = rows.map((row) => [
    String(row.rowIndex + 1),
    escapeCsvField(JSON.stringify(row.rawData)),
    escapeCsvField(row.errorMessage ?? ""),
  ]);

  const body = [CSV_HEADERS.join(";"), ...csvRows.map((row) => row.join(";"))].join("\n");
  return "﻿" + body;
}
