From 3bfc5793f171a33817c6f1c3446c0e3231423125 Mon Sep 17 00:00:00 2001 From: rever-tecnologia Date: Mon, 15 Dec 2025 15:52:28 -0300 Subject: [PATCH] fix(auth): sincroniza User e AuthUser com mesmo ID MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Aceitar convite: cria User com mesmo ID do AuthUser - Criar usuario admin: usa ID do AuthUser no upsert do User - Garante sincronismo entre tabelas de auth e dominio 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/app/api/admin/users/route.ts | 3 ++- src/app/api/invites/[token]/route.ts | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/app/api/admin/users/route.ts b/src/app/api/admin/users/route.ts index c3c624d..21af431 100644 --- a/src/app/api/admin/users/route.ts +++ b/src/app/api/admin/users/route.ts @@ -204,7 +204,7 @@ export async function POST(request: Request) { }) const createdDomainUser = await tx.user.upsert({ - where: { email }, + where: { id: createdAuthUser.id }, update: { name, role: userRole, @@ -213,6 +213,7 @@ export async function POST(request: Request) { managerId: managerRecord?.id ?? null, }, create: { + id: createdAuthUser.id, name, email, role: userRole, diff --git a/src/app/api/invites/[token]/route.ts b/src/app/api/invites/[token]/route.ts index bef5551..2fff5cc 100644 --- a/src/app/api/invites/[token]/route.ts +++ b/src/app/api/invites/[token]/route.ts @@ -157,6 +157,23 @@ export async function POST(request: Request, context: { params: Promise<{ token: }, }) + // Criar registro na tabela User (dominio) com mesmo ID do AuthUser + try { + await prisma.user.upsert({ + where: { id: user.id }, + update: { role: role.toUpperCase() as "ADMIN" | "AGENT" | "COLLABORATOR", name }, + create: { + id: user.id, + tenantId, + email: invite.email, + name, + role: role.toUpperCase() as "ADMIN" | "AGENT" | "COLLABORATOR", + }, + }) + } catch (err) { + console.warn("Falha ao criar User de dominio", err) + } + const updatedInvite = await prisma.authInvite.update({ where: { id: invite.id }, data: {