| 1 | import { Mood, MoodComponent, User } from "@prisma/client";
|
| 2 |
|
| 3 | import {
|
| 4 | baseMoodLabel,
|
| 5 | intensityLabel,
|
| 6 | moodComponentLabel,
|
| 7 | } from "@app/services/export/label.map";
|
| 8 | import { CsvTable } from "@app/services/export/types";
|
| 9 |
|
| 10 | const booleanLabel = (value: boolean): string => (value ? "Sim" : "Não");
|
| 11 |
|
| 12 | export const profileTable: CsvTable<User> = {
|
| 13 | filename: "profile.csv",
|
| 14 | columns: [
|
| 15 | { header: "id", value: (user) => user.id },
|
| 16 | { header: "Nome", value: (user) => user.firstName },
|
| 17 | { header: "Sobrenome", value: (user) => user.lastName },
|
| 18 | { header: "Email", value: (user) => user.email },
|
| 19 | { header: "Ativo", value: (user) => booleanLabel(user.active) },
|
| 20 | {
|
| 21 | header: "Notificações",
|
| 22 | value: (user) => booleanLabel(user.notificationsEnabled),
|
| 23 | },
|
| 24 | { header: "Lembrete diário", value: (user) => user.dailyReminderTime },
|
| 25 | { header: "Criado em", value: (user) => user.createdAt },
|
| 26 | { header: "Atualizado em", value: (user) => user.updatedAt },
|
| 27 | ],
|
| 28 | };
|
| 29 |
|
| 30 | export const moodTable: CsvTable<Mood> = {
|
| 31 | filename: "moods.csv",
|
| 32 | columns: [
|
| 33 | { header: "id", value: (mood) => mood.id },
|
| 34 | { header: "Humor", value: (mood) => baseMoodLabel[mood.selectedMood] },
|
| 35 | { header: "Ansiedade", value: (mood) => mood.anxietyLevel },
|
| 36 | { header: "Estresse", value: (mood) => mood.stressLevel },
|
| 37 | { header: "Energia", value: (mood) => mood.energyLevel },
|
| 38 | { header: "Momento", value: (mood) => mood.moment },
|
| 39 | { header: "Anotação", value: (mood) => mood.annotation },
|
| 40 | ],
|
| 41 | };
|
| 42 |
|
| 43 | export const moodComponentTable: CsvTable<MoodComponent> = {
|
| 44 | filename: "mood_components.csv",
|
| 45 | columns: [
|
| 46 | { header: "id", value: (component) => component.id },
|
| 47 | { header: "mood_id", value: (component) => component.moodId },
|
| 48 | {
|
| 49 | header: "Sentimento",
|
| 50 | value: (component) => moodComponentLabel[component.component],
|
| 51 | },
|
| 52 | {
|
| 53 | header: "Intensidade",
|
| 54 | value: (component) => intensityLabel[component.intensity],
|
| 55 | },
|
| 56 | ],
|
| 57 | };
|