import { API_BASE_URL } from '../../../shared/services/apiConfig'; async function request(path, options = {}) { const response = await fetch(`${API_BASE_URL}${path}`, { headers: { 'Content-Type': 'application/json', ...options.headers, }, ...options, }); if (!response.ok) { let message = 'Falha ao consultar acessos'; try { const payload = await response.json(); message = payload?.message || payload?.error || message; } catch { // Mantem mensagem padrao. } throw new Error(message); } return response.json(); } export async function getAccessOptions() { return request('/admin/access/options'); } export async function getAdminOverview() { return request('/admin/access/overview'); } export async function getAttendantRanking(areaId) { const query = areaId ? `?areaId=${encodeURIComponent(areaId)}` : ''; return request(`/admin/access/ranking${query}`); } export async function getAuditLogs(page = 1, limit = 100) { return request(`/admin/access/audit?page=${encodeURIComponent(page)}&limit=${encodeURIComponent(limit)}`); } export async function getAiContents() { return request('/admin/access/ai-contents'); } export async function getAiContentFile(id) { return request(`/admin/access/ai-contents/${id}/file`); } export async function createAiContent(payload) { return request('/admin/access/ai-contents', { method: 'POST', body: JSON.stringify(payload), }); } export async function deleteAiContent(id) { return request(`/admin/access/ai-contents/${id}`, { method: 'DELETE', }); } export async function getAccessUsers() { return request('/admin/access/users'); } export async function getAccessAreas() { return request('/admin/access/areas'); } export async function updateUserAccess(userId, access) { return request(`/admin/access/users/${userId}`, { method: 'PUT', body: JSON.stringify(access), }); } export async function createAccessArea(payload) { return request('/admin/access/areas', { method: 'POST', body: JSON.stringify(payload), }); } export async function updateAccessArea(areaId, payload) { return request(`/admin/access/areas/${areaId}`, { method: 'PUT', body: JSON.stringify(payload), }); } export async function deleteAccessArea(areaId) { return request(`/admin/access/areas/${areaId}`, { method: 'DELETE', }); }