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ços
  • getDeliveryAddresses() - Lista apenas endereços de entrega
  • getAddress(id) - Busca endereço específico
  • createAddress(data) - Cria novo endereço
  • updateAddress(id, data) - Atualiza endereço
  • deleteAddress(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
nomenamestring
tipotype'main' | 'delivery' | 'billing'
cepzip_codestring
logradourostreetstring
numeronumberstring
complementocomplementstring | null
bairroneighborhoodstring
cidadecitystring
uf / estadostatestring
-countrystring
observacoesnotesstring | null
padraois_defaultboolean
ativois_activeboolean
endereco_completofull_addressstring
endereco_resumidoshort_addressstring

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.logradouroform.street
    • response.bairroform.neighborhood
    • response.ufform.state
    • response.localidadeform.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

  1. Backend atualizado primeiro: As mudanças no backend já foram concluídas
  2. Sem breaking changes na interface: Usuário não percebe mudanças visuais
  3. Migração completa: Todos os arquivos foram atualizados
  4. 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

Copyright © 2026