Files
silk/web/src/dal/knowledge.ts
T

62 lines
2.0 KiB
TypeScript

import { get, post, patch, del } from '../api/http';
export interface Disease {
id: string;
name: string;
category: string;
pathogen?: string;
transmission?: string;
medium?: string;
incubation?: string;
symptoms?: string;
highRiskStage?: string;
highRiskCondition?: string;
lethalTime?: string;
spreadTrend?: string;
recurrence?: string;
detection?: string;
prevention?: string;
imageUrl?: string;
status?: string;
source?: string;
sourceDate?: string;
expertConfirmedBy?: string;
sortOrder?: number;
enabled?: boolean;
createdAt?: string;
updatedAt?: string;
}
export interface KnowledgeArticle {
id: string;
kind: string;
title: string;
summary?: string;
content?: string;
status?: string;
source?: string;
sourceDate?: string;
expertConfirmedBy?: string;
sortOrder?: number;
enabled?: boolean;
createdAt?: string;
updatedAt?: string;
}
export const listDiseases = (params?: any) => get<Disease[]>('/knowledge/diseases', { params });
export const getDisease = (id: string) => get<Disease>(`/knowledge/diseases/${id}`);
export const createDisease = (data: Partial<Disease>) => post<Disease>('/knowledge/diseases', data);
export const updateDisease = (id: string, data: Partial<Disease>) => patch<Disease>(`/knowledge/diseases/${id}`, data);
export const deleteDisease = (id: string) => del(`/knowledge/diseases/${id}`);
export const listArticles = (params?: any) => get<KnowledgeArticle[]>('/knowledge/articles', { params });
export const createArticle = (data: Partial<KnowledgeArticle>) => post<KnowledgeArticle>('/knowledge/articles', data);
export const updateArticle = (id: string, data: Partial<KnowledgeArticle>) => patch<KnowledgeArticle>(`/knowledge/articles/${id}`, data);
export const deleteArticle = (id: string) => del(`/knowledge/articles/${id}`);
export const uploadKnowledgeImage = (file: File) => {
const fd = new FormData();
fd.append('file', file);
return post<{ url: string; name: string; size: number }>('/knowledge/images', fd);
};