// ✅ DESPUÉS — Vite inyecta el valor real durante npm run build const BASE_URL = import.meta.env.VITE_API_URL || "http://localhost:8000"; async function get(path, params = {}) { const qs = new URLSearchParams(params).toString(); const url = `${BASE_URL}${path}${qs ? "?" + qs : ""}`; const r = await fetch(url); if (!r.ok) throw new Error(`Error ${r.status} en ${path}`); return r.json(); } async function postJson(path, body) { const r = await fetch(`${BASE_URL}${path}`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(body), }); if (!r.ok) throw new Error(`Error ${r.status} en ${path}`); return r.json(); } async function post(path, params = {}) { const qs = new URLSearchParams(params).toString(); const url = `${BASE_URL}${path}${qs ? "?" + qs : ""}`; const r = await fetch(url, { method: "POST" }); if (!r.ok) throw new Error(`Error ${r.status} en ${path}`); return r.json(); } export const api = { periodoActual: () => get("/api/periodo-actual"), ocupabilidad: (ano, mes, sede = "TODOS", programa = "TODOS") => get("/api/ocupabilidad", { ano, mes, sede, programa }), ocupabilidadAlumnos: (num_indice) => get("/api/ocupabilidad/alumnos", { num_indice }), ventas: (ano, mes, sede = "TODOS", programa = "TODOS") => get("/api/ventas", { ano, mes, sede, programa }), ventasDetalle: (vendedor, ano, mes, tipo, sede = "TODOS", programa = "TODOS") => get("/api/ventas/detalle", { vendedor, ano, mes, tipo, sede, programa }), cobranza: (ano, mes, sectorista = "TODOS", agrupacion = "SEDE") => get("/api/cobranza", { ano, mes, sectorista, agrupacion }), cobranzaDetalle: (grupo, ano, mes, sectorista = "TODOS", agrupacion = "PROGRAMA") => get("/api/cobranza/detalle", { grupo, ano, mes, sectorista, agrupacion }), rentabilidad: (ano, mes, sede = "TODOS", programa = "TODOS") => get("/api/rentabilidad", { ano, mes, sede, programa }), rentabilidadDetalle: (programa, ano, mes) => get("/api/rentabilidad/detalle", { programa, ano, mes }), rentabilidadCostos: (programa, ano, mes) => get("/api/rentabilidad/costos", { programa, ano, mes }), saldoPendiente: (tipo_cuota) => get("/api/saldo-pendiente", { tipo_cuota }), asesores: () => get("/api/asesores"), asesorEstado: (agent_id, online) => post("/api/asesores/estado", { agent_id, online }), guardarCostos: (num_indice, inicial, actual) => postJson("/api/rentabilidad/costos/guardar", { num_indice, inicial, actual }), clasificarSede: (programas) => postJson("/api/cobranza/clasificar-sede", { programas }), cobranzaDetalleTodos: (ano, mes, sectorista = "TODOS") => get("/api/cobranza/detalle-todos", { ano, mes, sectorista }), usuariosListar: () => get("/api/usuarios"), usuariosCrear: (email, password, nombre, rol) => postJson("/api/usuarios/crear", { email, password, nombre, rol }), usuariosActualizarRol: (id, rol) => postJson("/api/usuarios/rol", { id, rol }), usuariosEliminar: (id) => postJson("/api/usuarios/eliminar", { id }), vendedoresManualesListar: (ano, mes) => get("/api/comisiones/vendedores", { ano, mes }), vendedoresManualesCrear: (datos) => postJson("/api/comisiones/vendedores/crear", datos), vendedoresManualesEliminar: (id) => postJson("/api/comisiones/vendedores/eliminar", { id }), vendedoresManualesActualizar: (datos) => postJson("/api/comisiones/vendedores/actualizar", datos), vendedoresManualesLote: (datos) => postJson("/api/comisiones/vendedores/lote", datos), comisionesOverrideGuardar: (registros) => postJson("/api/comisiones/override/guardar", { registros }), comisionesOverrideRestaurar: (num_matricula) => postJson("/api/comisiones/override/restaurar", { num_matricula }), comisionesDetalleTodos: (ano, mes) => get("/api/comisiones/detalle-todos", { ano, mes }), comisionesConfig: (ano, mes) => get("/api/comisiones/config", { ano, mes }), comisionesConfigGuardar: (datos) => postJson("/api/comisiones/config/guardar", datos), };