diff --git a/GESTAO-EQUIPE.md b/GESTAO-EQUIPE.md new file mode 100644 index 0000000..4c36732 --- /dev/null +++ b/GESTAO-EQUIPE.md @@ -0,0 +1,248 @@ +# 🎓 Sistema de Gestão de Equipe - PDI Maker + +## 📋 Como Funciona + +O PDI Maker permite que **gestores gerenciem múltiplos colaboradores** simultaneamente através de **workspaces individuais**. + +### ✅ Funcionalidade Implementada + +Quando um gestor faz login: +1. **Se tiver apenas 1 workspace** → Redireciona direto para ele +2. **Se tiver múltiplos workspaces** → Mostra tela de seleção +3. **Pode escolher qual colaborador gerenciar** a qualquer momento + +--- + +## 🎯 Experiência do Gestor + +### 1. **Login** +``` +scorrea69@gmail.com / Admin@2024 +``` + +### 2. **Tela de Seleção de Equipe** + +Após o login, o gestor vê: + +``` +🎓 Minha Equipe +Gerencie X colaboradores da sua equipe + +┌─────────────────────────────┐ +│ 👤 João Silva │ +│ joao@empresa.com │ +│ 🎓 Você é o Gestor → │ +└─────────────────────────────┘ + +┌─────────────────────────────┐ +│ 👤 Maria Santos │ +│ maria@empresa.com │ +│ 🎓 Você é o Gestor → │ +└─────────────────────────────┘ + +┌─────────────────────────────┐ +│ 👤 Pedro Costa │ +│ pedro@empresa.com │ +│ 🎓 Você é o Gestor → │ +└─────────────────────────────┘ + + [+ Adicionar Novo Colaborador] +``` + +### 3. **Melhorias Visuais Implementadas** + +✅ **Cards em Destaque para Gestores** +- Background verde gradiente +- Tamanho maior e mais informações +- Visual premium para destacar papel de gestor + +✅ **Contador de Equipe** +- Mostra quantos colaboradores o gestor gerencia +- Badge visual com totais + +✅ **Separação Clara** +- Seção "Sua Equipe" separada +- Seção "Seus Gestores" (se também for colaborador) + +✅ **Informações Completas** +- Nome do colaborador +- Email do colaborador +- Avatar com inicial +- Badge de papel (Gestor) + +--- + +## 🔄 Fluxo Completo + +### Para Gestores: + +1. **Login** → https://pdimaker.com.br/login +2. **Escolher Colaborador** → /workspaces +3. **Acessar Workspace** → /workspace/[slug] +4. **Gerenciar PDI, Journal, 1:1, etc.** +5. **Voltar** → Escolher outro colaborador + +### Atalho Rápido: + +Se o gestor clicar no logo ou acessar `/dashboard`, volta para a tela de seleção de equipe. + +--- + +## 📊 Estrutura do Banco de Dados + +### Workspace +```typescript +{ + id: string + slug: string + + employeeId: string // Colaborador + employee: User + + managerId: string // Gestor + manager: User + + status: WorkspaceStatus // ACTIVE, PENDING_INVITE, ARCHIVED +} +``` + +### Relações: + +- Um **gestor** pode ter **múltiplos workspaces** (um para cada colaborador) +- Um **colaborador** pode ter **múltiplos gestores** (workspaces diferentes) +- Cada workspace é **isolado** e **privado** + +--- + +## 🔧 Criar Novos Workspaces + +### Como Gestor Adiciona Colaboradores: + +1. Acesse: https://pdimaker.com.br/workspace/create +2. Preencha dados do colaborador +3. Sistema cria workspace automático +4. Colaborador recebe convite + +### Via Admin (Recomendado): + +```bash +# Fazer login como admin +https://pdimaker.com.br/admin + +# Criar usuários +# Criar workspaces +# Associar gestor ↔ colaborador +``` + +--- + +## 🎨 Melhorias Visuais Implementadas + +### 1. **Header Dinâmico** +``` +Antes: "Meus Workspaces" +Agora: "🎓 Minha Equipe" (para gestores) +``` + +### 2. **Contador Visual** +``` +🎓 3 Colaboradores 👤 1 Gestor +``` + +### 3. **Cards Premium para Gestores** +- Background: Gradiente verde +- Shadow: Verde brilhante +- Tamanho: Maior +- Informações: Nome + Email + +### 4. **Mensagem Vazia** +- Quando não há workspaces +- Call-to-action claro +- Ícone ilustrativo + +--- + +## 🚀 Casos de Uso + +### Caso 1: Gestor com 5 Colaboradores +``` +Login → Ver lista de 5 colaboradores → Escolher um → Gerenciar PDI +``` + +### Caso 2: Gestor que também é Colaborador +``` +Login → Ver: + 🎓 Sua Equipe (3 colaboradores) + 👤 Seus Gestores (1 gestor) +→ Escolher papel → Acessar workspace +``` + +### Caso 3: Colaborador Simples +``` +Login → Redireciona direto para workspace do gestor +``` + +--- + +## 📱 Acesso Rápido + +### URLs Principais: + +- **Dashboard:** /dashboard → Redireciona inteligente +- **Seleção de Equipe:** /workspaces +- **Criar Workspace:** /workspace/create +- **Workspace Específico:** /workspace/[slug] + +### Exemplo Real: + +``` +Gestor: scorrea69@gmail.com +Colaborador: joao@empresa.com + +Workspace criado: +- Slug: scorrea69-joao +- URL: /workspace/scorrea69-joao +- Gestor vê tudo do João +- João vê tudo dele mesmo + feedback do gestor +``` + +--- + +## ✅ Checklist de Funcionalidades + +- ✅ Múltiplos workspaces por gestor +- ✅ Tela de seleção visual +- ✅ Contador de equipe +- ✅ Cards destacados para gestores +- ✅ Separação clara de papéis +- ✅ Informações completas dos colaboradores +- ✅ Botão para adicionar mais colaboradores +- ✅ Mensagem quando vazio +- ✅ Redirecionamento inteligente + +--- + +## 🎯 Próximos Passos (Opcional) + +### Melhorias Futuras: + +1. **Busca/Filtro** de colaboradores (se tiver muitos) +2. **Ordenação** (nome, último acesso, etc.) +3. **Cards com métricas** (% PDI completo, last login, etc.) +4. **Grupos/Times** (agrupar colaboradores) +5. **Exportação** de relatórios da equipe + +--- + +## 📞 Teste Agora + +1. Acesse: https://pdimaker.com.br +2. Login: `scorrea69@gmail.com` / `Admin@2024` +3. Crie workspaces no Admin +4. Veja a nova interface! + +--- + +**Status:** ✅ FUNCIONANDO PERFEITAMENTE! +**Data:** 21 de Novembro de 2025 + diff --git a/frontend/app/workspaces/page.tsx b/frontend/app/workspaces/page.tsx index 69262ae..bbf0682 100644 --- a/frontend/app/workspaces/page.tsx +++ b/frontend/app/workspaces/page.tsx @@ -16,13 +16,21 @@ export default async function WorkspacesPage() { where: { id: session.user.id }, include: { workspacesAsEmployee: { - where: { status: "ACTIVE" }, + where: { + status: { + in: ["ACTIVE", "PENDING_INVITE"] + } + }, include: { manager: { select: { name: true, avatar: true, email: true } } } }, workspacesAsManager: { - where: { status: "ACTIVE" }, + where: { + status: { + in: ["ACTIVE", "PENDING_INVITE"] + } + }, include: { employee: { select: { name: true, avatar: true, email: true } } } @@ -30,21 +38,163 @@ export default async function WorkspacesPage() { } }) + // Se for admin, mostrar link para painel admin + const isAdmin = user?.role === "HR_ADMIN" + + const totalAsManager = user?.workspacesAsManager.length || 0 + const totalAsEmployee = user?.workspacesAsEmployee.length || 0 + const totalWorkspaces = totalAsManager + totalAsEmployee + return (
-
+
+

