import type { CreateFinancialDisclosureRequest, FinancialDisclosureDetailResponse, PaginatedFinancialDisclosuresResponse, TransitionFinancialDisclosureRequest, UpdateFinancialDisclosureRequest, } from '@lehuo/contracts'; import { apiRequest } from './api-client'; const query = (value: Record) => { const params = new URLSearchParams(); Object.entries(value).forEach( ([key, item]) => item !== undefined && params.set(key, String(item)), ); return params.toString(); }; export const fetchFinancialDisclosures = (value: { page: number; pageSize: number; status?: string; }) => apiRequest( `/api/v1/admin/financial-disclosures?${query(value)}`, ); export const fetchFinancialDisclosure = (id: string) => apiRequest(`/api/v1/admin/financial-disclosures/${id}`); export const createFinancialDisclosure = (input: CreateFinancialDisclosureRequest) => apiRequest('/api/v1/admin/financial-disclosures', { method: 'POST', body: JSON.stringify(input), }); export const updateFinancialDisclosure = (id: string, input: UpdateFinancialDisclosureRequest) => apiRequest(`/api/v1/admin/financial-disclosures/${id}`, { method: 'PATCH', body: JSON.stringify(input), }); export const transitionFinancialDisclosure = ( id: string, input: TransitionFinancialDisclosureRequest, ) => apiRequest( `/api/v1/admin/financial-disclosures/${id}/transition`, { method: 'POST', body: JSON.stringify(input) }, );