feat: otimização de performance e ajustes finais
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
# 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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user