// app/workspace/[slug]/page.tsx import { redirect } from "next/navigation" import { getServerSession } from "next-auth" import { authOptions } from "@/lib/auth/config" import { prisma } from "@/lib/prisma" import Link from "next/link" import { CopyButton } from "@/components/CopyButton" interface WorkspacePageProps { params: { slug: string } } export default async function WorkspacePage({ params }: WorkspacePageProps) { const session = await getServerSession(authOptions) if (!session) { redirect("/login") } const workspace = await prisma.workspace.findUnique({ where: { slug: params.slug }, include: { employee: { select: { id: true, name: true, email: true, avatar: true } }, manager: { select: { id: true, name: true, email: true, avatar: true } }, hr: { select: { id: true, name: true, email: true, avatar: true } } } }) if (!workspace) { redirect("/workspaces") } // Verificar se o usuário tem acesso const hasAccess = workspace.employeeId === session.user.id || workspace.managerId === session.user.id || workspace.hrId === session.user.id if (!hasAccess) { redirect("/unauthorized") } // Determinar o papel do usuário const userRole = workspace.employeeId === session.user.id ? "employee" : workspace.managerId === session.user.id ? "manager" : "hr" // Buscar código de convite ativo (se for gestor) let inviteCode = null if (userRole === "manager") { const activeInvite = await prisma.invite.findFirst({ where: { workspaceId: workspace.id, status: "PENDING", expiresAt: { gt: new Date() } }, select: { token: true } }) inviteCode = activeInvite?.token } return (
{/* Header */}

Workspace

Gerencie sua área de colaboração

Voltar
{/* Código de Convite (apenas para gestores) */} {userRole === "manager" && inviteCode && (

Código de Convite

Compartilhe este código com seu mentor para que ele possa se juntar ao workspace:

{inviteCode}
✓ Mentor conectado! Seu workspace está ativo e pronto para colaboração
)} {/* Membros do Workspace */}

Membros do Workspace

{/* Funcionário */}
{workspace.employee.name[0]}
{workspace.employee.name}
{workspace.employee.email}
👨‍💼 Mentorado
{/* Gestor */}
{workspace.manager.name[0]}
{workspace.manager.name}
{workspace.manager.email}
🎓 Mentor
{/* RH (se existir) */} {workspace.hr && (
{workspace.hr.name[0]}
{workspace.hr.name}
{workspace.hr.email}
👔 RH
)}
) }