eletrotupi / tcc/ api/src/services/export/manifest.builder.ts8873ae72bb5c5381f95356155b0c0cb1d4041156
1.1 KB | 37 lines Raw
1
import { ExportFile } from "@app/services/export/types";
2

3
const countLabel = (rows: number): string =>
4
  rows === 1 ? "1 registro" : `${rows} registros`;
5

6
export function buildManifest(files: ExportFile[], generatedAt: Date): ExportFile {
7
  const fileLines = files.map(
8
    (file) => `- \`${file.filename}\` — ${countLabel(file.rows)}`,
9
  );
10

11
  const content = [
12
    "# Seus dados do nexo",
13
    "",
14
    `Arquivo gerado em ${generatedAt.toISOString()}.`,
15
    "",
16
    "Este pacote reúne os seus dados do nexo, com um arquivo CSV para cada tipo",
17
    "de registro.",
18
    "",
19
    "## Arquivos",
20
    "",
21
    ...fileLines,
22
    "",
23
    "## Como ler os arquivos",
24
    "",
25
    "As colunas `id` e as terminadas em `_id` são identificadores técnicos. Elas",
26
    "ligam os registros entre si: por exemplo, um `mood_id` aponta para o `id` do",
27
    "registro correspondente em `moods.csv`. Mantivemos esses nomes para que você",
28
    "consiga cruzar as tabelas.",
29
    "",
30
  ].join("\n");
31

32
  return {
33
    filename: "leia-me.md",
34
    content: Buffer.from(content, "utf8"),
35
    rows: 0,
36
  };
37
}