46 lines
1.4 KiB
TypeScript
46 lines
1.4 KiB
TypeScript
import { apiDelete, apiGet, apiPatch, apiPost } from "./axios";
|
|
import type { FeeApiResponse } from "../types/api";
|
|
|
|
export interface SpecialExpensePayload {
|
|
project_id: string;
|
|
center_id?: string | null;
|
|
category: string;
|
|
amount: number;
|
|
happen_date?: string | null;
|
|
description?: string | null;
|
|
is_paid?: boolean;
|
|
paid_date?: string | null;
|
|
is_verified?: boolean;
|
|
verified_date?: string | null;
|
|
}
|
|
|
|
export interface SpecialExpenseUpdatePayload {
|
|
center_id?: string | null;
|
|
category?: string;
|
|
amount?: number;
|
|
happen_date?: string | null;
|
|
description?: string | null;
|
|
is_paid?: boolean;
|
|
paid_date?: string | null;
|
|
is_verified?: boolean;
|
|
verified_date?: string | null;
|
|
}
|
|
|
|
export const listSpecialExpenses = (params: {
|
|
projectId: string;
|
|
centerId?: string;
|
|
category?: string;
|
|
dateFrom?: string;
|
|
dateTo?: string;
|
|
}) => apiGet<FeeApiResponse<any[]>>("/api/v1/fees/special", { params });
|
|
|
|
export const getSpecialExpense = (expenseId: string) => apiGet<FeeApiResponse<any>>(`/api/v1/fees/special/${expenseId}`);
|
|
|
|
export const createSpecialExpense = (payload: SpecialExpensePayload) =>
|
|
apiPost<FeeApiResponse<any>>("/api/v1/fees/special", payload);
|
|
|
|
export const updateSpecialExpense = (expenseId: string, payload: SpecialExpenseUpdatePayload) =>
|
|
apiPatch<FeeApiResponse<any>>(`/api/v1/fees/special/${expenseId}`, payload);
|
|
|
|
export const deleteSpecialExpense = (expenseId: string) => apiDelete(`/api/v1/fees/special/${expenseId}`);
|