import { apiClient } from './client'; import type { OpinionCumplimiento } from '@horux/shared'; export async function getOpiniones(contribuyenteId?: string): Promise { const params = contribuyenteId ? `?contribuyenteId=${encodeURIComponent(contribuyenteId)}` : ''; const { data } = await apiClient.get(`/documentos/opiniones${params}`); return data; } export async function descargarOpinionPdf(id: number): Promise { const { data } = await apiClient.get(`/documentos/opiniones/${id}/pdf`, { responseType: 'blob', }); return data; } export async function consultarOpinion(contribuyenteId?: string): Promise { const params = contribuyenteId ? `?contribuyenteId=${encodeURIComponent(contribuyenteId)}` : ''; const { data } = await apiClient.post(`/documentos/opiniones/consultar${params}`); return data; } export async function consultarConstancia(contribuyenteId?: string): Promise { const params = contribuyenteId ? `?contribuyenteId=${encodeURIComponent(contribuyenteId)}` : ''; const { data } = await apiClient.post(`/documentos/constancia/consultar${params}`); return data; } // ────────────────────────────────────────────────────────────────── // Documentos Extras — PDFs libres (acuses, contratos, poderes, etc.) // ────────────────────────────────────────────────────────────────── export interface DocumentoExtra { id: number; contribuyenteId: string | null; nombre: string; descripcion: string | null; categoria: string | null; pdfFilename: string; subidoPor: string | null; createdAt: string; } export interface CreateExtraInput { nombre: string; descripcion?: string; categoria?: string; pdfBase64: string; pdfFilename: string; } export async function listarExtras( contribuyenteId?: string | null, categoria?: string | null, ): Promise { const params = new URLSearchParams(); if (contribuyenteId) params.set('contribuyenteId', contribuyenteId); if (categoria) params.set('categoria', categoria); const { data } = await apiClient.get(`/documentos/extras?${params}`); return data; } export async function listarCategoriasExtras( contribuyenteId?: string | null, ): Promise { const params = new URLSearchParams(); if (contribuyenteId) params.set('contribuyenteId', contribuyenteId); const { data } = await apiClient.get(`/documentos/extras/categorias?${params}`); return data; } export async function crearExtra( input: CreateExtraInput, contribuyenteId?: string | null, ): Promise { const body = contribuyenteId ? { ...input, contribuyenteId } : input; const { data } = await apiClient.post('/documentos/extras', body); return data; } export async function descargarExtraPdf(id: number): Promise { const { data } = await apiClient.get(`/documentos/extras/${id}/pdf`, { responseType: 'blob', }); return data; } export async function eliminarExtra(id: number): Promise { await apiClient.delete(`/documentos/extras/${id}`); }