feat(finance): add financial disclosure publishing

This commit is contained in:
2026-08-13 17:17:33 +08:00
parent 39a2e53e61
commit 65d23eab4a
49 changed files with 2096 additions and 3 deletions
@@ -0,0 +1,43 @@
import type {
CreateFinancialDisclosureRequest,
FinancialDisclosureDetailResponse,
PaginatedFinancialDisclosuresResponse,
TransitionFinancialDisclosureRequest,
UpdateFinancialDisclosureRequest,
} from '@lehuo/contracts';
import { apiRequest } from './api-client';
const query = (value: Record<string, string | number | undefined>) => {
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<PaginatedFinancialDisclosuresResponse>(
`/api/v1/admin/financial-disclosures?${query(value)}`,
);
export const fetchFinancialDisclosure = (id: string) =>
apiRequest<FinancialDisclosureDetailResponse>(`/api/v1/admin/financial-disclosures/${id}`);
export const createFinancialDisclosure = (input: CreateFinancialDisclosureRequest) =>
apiRequest<FinancialDisclosureDetailResponse>('/api/v1/admin/financial-disclosures', {
method: 'POST',
body: JSON.stringify(input),
});
export const updateFinancialDisclosure = (id: string, input: UpdateFinancialDisclosureRequest) =>
apiRequest<FinancialDisclosureDetailResponse>(`/api/v1/admin/financial-disclosures/${id}`, {
method: 'PATCH',
body: JSON.stringify(input),
});
export const transitionFinancialDisclosure = (
id: string,
input: TransitionFinancialDisclosureRequest,
) =>
apiRequest<FinancialDisclosureDetailResponse>(
`/api/v1/admin/financial-disclosures/${id}/transition`,
{ method: 'POST', body: JSON.stringify(input) },
);