Initial SeConectai briefing system

This commit is contained in:
2026-10-04 10:42:23 -03:00
commit 45cd8d2f03
163 changed files with 12659 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
import { notFound, redirect } from "next/navigation";
import { auth } from "@/auth";
import { db } from "@/lib/db";
import { maskCpf } from "@/lib/admin-service";
import { decryptCpf } from "@/lib/crypto";
export async function getBriefingPdfData(briefingId: string) {
const session = await auth();
if (!session?.user?.id) {
redirect("/login");
}
const briefing = await db.briefing.findUnique({
where: { id: briefingId },
include: {
cliente: {
include: { user: true }
}
}
});
if (!briefing) {
notFound();
}
const isAdmin = session.user.papel === "ADMIN";
const isOwner = session.user.papel === "CLIENTE" && briefing.cliente.userId === session.user.id;
if (!isAdmin && !isOwner) {
notFound();
}
const secoes = await db.secao.findMany({
where: { ativo: true },
orderBy: { ordem: "asc" },
include: {
perguntas: {
where: { ativo: true },
orderBy: { ordem: "asc" },
include: {
respostas: {
where: { briefingId }
},
anexos: {
where: { briefingId },
orderBy: { criadoEm: "asc" }
}
}
}
}
});
return {
briefing,
secoes,
cpfMascarado: maskCpf(decryptCpf(briefing.cliente.cpfCifrado))
};
}