import { apiClient } from '@/lib/api/client'; /** Espelha o retorno de `TenantEmailConfigService#obter` — dois formatos possíveis conforme `usar_config_padrao`. */ export interface TenantEmailConfig { usar_config_padrao: boolean; smtp_host?: string; smtp_porta?: number; smtp_usuario?: string; /** Mascarada (`maskSecret`) — nunca o valor real. */ smtp_senha?: string; email_remetente?: string; } /** Espelha `UpdateTenantEmailConfigDto`. */ export interface UpdateTenantEmailConfigInput { usar_config_padrao: boolean; smtp_host?: string; smtp_porta?: number; smtp_usuario?: string; smtp_senha?: string; email_remetente?: string; } export function getTenantEmailConfig() { return apiClient.get('/tenant/email-config'); } export function updateTenantEmailConfig(input: UpdateTenantEmailConfigInput) { return apiClient.put('/tenant/email-config', input); } /** * Espelha `DispatchResult` (`src/modules/alert-dispatch/alert-dispatch.service.ts`): * o endpoint sempre responde HTTP 200 — falha de envio (SMTP indisponível, * config incompleta etc) vem como `{ sucesso: false, erro }`, não como erro * HTTP. Quem chama precisa checar `sucesso` explicitamente, não só o status * da resposta. */ export interface TestarEnvioResult { sucesso: boolean; erro?: string; } export function testarEnvioEmail(destinatario: string) { return apiClient.post('/tenant/email-config/testar-envio', { destinatario }); }