/** * 系統權限服務 * 處理所有與系統權限相關的 API 請求 */ import { apiClient } from '@/lib/api-client' import type { Permission, CreatePermissionInput, UpdatePermissionInput, PermissionBatchCreateInput, SystemInfo, PaginatedResponse, SystemName, AccessLevel, } from '@/types' export interface PermissionListParams { page?: number page_size?: number employee_id?: number system_name?: SystemName access_level?: AccessLevel } export const permissionsService = { /** * 獲取權限列表 */ async list(params?: PermissionListParams): Promise> { return apiClient.get>('/permissions', { params, }) }, /** * 獲取權限詳情 */ async get(id: number): Promise { return apiClient.get(`/permissions/${id}`) }, /** * 創建權限 */ async create(data: CreatePermissionInput): Promise { return apiClient.post('/permissions', data) }, /** * 更新權限 */ async update(id: number, data: UpdatePermissionInput): Promise { return apiClient.put(`/permissions/${id}`, data) }, /** * 刪除權限 */ async delete(id: number): Promise<{ message: string }> { return apiClient.delete<{ message: string }>(`/permissions/${id}`) }, /** * 獲取員工的所有系統權限 */ async getByEmployee(employeeId: number): Promise { return apiClient.get(`/permissions/employees/${employeeId}/permissions`) }, /** * 批量創建權限 */ async batchCreate(data: PermissionBatchCreateInput): Promise { return apiClient.post('/permissions/batch', data) }, /** * 獲取可授權的系統列表 */ async getSystems(): Promise { return apiClient.get('/permissions/systems') }, }