131 lines
3.8 KiB
Markdown
131 lines
3.8 KiB
Markdown
# Configurações para Guiné-Bissau
|
|
|
|
Este documento descreve as configurações específicas implementadas para garantir compatibilidade com a Guiné-Bissau.
|
|
|
|
## Informações do País
|
|
|
|
- **Código do País**: GW (ISO 3166-1 alpha-2)
|
|
- **Nome**: Guiné-Bissau
|
|
- **Moeda**: XOF (Franco CFA da África Ocidental)
|
|
- **Símbolo da Moeda**: FCFA
|
|
- **Timezone**: Africa/Bissau (UTC+0)
|
|
- **Locale**: pt_GW (Português da Guiné-Bissau)
|
|
- **Código Telefônico**: +245
|
|
|
|
## Configurações Implementadas
|
|
|
|
### 1. Timezone
|
|
|
|
O sistema está configurado para usar o timezone `Africa/Bissau` (UTC+0) em todas as operações:
|
|
|
|
- **application.yml**: `spring.jackson.time-zone: Africa/Bissau`
|
|
- **SigefpApplication**: Configuração do timezone padrão na inicialização
|
|
- **LocaleConfig**: Bean para garantir timezone correto
|
|
|
|
### 2. Locale e Idioma
|
|
|
|
- **Locale padrão**: `pt_GW` (Português da Guiné-Bissau)
|
|
- **Fallback**: `pt` (Português genérico) se pt_GW não estiver disponível
|
|
- Configurado em `LocaleConfig` e `JacksonConfig`
|
|
|
|
### 3. Formatação de Datas
|
|
|
|
Formatos padrão implementados:
|
|
|
|
- **Data**: `dd/MM/yyyy` (ex: 25/12/2024)
|
|
- **Data e Hora**: `dd/MM/yyyy HH:mm` (ex: 25/12/2024 14:30)
|
|
- **Data e Hora Completo**: `dd/MM/yyyy HH:mm:ss` (ex: 25/12/2024 14:30:45)
|
|
|
|
### 4. Formatação de Moeda
|
|
|
|
- **Código**: XOF
|
|
- **Símbolo**: FCFA
|
|
- **Formato**: Números com separador de milhares (ponto) e decimal (vírgula)
|
|
- **Exemplo**: `1.234,56 FCFA`
|
|
|
|
### 5. Formatação de Números
|
|
|
|
- **Separador de milhares**: Ponto (.)
|
|
- **Separador decimal**: Vírgula (,)
|
|
- **Exemplo**: `1.234,56`
|
|
|
|
### 6. Utilitários
|
|
|
|
A classe `GuineaBissauConfig` fornece métodos utilitários para:
|
|
|
|
- `formatCurrency(BigDecimal)`: Formata valores monetários
|
|
- `formatNumber(BigDecimal)`: Formata números decimais
|
|
- `formatInteger(Long)`: Formata números inteiros
|
|
- `getDateFormatter()`: Retorna formatter para datas
|
|
- `getDateTimeFormatter()`: Retorna formatter para data/hora
|
|
|
|
## Uso
|
|
|
|
### No Backend (Java)
|
|
|
|
```java
|
|
import br.gov.sigefp.common.util.GuineaBissauConfig;
|
|
import java.math.BigDecimal;
|
|
|
|
// Formatar moeda
|
|
BigDecimal valor = new BigDecimal("1234.56");
|
|
String formatado = GuineaBissauConfig.formatCurrency(valor);
|
|
// Resultado: "1.234,56 FCFA"
|
|
|
|
// Formatar número
|
|
String numero = GuineaBissauConfig.formatNumber(valor);
|
|
// Resultado: "1.234,56"
|
|
|
|
// Formatar data
|
|
LocalDate data = LocalDate.now();
|
|
String dataFormatada = data.format(GuineaBissauConfig.getDateFormatter());
|
|
// Resultado: "25/12/2024"
|
|
```
|
|
|
|
### Configuração de Perfil
|
|
|
|
Para usar o perfil específico da Guiné-Bissau:
|
|
|
|
```bash
|
|
mvn spring-boot:run -Dspring-boot.run.profiles=gw
|
|
```
|
|
|
|
Ou definir a variável de ambiente:
|
|
|
|
```bash
|
|
export SPRING_PROFILES_ACTIVE=gw
|
|
```
|
|
|
|
## Arquivos de Configuração
|
|
|
|
- `application.yml`: Configuração base com timezone e locale
|
|
- `application-gw.yml`: Perfil específico para Guiné-Bissau
|
|
- `LocaleConfig.java`: Configuração de locale e timezone
|
|
- `JacksonConfig.java`: Configuração de serialização JSON
|
|
- `WebConfig.java`: Configuração de formatação web
|
|
- `GuineaBissauConfig.java`: Utilitários e constantes
|
|
|
|
## Validações
|
|
|
|
O sistema valida automaticamente:
|
|
|
|
- Timezone em todas as operações de data/hora
|
|
- Locale em formatação de números e moedas
|
|
- Formato de datas em serialização JSON
|
|
- Formato de números em serialização JSON
|
|
|
|
## Notas Importantes
|
|
|
|
1. **PostgreSQL**: Certifique-se de que o PostgreSQL está configurado com timezone `Africa/Bissau`:
|
|
```sql
|
|
SET timezone = 'Africa/Bissau';
|
|
```
|
|
|
|
2. **JVM**: O timezone da JVM é configurado automaticamente na inicialização da aplicação.
|
|
|
|
3. **Frontend**: O frontend deve usar as mesmas configurações de locale e timezone para consistência.
|
|
|
|
4. **Moeda**: XOF (Franco CFA) é a moeda oficial da Guiné-Bissau e é compartilhada com outros países da África Ocidental.
|
|
|
|
|