/** * 員工管理 API 服務 */ import { apiClient } from '@/lib/api-client' import type { Employee, CreateEmployeeInput, UpdateEmployeeInput, PaginatedResponse, EmailAccount, } from '@/types' export const employeesService = { /** * 取得員工列表 */ getEmployees: async (params?: { page?: number page_size?: number status?: string department_id?: string search?: string }): Promise> => { return apiClient.get('/employees', { params }) }, /** * 取得單一員工詳情 */ getEmployee: async (id: string): Promise => { return apiClient.get(`/employees/${id}`) }, /** * 建立員工 */ createEmployee: async (data: CreateEmployeeInput): Promise => { return apiClient.post('/employees', data) }, /** * 更新員工資料 */ updateEmployee: async (id: string, data: UpdateEmployeeInput): Promise => { return apiClient.put(`/employees/${id}`, data) }, /** * 刪除員工 */ deleteEmployee: async (id: string): Promise => { return apiClient.delete(`/employees/${id}`) }, /** * 取得員工的郵件帳號列表 (符合 WebMail 設計規範) */ getEmployeeEmailAccounts: async (userId: string): Promise<{ user_id: string; email_accounts: EmailAccount[] }> => { return apiClient.get(`/employees/${userId}/email-accounts`) }, /** * 員工離職處理 */ resignEmployee: async (id: string, resignationDate: string): Promise => { return apiClient.post(`/employees/${id}/resign`, { resignation_date: resignationDate }) }, /** * 員工復職處理 */ reactivateEmployee: async (id: string): Promise => { return apiClient.post(`/employees/${id}/reactivate`) }, }