const DESA_PLUS_PROXY = '/api/proxy/desa-plus' export const API_URLS = { getVillages: (page: number, search: string) => `${DESA_PLUS_PROXY}/api/monitoring/get-villages?page=${page}&search=${encodeURIComponent(search)}`, infoVillages: (id: string) => `${DESA_PLUS_PROXY}/api/monitoring/info-villages?id=${id}`, gridVillages: (id: string) => `${DESA_PLUS_PROXY}/api/monitoring/grid-villages?id=${id}`, graphLogVillages: (id: string, time: string, dateFrom?: string, dateTo?: string) => { const params = new URLSearchParams({ id, time }) if (dateFrom) params.set('dateFrom', dateFrom) if (dateTo) params.set('dateTo', dateTo) return `${DESA_PLUS_PROXY}/api/monitoring/graph-log-villages?${params}` }, getRecentVillageLogs: (id: string) => `${DESA_PLUS_PROXY}/api/monitoring/recent-village-logs?id=${id}`, getUsers: (page: number, search: string, isActive?: string, idUserRole?: string, idVillage?: string, orderBy?: string, orderDir?: string) => { const params = new URLSearchParams({ page: String(page), search }) if (isActive !== undefined) params.set('isActive', isActive) if (idUserRole) params.set('idUserRole', idUserRole) if (idVillage) params.set('idVillage', idVillage) if (orderBy) params.set('orderBy', orderBy) if (orderDir) params.set('orderDir', orderDir) return `${DESA_PLUS_PROXY}/api/monitoring/user?${params}` }, getLogsAllVillages: (page: number, search: string, action?: string, idVillage?: string, dateFrom?: string, dateTo?: string) => { const params = new URLSearchParams({ page: String(page), search }) if (action) params.set('action', action) if (idVillage) params.set('idVillage', idVillage) if (dateFrom) params.set('dateFrom', dateFrom) if (dateTo) params.set('dateTo', dateTo) return `${DESA_PLUS_PROXY}/api/monitoring/log-all-villages?${params}` }, getStaleVillages: (days: 7 | 14 | 30 = 7) => `${DESA_PLUS_PROXY}/api/monitoring/stale-villages?days=${days}`, getPeakHours: (idVillage?: string) => { const params = new URLSearchParams() if (idVillage) params.set('idVillage', idVillage) return `${DESA_PLUS_PROXY}/api/monitoring/peak-hours?${params}` }, getInactiveUsers: (days: 7 | 14 | 30 = 7, idVillage?: string, page = 1) => { const params = new URLSearchParams({ days: String(days), page: String(page) }) if (idVillage) params.set('idVillage', idVillage) return `${DESA_PLUS_PROXY}/api/monitoring/inactive-users?${params}` }, getGridOverview: () => `${DESA_PLUS_PROXY}/api/monitoring/grid-overview`, getDailyActivity: (range: 7 | 30 | 90 = 7) => `${DESA_PLUS_PROXY}/api/monitoring/daily-activity?range=${range}`, getComparisonActivity: (range: 7 | 30 | 90 = 7) => `${DESA_PLUS_PROXY}/api/monitoring/comparison-activity?range=${range}`, postVersionUpdate: () => `${DESA_PLUS_PROXY}/api/monitoring/version-update`, createVillages: () => `${DESA_PLUS_PROXY}/api/monitoring/create-villages`, createUser: () => `${DESA_PLUS_PROXY}/api/monitoring/create-user`, listRole: () => `${DESA_PLUS_PROXY}/api/monitoring/list-userrole-villages`, listGroup: (id: string) => `${DESA_PLUS_PROXY}/api/monitoring/list-group-villages?id=${id}`, listPosition: (id: string) => `${DESA_PLUS_PROXY}/api/monitoring/list-position-villages?id=${id}`, editUser: () => `${DESA_PLUS_PROXY}/api/monitoring/edit-user`, updateStatusVillages: () => `${DESA_PLUS_PROXY}/api/monitoring/update-status-villages`, editVillages: () => `${DESA_PLUS_PROXY}/api/monitoring/edit-villages`, getGlobalLogs: (page: number, search: string, type: string, userId: string, dateFrom?: string, dateTo?: string) => { const params = new URLSearchParams({ page: String(page), search, type, userId }) if (dateFrom) params.set('dateFrom', dateFrom) if (dateTo) params.set('dateTo', dateTo) return `/api/logs?${params}` }, getLogOperators: () => `/api/logs/operators`, getOperators: (page: number, search: string) => `/api/operators?page=${page}&search=${encodeURIComponent(search)}`, getOperatorStats: () => `/api/operators/stats`, createOperator: () => `/api/operators`, editOperator: (id: string) => `/api/operators/${id}`, deleteOperator: (id: string) => `/api/operators/${id}`, getBugs: (page: number, search: string, app: string, status: string, source?: string, dateFrom?: string, dateTo?: string) => { const params = new URLSearchParams({ page: String(page), search: encodeURIComponent(search), app, status }) if (source && source !== 'all') params.set('source', source) if (dateFrom) params.set('dateFrom', dateFrom) if (dateTo) params.set('dateTo', dateTo) return `/api/bugs?${params}` }, createBug: () => `/api/bugs`, getBugStats: (range: 7 | 30 | 90 = 30) => `/api/bugs/stats?range=${range}`, uploadImage: () => `/api/upload/image`, updateBugStatus: (id: string) => `/api/bugs/${id}/status`, updateBugFeedback: (id: string) => `/api/bugs/${id}/feedback`, createLog: () => `/api/logs`, exportLogs: (search: string, action?: string, idVillage?: string, dateFrom?: string, dateTo?: string) => { const params = new URLSearchParams({ search }) if (action) params.set('action', action) if (idVillage) params.set('idVillage', idVillage) if (dateFrom) params.set('dateFrom', dateFrom) if (dateTo) params.set('dateTo', dateTo) return `${DESA_PLUS_PROXY}/api/monitoring/export-logs?${params}` }, getVillageReport: (range: 7 | 30 | 90 = 7) => `${DESA_PLUS_PROXY}/api/monitoring/village-report?range=${range}`, exportUsers: (search: string, isActive?: string, idUserRole?: string, idVillage?: string) => { const params = new URLSearchParams({ search }) if (isActive) params.set('isActive', isActive) if (idUserRole) params.set('idUserRole', idUserRole) if (idVillage) params.set('idVillage', idVillage) return `${DESA_PLUS_PROXY}/api/monitoring/export-users?${params}` }, }