// frontend/src/services/apiService.ts import axios from 'axios'; import type { Configuracion, Titular } from '../types'; // La URL base viene de la variable de entorno const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || ''; const apiClient = axios.create({ // Construimos la URL completa para las llamadas a la API REST baseURL: `${API_BASE_URL}/api`, headers: { 'Content-Type': 'application/json' }, }); export interface ActualizarTitularPayload { texto: string; viƱeta: string | null; } export const obtenerTitulares = async (): Promise => { const response = await apiClient.get('/titulares'); return response.data; }; export const crearTitularManual = async (texto: string): Promise => { await apiClient.post('/titulares', { texto }); }; export const eliminarTitular = async (id: number): Promise => { await apiClient.delete(`/titulares/${id}`); }; interface ReordenarPayload { id: number; nuevoOrden: number; } export const actualizarOrdenTitulares = async (payload: ReordenarPayload[]): Promise => { await apiClient.put('/titulares/reordenar', payload); }; export const obtenerConfiguracion = async (): Promise => { const response = await apiClient.get('/configuracion'); return response.data; }; export const guardarConfiguracion = async (config: Omit): Promise => { await apiClient.post('/configuracion', config); }; export const getEstadoProceso = async (): Promise<{ activo: boolean }> => { const response = await apiClient.get('/estado-proceso'); return response.data; }; export const setEstadoProceso = async (activo: boolean): Promise => { await apiClient.post('/estado-proceso', { activo }); }; export const generarCsvManual = async (): Promise => { await apiClient.post('/acciones/generar-csv'); }; export const actualizarTitular = async (id: number, payload: ActualizarTitularPayload): Promise => { await apiClient.put(`/titulares/${id}`, payload); };