/** * Serviço para gerenciar empresas via BFF * Integração com https://bff-dev.saveinmed.com.br/api/v1/empresas */ const BFF_BASE_URL = process.env.NEXT_PUBLIC_BFF_API_URL!; export interface EmpresaBff { id: string; razao_social: string; nome_fantasia: string; cnpj: string; email: string; telefone: string; cep: string; endereco: string; numero: string; complemento: string; bairro: string; cidade: string; estado: string; latitude?: string; longitude?: string; } export const empresaApiService = { /** * Busca empresa por ID * @param empresaId - ID da empresa * @returns Dados da empresa */ buscarPorId: async (empresaId: string): Promise => { try { const token = localStorage.getItem('access_token'); if (!token) { throw new Error('Token de autenticação não encontrado'); } const response = await fetch(`${BFF_BASE_URL}/empresas/${empresaId}`, { method: 'GET', headers: { 'accept': 'application/json', 'Authorization': `Bearer ${token}`, }, }); if (!response.ok) { console.error(`❌ Erro ao buscar empresa: ${response.status}`); return null; } const empresa: EmpresaBff = await response.json(); return empresa; } catch (error) { console.error('❌ Erro ao buscar empresa:', error); return null; } }, /** * Atualiza dados da empresa * @param empresaId - ID da empresa * @param dados - Dados para atualizar */ atualizar: async (empresaId: string, dados: Partial): Promise => { try { console.log(`📝 [EmpresaService] Atualizando empresa ${empresaId}:`, dados); const token = localStorage.getItem('access_token'); if (!token) { throw new Error('Token de autenticação não encontrado'); } const response = await fetch(`${BFF_BASE_URL}/empresas/${empresaId}`, { method: 'PATCH', // ou PUT, dependendo da API. PATCH é mais comum para parciais. headers: { 'accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': `Bearer ${token}`, }, body: JSON.stringify(dados), }); if (!response.ok) { console.error(`❌ [EmpresaService] Erro ao atualizar empresa: ${response.status}`); return false; } console.log(`✅ [EmpresaService] Empresa ${empresaId} atualizada com sucesso!`); return true; } catch (error) { console.error('❌ [EmpresaService] Erro ao atualizar empresa:', error); return false; } } };