feat(kol): admin-web API client + router entries for KOL

This commit is contained in:
2026-04-17 13:51:39 +08:00
parent a6ded27c1d
commit 9cf9fac109
8 changed files with 197 additions and 0 deletions
+90
View File
@@ -28,6 +28,14 @@ import type {
KnowledgeItemDetail,
KnowledgeTextItemRequest,
KnowledgeURLItemRequest,
KolAssistRequest,
KolAssistSubmitResponse,
KolAssistTask,
KolPackageSummary,
KolProfile,
KolPromptDetail,
KolPromptRevision,
KolSaveDraftRequest,
Keyword,
KeywordRequest,
LoginRequest,
@@ -82,6 +90,10 @@ import type {
ImageUpdateRequest,
UpdateQuestionRequest,
UpdateArticleRequest,
CreateKolPackageRequest,
CreateKolPromptRequest,
UpdateKolPackageRequest,
UpdateKolPromptRequest,
UserInfo,
WorkspaceOverview,
} from "@geo/shared-types";
@@ -243,6 +255,84 @@ export const templatesApi = {
},
};
export const kolManageApi = {
profile() {
return apiClient.get<KolProfile>("/api/tenant/kol/manage/profile");
},
listPackages() {
return apiClient.get<KolPackageSummary[]>("/api/tenant/kol/manage/packages");
},
createPackage(body: CreateKolPackageRequest) {
return apiClient.post<KolPackageSummary, CreateKolPackageRequest>(
"/api/tenant/kol/manage/packages",
body,
);
},
updatePackage(id: number, body: UpdateKolPackageRequest) {
return apiClient.put<KolPackageSummary, UpdateKolPackageRequest>(
`/api/tenant/kol/manage/packages/${id}`,
body,
);
},
publishPackage(id: number) {
return apiClient.put<KolPackageSummary, Record<string, never>>(
`/api/tenant/kol/manage/packages/${id}/publish`,
{},
);
},
archivePackage(id: number) {
return apiClient.put<KolPackageSummary, Record<string, never>>(
`/api/tenant/kol/manage/packages/${id}/archive`,
{},
);
},
deletePackage(id: number) {
return apiClient.remove<null>(`/api/tenant/kol/manage/packages/${id}`);
},
listPrompts(packageId: number) {
return apiClient.get<KolPromptDetail[]>(`/api/tenant/kol/manage/packages/${packageId}/prompts`);
},
createPrompt(packageId: number, body: CreateKolPromptRequest) {
return apiClient.post<KolPromptDetail, CreateKolPromptRequest>(
`/api/tenant/kol/manage/packages/${packageId}/prompts`,
body,
);
},
getPrompt(id: number) {
return apiClient.get<KolPromptDetail>(`/api/tenant/kol/manage/prompts/${id}`);
},
updatePromptMetadata(id: number, body: UpdateKolPromptRequest) {
return apiClient.put<KolPromptDetail, UpdateKolPromptRequest>(
`/api/tenant/kol/manage/prompts/${id}`,
body,
);
},
deletePrompt(id: number) {
return apiClient.remove<null>(`/api/tenant/kol/manage/prompts/${id}`);
},
saveDraft(promptId: number, body: KolSaveDraftRequest) {
return apiClient.post<KolPromptRevision, KolSaveDraftRequest>(
`/api/tenant/kol/manage/prompts/${promptId}/draft`,
body,
);
},
publishPrompt(promptId: number) {
return apiClient.post<{ ok: boolean }, Record<string, never>>(
`/api/tenant/kol/manage/prompts/${promptId}/publish`,
{},
);
},
submitAssist(body: KolAssistRequest) {
return apiClient.post<KolAssistSubmitResponse, KolAssistRequest>(
"/api/tenant/kol/manage/assist",
body,
);
},
getAssist(id: string) {
return apiClient.get<KolAssistTask>(`/api/tenant/kol/manage/assist/${id}`);
},
};
export const articlesApi = {
list(params: ArticleListParams) {
return apiClient.get<ArticleListResponse>("/api/tenant/articles", { params });