import api, { PageResponse, unwrap } from './request'; // ── Response VO ──────────────────────────────────────────────────────────── export interface DeductionResp { deductionId: number; agentId: number; agentName: string; settleMonth: string; // YYYYMM deductionType: string; deductionTypeName: string; amount: number; // BigDecimal → number description?: string; status: string; statusName: string; createdAt: string; } // ── Request VO ───────────────────────────────────────────────────────────── export interface DeductionSaveReq { agentId: number; settleMonth: string; // YYYYMM 6자리 deductionType: string; amount: number; // 양수 description?: string; } // ── Search Params ────────────────────────────────────────────────────────── export interface DeductionSearchParam { agentId?: number; settleMonth?: string; deductionType?: string; status?: string; pageNum?: number; pageSize?: number; } // ── API ──────────────────────────────────────────────────────────────────── export const deductionApi = { list: (p: DeductionSearchParam) => unwrap>(api.get('/api/deductions', { params: p })), get: (deductionId: number) => unwrap(api.get(`/api/deductions/${deductionId}`)), create: (req: DeductionSaveReq) => unwrap(api.post('/api/deductions', req)), update: (deductionId: number, req: DeductionSaveReq) => unwrap(api.put(`/api/deductions/${deductionId}`, req)), cancel: (deductionId: number) => unwrap(api.put(`/api/deductions/${deductionId}/cancel`)), };