/** * 郵件帳號服務 * 處理所有與郵件帳號相關的 API 請求 */ import { apiClient } from '@/lib/api-client' import type { EmailAccount, CreateEmailAccountInput, UpdateEmailAccountInput, EmailAccountQuotaUpdate, PaginatedResponse, } from '@/types' export interface EmailAccountListParams { page?: number page_size?: number employee_id?: number is_active?: boolean search?: string } export const emailAccountsService = { /** * 獲取郵件帳號列表 */ async list(params?: EmailAccountListParams): Promise> { return apiClient.get>('/email-accounts', { params, }) }, /** * 獲取郵件帳號詳情 */ async get(id: number): Promise { return apiClient.get(`/email-accounts/${id}`) }, /** * 創建郵件帳號 */ async create(data: CreateEmailAccountInput): Promise { return apiClient.post('/email-accounts', data) }, /** * 更新郵件帳號 */ async update(id: number, data: UpdateEmailAccountInput): Promise { return apiClient.put(`/email-accounts/${id}`, data) }, /** * 更新郵件配額 */ async updateQuota(id: number, data: EmailAccountQuotaUpdate): Promise { return apiClient.patch(`/email-accounts/${id}/quota`, data) }, /** * 停用郵件帳號 (軟刪除) */ async delete(id: number): Promise<{ message: string }> { return apiClient.delete<{ message: string }>(`/email-accounts/${id}`) }, /** * 獲取員工的所有郵件帳號 */ async getByEmployee(employeeId: number): Promise { return apiClient.get(`/email-accounts/employees/${employeeId}/email-accounts`) }, }