feat(release): close handler and microphone gaps

This commit is contained in:
key
2026-07-30 12:01:45 +08:00
parent 8934f13811
commit c16a3e83d7
30 changed files with 830 additions and 49 deletions
+56
View File
@@ -26,6 +26,26 @@ export type DirectAdminPage = {
rows: DirectAdminFeedback[];
};
export type DirectHandlerUser = {
userId: number;
userName: string;
nickName?: string;
};
export type DirectHandlerChannel = {
channelCode: DirectChannelCode;
channelName: string;
roleKey: string;
roleAvailable: boolean;
users: DirectHandlerUser[];
};
export type DirectHandlerConfig = {
tenantId: string;
minimumHandlers: number;
channels: DirectHandlerChannel[];
};
export const listDirectAdminFeedback = (params: {
pageNum: number;
pageSize: number;
@@ -48,3 +68,39 @@ export const replyDirectFeedback = (
data,
headers: { repeatSubmit: false }
});
export const getDirectHandlerConfig = (): Promise<ApiResult<DirectHandlerConfig>> =>
request({
url: '/api/aihr/direct/admin/handlers',
method: 'get'
});
export const listDirectHandlerCandidates = (
channelCode: DirectChannelCode,
keyword = ''
): Promise<ApiResult<DirectHandlerUser[]>> =>
request({
url: `/api/aihr/direct/admin/handlers/${channelCode}/candidates`,
method: 'get',
params: { keyword }
});
export const assignDirectHandlers = (
channelCode: DirectChannelCode,
data: { userIds: number[]; expectedTenantId: string }
): Promise<ApiResult<DirectHandlerConfig>> =>
request({
url: `/api/aihr/direct/admin/handlers/${channelCode}`,
method: 'post',
data
});
export const removeDirectHandler = (
channelCode: DirectChannelCode,
data: { userId: number; expectedTenantId: string }
): Promise<ApiResult<DirectHandlerConfig>> =>
request({
url: `/api/aihr/direct/admin/handlers/${channelCode}/remove`,
method: 'post',
data
});