import { apiClient } from '@/lib/api/client'; /** * Espelha o model `evolution_api_config`, já sanitizado pelo backend * (`evolution.service.ts#sanitize`): nunca `api_key_cripto`, `api_key` vem * sempre mascarada (`'*'.repeat(8) + últimos 4 caracteres`, nunca em texto * completo — critério de aceite da Etapa 15). */ export interface EvolutionConfig { id: string; nome: string; base_url: string; api_key: string; versao: string; ativo: boolean; criado_em: string; } /** Espelha `CreateEvolutionConfigDto`/`UpdateEvolutionConfigDto`. */ export interface EvolutionConfigInput { nome: string; base_url: string; /** Opcional na edição — vazio significa "manter a chave atual" (nunca reenviar a mascarada). */ api_key?: string; versao?: string; } export interface TestarConexaoResult { status_http: number; versao?: string; mensagem?: string; } export function listEvolutionConfigs() { return apiClient.get('/master/evolution-config'); } export function createEvolutionConfig(input: EvolutionConfigInput & { api_key: string }) { return apiClient.post('/master/evolution-config', input); } export function updateEvolutionConfig( id: string, input: Partial & { ativo?: boolean }, ) { return apiClient.put(`/master/evolution-config/${id}`, input); } export function deleteEvolutionConfig(id: string) { return apiClient.delete(`/master/evolution-config/${id}`); } export function testarConexaoEvolution(id: string) { return apiClient.post(`/master/evolution-config/${id}/testar-conexao`); }