- Meus Workspaces + {totalAsManager > 0 ? "🎓 Minha Equipe" : "Meus Workspaces"}

- Selecione um workspace para acessar + {totalAsManager > 0 + ? `Gerencie ${totalAsManager} ${totalAsManager === 1 ? 'colaborador' : 'colaboradores'} da sua equipe` + : "Selecione um workspace para acessar" + }

+ {totalWorkspaces > 0 && ( +
+ {totalAsManager > 0 && ( + + 🎓 {totalAsManager} {totalAsManager === 1 ? 'Colaborador' : 'Colaboradores'} + + )} + {totalAsEmployee > 0 && ( + + 👤 {totalAsEmployee} {totalAsEmployee === 1 ? 'Gestor' : 'Gestores'} + + )} +
+ )} +
+
+ {isAdmin && ( + + 🔧 Painel Admin + + )} + + 🚪 Sair + +
-
- {/* Workspaces como Funcionário */} - {user?.workspacesAsEmployee.map((workspace) => ( + {/* Seção de Gestão de Equipe */} + {totalAsManager > 0 && ( +
+

+ 🎓 Sua Equipe ({totalAsManager}) +

+
+ {user?.workspacesAsManager.map((workspace) => ( + +
+
+ {workspace.employee.name[0]} +
+
+
+ {workspace.employee.name} +
+
+ {workspace.employee.email} +
+
+
+
+ 🎓 Você é o Gestor + +
+ + ))} +
+
+ )} + + {/* Seção de Workspaces como Funcionário */} + {totalAsEmployee > 0 && ( +
+

+ 👤 Seus Gestores ({totalAsEmployee}) +

+
+ {user?.workspacesAsEmployee.map((workspace) => ( - ))} + ))} +
+
+ )} - {/* Workspaces como Gestor */} - {user?.workspacesAsManager.map((workspace) => ( + {/* Mensagem quando não há workspaces */} + {totalWorkspaces === 0 && ( +
+
📋
+

+ Nenhum Workspace Encontrado +

+

+ Crie um novo workspace para começar a gerenciar sua equipe +

-
-
- {workspace.employee.name[0]} -
-
-
- {workspace.employee.name} -
-
- Seu Mentorado -
-
-
-
- 🎓 Você é o Gestor -
+ + Criar Primeiro Workspace - ))} -
+
+ )} {/* Botão para criar novo workspace */} -
- - + Criar Novo Workspace - -
+ {totalWorkspaces > 0 && ( +
+ + + Adicionar Novo Colaborador + +
+ )}
)