import { apiClient } from './client'; import type { SatSyncJob, SatSyncStatusResponse, SatSyncHistoryResponse, StartSyncRequest, StartSyncResponse, } from '@horux/shared'; export async function startSync(data?: StartSyncRequest, contribuyenteId?: string | null): Promise { const response = await apiClient.post('/sat/sync', { ...data, contribuyenteId: contribuyenteId || undefined, }); return response.data; } export async function getSyncStatus(contribuyenteId?: string | null): Promise { const response = await apiClient.get('/sat/sync/status', { params: { contribuyenteId: contribuyenteId || undefined }, }); return response.data; } export async function getSyncHistory(page: number = 1, limit: number = 10, contribuyenteId?: string | null): Promise { const response = await apiClient.get('/sat/sync/history', { params: { page, limit, contribuyenteId: contribuyenteId || undefined }, }); return response.data; } export async function getSyncJob(id: string): Promise { const response = await apiClient.get(`/sat/sync/${id}`); return response.data; } export async function retrySync(id: string): Promise { const response = await apiClient.post(`/sat/sync/${id}/retry`); return response.data; } export async function getCronInfo(): Promise<{ scheduled: boolean; expression: string; timezone: string }> { const response = await apiClient.get('/sat/cron'); return response.data; } export async function runCron(): Promise<{ message: string }> { const response = await apiClient.post('/sat/cron/run'); return response.data; }