# 🎯 Como Atribuir Role a um Usuário

## 🔍 Problema

O usuário não está mostrando role no login porque o `role_id` está `null` na tabela `users`.

## ✅ Solução

### Opção 1: Atualizar via API (Recomendado)

```bash
PUT /api/users/2
Headers:
  Authorization: Bearer {seu_token}
Body:
{
  "role_id": 28  // ID do role (28=admin, 29=manager, 30=agent, 31=vetter)
}
```

### Opção 2: Atualizar diretamente no banco

```sql
-- Atribuir role admin ao usuário ID 2
UPDATE users SET role_id = 28 WHERE user_id = 2;

-- Ou atribuir role manager
UPDATE users SET role_id = 29 WHERE user_id = 2;
```

### Opção 3: Usar script Node.js

```javascript
const { Client } = require('pg');
require('dotenv').config();

async function assignRole() {
    const client = new Client({
        host: process.env.POSTGRES_HOST || 'localhost',
        port: process.env.POSTGRES_PORT || 5432,
        user: process.env.POSTGRES_USER || 'postgres',
        password: process.env.POSTGRES_PASSWORD || '@21062014',
        database: process.env.POSTGRES_DB || 'microcredito_db'
    });
    
    await client.connect();
    
    // Atribuir role admin (ID 28) ao usuário ID 2
    await client.query(`
        UPDATE users 
        SET role_id = 28 
        WHERE user_id = 2
    `);
    
    console.log('✅ Role atribuído com sucesso!');
    await client.end();
}

assignRole();
```

## 📋 IDs dos Roles Padrão

| Role Name | Role ID | Descrição |
|-----------|---------|-----------|
| admin | 28 | Administrador do sistema |
| manager | 29 | Gerente |
| agent | 30 | Agente de campo |
| vetter | 31 | Responsável por aprovações |

## 🔄 Verificar Role Atribuído

Após atribuir, faça login novamente e você verá:

```json
{
  "role_id": 28,
  "role_name": "admin",
  "role_description": "Administrador do sistema com acesso total",
  "permissions": {
    "loans": ["create", "read", "update", "delete", "approve"],
    "users": ["create", "read", "update", "delete"],
    ...
  }
}
```


