Operação
Atualização de Endereços - Frontend Produtor
Atualização de Endereços - Frontend Produtor
Data: 2025-01-10
Resumo
Atualização completa dos componentes e páginas de endereços no frontend do produtor (Nuxt 3) para usar campos 100% em inglês, compatíveis com a nova API v1.
Mudanças Realizadas
1. Types (types/customer-address.ts)
ANTES (Português):
export interface CustomerAddress {
nome: string
tipo: string
cep: string
logradouro: string
numero: string
complemento: string
bairro: string
cidade: string
uf: string
observacoes: string
ativo: boolean
endereco_completo: string
endereco_resumido: string
}
DEPOIS (Inglês):
export interface CustomerAddress {
name: string
type: 'main' | 'delivery' | 'billing'
zip_code: string
street: string
number: string
complement: string
neighborhood: string
city: string
state: string
country: string
notes: string
is_active: boolean
full_address: string
short_address: string
}
2. Composable API (composables/useCustomerAddressApi.ts)
Endpoints Atualizados:
- Antes:
/customer-addresses - Depois:
/api/v1/producer/addresses
Métodos Disponíveis:
getAddresses()- Lista todos os endereçosgetDeliveryAddresses()- Lista apenas endereços de entregagetAddress(id)- Busca endereço específicocreateAddress(data)- Cria novo endereçoupdateAddress(id, data)- Atualiza endereçodeleteAddress(id)- Remove endereço (soft delete)setDefaultAddress(id)- Define endereço como padrão (endpoint:/set-primary)
3. Arquivo Removido
- ❌
composables/useCustomerAddressesApi.ts(duplicado, removido)
4. Páginas Atualizadas
pages/addresses/new.vue
- ✅ Formulário envia dados em inglês
- ✅ Validações atualizadas
- ✅ v-model atualizados para novos campos
- ✅ Integração com ViaCEP mantida (mapeia PT → EN)
- ✅ fieldErrors atualizados
components/order/wizard/Step4Location.vue
- ✅ Já estava usando campos em inglês
- ✅ Composable atualizado:
useCustomerAddressApi()
components/order/wizard/Step5Review.vue
- ✅ Composable atualizado:
useCustomerAddressApi() - ✅ Campos de exibição atualizados (state, complement)
pages/orders/[id].vue
- ✅ Campos atualizados:
.state,.zip_code,.complement
5. Mapeamento de Campos
| Campo Antigo (PT) | Campo Novo (EN) | Tipo |
|---|---|---|
| nome | name | string |
| tipo | type | 'main' | 'delivery' | 'billing' |
| cep | zip_code | string |
| logradouro | street | string |
| numero | number | string |
| complemento | complement | string | null |
| bairro | neighborhood | string |
| cidade | city | string |
| uf / estado | state | string |
| - | country | string |
| observacoes | notes | string | null |
| padrao | is_default | boolean |
| ativo | is_active | boolean |
| endereco_completo | full_address | string |
| endereco_resumido | short_address | string |
API Response Format
// Lista de endereços
{
"success": true,
"data": CustomerAddress[],
"message": "string"
}
// Endereço único
{
"success": true,
"data": CustomerAddress,
"message": "string"
}
Validações
Todas as validações foram mantidas com os novos campos:
- ✅ Nome mínimo 3 caracteres
- ✅ CEP válido (8 dígitos)
- ✅ Logradouro mínimo 3 caracteres
- ✅ Número obrigatório
- ✅ Bairro mínimo 3 caracteres
- ✅ Cidade mínimo 3 caracteres
- ✅ Estado (UF) obrigatório e válido
ViaCEP Integration
A integração com ViaCEP continua funcionando normalmente:
- API ViaCEP retorna dados em português
- Frontend mapeia automaticamente PT → EN:
response.logradouro→form.streetresponse.bairro→form.neighborhoodresponse.uf→form.stateresponse.localidade→form.city
Interface do Usuário
IMPORTANTE: Os labels e textos da interface permanecem em PORTUGUÊS:
- Labels: "Nome do Endereço", "CEP", "Logradouro", etc.
- Mensagens de erro em português
- Placeholders em português
- Apenas o código/API usa inglês
Arquivos Modificados
apps/producer/
├── types/customer-address.ts (atualizado)
├── composables/
│ ├── useCustomerAddressApi.ts (atualizado)
│ └── useCustomerAddressesApi.ts (removido)
├── pages/
│ └── addresses/
│ └── new.vue (atualizado)
│ └── orders/
│ └── [id].vue (atualizado)
└── components/
└── order/
└── wizard/
├── Step4Location.vue (atualizado)
└── Step5Review.vue (atualizado)
Testes Necessários
- Listar endereços
- Criar novo endereço
- Buscar CEP via ViaCEP
- Atualizar endereço existente
- Definir endereço como padrão
- Deletar endereço
- Selecionar endereço no wizard de pedidos
- Visualizar endereço na revisão do pedido
- Visualizar endereço no detalhe do pedido
Compatibilidade
✅ Compatível com API v1: /api/v1/producer/addresses
✅ Estrutura unificada na tabela addresses
✅ Tabelas pivot: producer_addresses e supplier_addresses
Notas Importantes
- Backend atualizado primeiro: As mudanças no backend já foram concluídas
- Sem breaking changes na interface: Usuário não percebe mudanças visuais
- Migração completa: Todos os arquivos foram atualizados
- Sem referências antigas: Nenhuma referência a campos em português ou composable antigo
Autor
Sistema de migração automática - 2025-01-10