import { request } from '@umijs/max'; // ==================== Auth ==================== export async function login(data: { username: string; password: string }) { return request('/api/v1/auth/login', { method: 'POST', data }); } export async function logout() { return request('/api/v1/auth/logout', { method: 'POST' }); } export async function getUserInfo() { return request('/api/v1/auth/info', { method: 'GET' }); } export async function changePassword(data: { oldPassword: string; newPassword: string }) { return request('/api/v1/auth/password', { method: 'PUT', data }); } // ==================== Users ==================== export async function listUsers(params: any) { return request('/api/v1/system/users', { method: 'GET', params }); } export async function getUser(id: string) { return request(`/api/v1/system/users/${id}`, { method: 'GET' }); } export async function createUser(data: any) { return request('/api/v1/system/users', { method: 'POST', data }); } export async function updateUser(id: string, data: any) { return request(`/api/v1/system/users/${id}`, { method: 'PUT', data }); } export async function deleteUser(id: string) { return request(`/api/v1/system/users/${id}`, { method: 'DELETE' }); } export async function updateUserStatus(id: string, status: number) { return request(`/api/v1/system/users/${id}/status`, { method: 'PUT', data: { status } }); } // ==================== Roles ==================== export async function listRoles(params?: any) { return request('/api/v1/system/roles', { method: 'GET', params }); } export async function createRole(data: any) { return request('/api/v1/system/roles', { method: 'POST', data }); } export async function updateRole(id: string, data: any) { return request(`/api/v1/system/roles/${id}`, { method: 'PUT', data }); } export async function deleteRole(id: string) { return request(`/api/v1/system/roles/${id}`, { method: 'DELETE' }); } export async function setRolePermissions(id: string, menuIds: string[]) { return request(`/api/v1/system/roles/${id}/permissions`, { method: 'PUT', data: { menuIds } }); } // ==================== Menus ==================== export async function listMenus() { return request('/api/v1/system/menus', { method: 'GET' }); } export async function createMenu(data: any) { return request('/api/v1/system/menus', { method: 'POST', data }); } export async function updateMenu(id: string, data: any) { return request(`/api/v1/system/menus/${id}`, { method: 'PUT', data }); } export async function deleteMenu(id: string) { return request(`/api/v1/system/menus/${id}`, { method: 'DELETE' }); } // ==================== Logs ==================== export async function listLogs(params: any) { return request('/api/v1/system/logs', { method: 'GET', params }); } // ==================== Configs ==================== export async function listConfigs() { return request('/api/v1/system/configs', { method: 'GET' }); } export async function updateConfig(key: string, value: string) { return request(`/api/v1/system/configs/${key}`, { method: 'PUT', data: { configValue: value } }); } // ==================== Products ==================== export async function listProducts(params: any) { return request('/api/v1/inventory/products', { method: 'GET', params }); } export async function getProduct(id: string) { return request(`/api/v1/inventory/products/${id}`, { method: 'GET' }); } export async function createProduct(data: any) { return request('/api/v1/inventory/products', { method: 'POST', data }); } export async function updateProduct(id: string, data: any) { return request(`/api/v1/inventory/products/${id}`, { method: 'PUT', data }); } export async function deleteProduct(id: string) { return request(`/api/v1/inventory/products/${id}`, { method: 'DELETE' }); } export async function exportProducts() { return request('/api/v1/inventory/products/export', { method: 'GET', responseType: 'blob' }); } // ==================== Stocks ==================== export async function getStockSummary() { return request('/api/v1/inventory/stocks/summary', { method: 'GET' }); } export async function getStockByColor() { return request('/api/v1/inventory/stocks/by-color', { method: 'GET' }); } export async function getStockByLocation() { return request('/api/v1/inventory/stocks/by-location', { method: 'GET' }); } // ==================== Stock Checks ==================== export async function listStockChecks(params: any) { return request('/api/v1/inventory/checks', { method: 'GET', params }); } export async function getStockCheck(id: string) { return request(`/api/v1/inventory/checks/${id}`, { method: 'GET' }); } export async function createStockCheck(data: any) { return request('/api/v1/inventory/checks', { method: 'POST', data }); } export async function confirmStockCheck(id: string) { return request(`/api/v1/inventory/checks/${id}/confirm`, { method: 'POST' }); } // ==================== Stock Adjusts ==================== export async function listStockAdjusts(params: any) { return request('/api/v1/inventory/adjusts', { method: 'GET', params }); } export async function getStockAdjust(id: string) { return request(`/api/v1/inventory/adjusts/${id}`, { method: 'GET' }); } export async function createStockAdjust(data: any) { return request('/api/v1/inventory/adjusts', { method: 'POST', data }); } export async function approveStockAdjust(id: string, action: number) { return request(`/api/v1/inventory/adjusts/${id}/approve`, { method: 'POST', data: { action } }); }