import { apiGet, apiPost } from '@/lib/http' import type { AdminManualExpense, AdminManualExpenseListResult, AdminManualExpenseOverview, } from '@/types/admin/manual-expense' export type AdminManualExpenseParams = { dateFrom?: string dateTo?: string status?: string keyword?: string costItemId?: number paidByAdminUserId?: number orderId?: number page?: number pageSize?: number } export function fetchAdminManualExpenses(params: AdminManualExpenseParams = {}) { return apiGet('/api/v1/admin/finance/manual-expenses', params) } export function fetchAdminManualExpenseOverview(params: AdminManualExpenseParams = {}) { return apiGet( '/api/v1/admin/finance/manual-expenses/overview', params, ) } export function fetchAdminManualExpenseCostItems() { return apiGet<{ items: Array<{ id: number code: string name: string costType: string carrierType: string pricingMode: string }> }>('/api/v1/admin/finance/manual-expenses/cost-items') } export function fetchAdminManualExpense(expenseId: number) { return apiGet(`/api/v1/admin/finance/manual-expenses/${expenseId}`) } export function createAdminManualExpense(payload: Record) { return apiPost('/api/v1/admin/finance/manual-expenses', payload) } export function approveAdminManualExpense( expenseId: number, payload: Record = {}, ) { return apiPost( `/api/v1/admin/finance/manual-expenses/${expenseId}/approve`, payload, ) } export function rejectAdminManualExpense(expenseId: number, rejectReason: string) { return apiPost(`/api/v1/admin/finance/manual-expenses/${expenseId}/reject`, { rejectReason, }) } export function reimburseAdminManualExpense(expenseId: number) { return apiPost(`/api/v1/admin/finance/manual-expenses/${expenseId}/reimburse`) }