# 🇬🇼 Localização para Guiné-Bissau

## ✅ Configuração Completa

O frontend está totalmente configurado para Guiné-Bissau, compatível com o backend.

## 💰 Moeda: XOF (Franco CFA)

### Configuração
- **Código ISO**: XOF
- **Símbolo**: FCFA
- **Locale**: pt-GW
- **Formato**: `1 000 FCFA` ou `1,0K FCFA` (compacto)

### Função de Formatação

```typescript
import { formatCurrency } from '@/utils/locale';

// Formato padrão
formatCurrency(1000000); // "1 000 000 FCFA"

// Formato compacto
formatCurrency(1000000, { compact: true }); // "1,0M FCFA"

// Com decimais
formatCurrency(1000.50, { decimals: 2 }); // "1 000,50 FCFA"
```

### Locais Corrigidos

✅ **Dashboard.tsx**
- Antes: `currency: 'AOA'` (Angola)
- Agora: Usa `formatCurrency()` com XOF

✅ **AgentsPage.tsx**
- Usa `formatNumber()` para estatísticas
- Usa `formatCurrency()` para valores monetários

✅ **Todos os componentes**
- Usam funções de `@/utils/locale`

## 📅 Datas: DD/MM/YYYY

### Configuração
- **Formato**: DD/MM/YYYY
- **Timezone**: Africa/Bissau
- **Locale**: pt-GW

### Funções

```typescript
import { formatDate, formatDateTime, formatLocalDate } from '@/utils/locale';

// Formata Date object
formatDate(new Date()); // "28/12/2024"

// Formata data e hora
formatDateTime(new Date()); // "28/12/2024 14:30"

// Converte LocalDate do backend (YYYY-MM-DD) para exibição
formatLocalDate('2024-12-28'); // "28/12/2024"
```

## 📞 Telefone: +245

### Formato
- **Código do país**: +245
- **Formato**: +245 XXX XXX XXX

### Função

```typescript
import { formatPhone } from '@/utils/locale';

formatPhone('955123456'); // "+245 955 123 456"
formatPhone('245955123456'); // "+245 955 123 456"
```

## 🔢 Números

### Formatação
- **Separador de milhares**: Espaço (ex: `1 000`)
- **Separador decimal**: Vírgula (ex: `1 000,50`)
- **Locale**: pt-GW

### Função

```typescript
import { formatNumber } from '@/utils/locale';

formatNumber(1000); // "1 000"
formatNumber(1000.50, 2); // "1 000,50"
```

## 🏦 Bancos (Mocks Atualizados)

Os mocks foram atualizados com bancos da Guiné-Bissau:

- Banco Central da Guiné-Bissau (BCGB)
- Banco da África Ocidental (BAO)
- Ecobank Guiné-Bissau
- Banco Atlântico Guiné-Bissau
- Banco Internacional da Guiné-Bissau

## 📋 Checklist de Compatibilidade

- [x] Moeda: XOF (Franco CFA) em todo o sistema
- [x] Datas: DD/MM/YYYY (formato Guiné-Bissau)
- [x] Timezone: Africa/Bissau
- [x] Locale: pt-GW
- [x] Telefone: +245
- [x] Números: Formato pt-GW (espaço para milhares, vírgula para decimais)
- [x] Dashboard: Usa formatCurrency() com XOF
- [x] AgentsPage: Usa formatNumber() e formatCurrency()
- [x] Mocks: Bancos da Guiné-Bissau
- [x] Backend: Compatível (application.yml configurado)

## 🔧 Arquivos Modificados

1. **src/utils/locale.ts**
   - Funções de formatação para Guiné-Bissau
   - formatCurrency() com suporte a XOF
   - formatNumber() com locale pt-GW
   - formatDate() e formatDateTime()
   - formatPhone() com código +245

2. **src/pages/Dashboard.tsx**
   - Removido formatação hardcoded (pt-AO, AOA)
   - Usa formatCurrency() e formatNumber() de locale.ts

3. **src/modules/rh/pages/AgentsPage.tsx**
   - Usa formatNumber() para estatísticas
   - Usa formatCurrency() para valores monetários

4. **src/mocks/data.ts**
   - Bancos atualizados para Guiné-Bissau

## 🎯 Uso Recomendado

**SEMPRE use as funções de `@/utils/locale`:**

```typescript
import { 
  formatCurrency, 
  formatNumber, 
  formatDate, 
  formatDateTime,
  formatLocalDate,
  formatPhone 
} from '@/utils/locale';

// ✅ CORRETO
const price = formatCurrency(1000); // "1 000 FCFA"
const date = formatLocalDate('2024-12-28'); // "28/12/2024"

// ❌ ERRADO - Não use
const price = new Intl.NumberFormat('pt-AO', { currency: 'AOA' }); // Angola!
const price = value.toLocaleString(); // Locale padrão do navegador
```

## 📝 Notas Importantes

1. **XOF não tem subunidades**: O Franco CFA não tem centavos, então `decimals: 0` é o padrão
2. **Formato de número**: pt-GW usa espaço para milhares e vírgula para decimais
3. **Timezone**: Sempre use `Africa/Bissau` para datas
4. **Backend**: Envia datas como `YYYY-MM-DD` (LocalDate), frontend exibe como `DD/MM/YYYY`

---

**Status**: ✅ 100% Configurado para Guiné-Bissau  
**Moeda**: ✅ XOF (Franco CFA)  
**Última atualização**: Dezembro 2024

