feat(aihr): add M1 broadcast targeting and mandatory reads

This commit is contained in:
2026-07-23 12:11:41 +08:00
parent cd94f4fe9f
commit f6609808df
14 changed files with 925 additions and 69 deletions
+7 -2
View File
@@ -3,6 +3,8 @@ import { apiRequest } from './api';
export const broadcastQuestionContextStorageKey = 'aihr_broadcast_question_context';
export const broadcastQuestionContextTtlMs = 15 * 60 * 1000;
export type BroadcastMessageScope = 'ALL' | 'RELATED' | 'REQUIRED_UNREAD';
export interface BroadcastQuestionContext {
messageId: number;
accountKey: string;
@@ -14,6 +16,9 @@ export interface BroadcastMessageSummary {
title: string;
read: boolean;
publishedAt: string;
requiredRead: boolean;
targeted: boolean;
targetReason?: string;
}
export interface BroadcastMessage extends BroadcastMessageSummary {
@@ -36,9 +41,9 @@ export const getBroadcastUnreadCount = async () => {
return Math.max(0, Number(result?.unreadCount) || 0);
};
export const listBroadcastMessages = (pageNum = 1, pageSize = 20) =>
export const listBroadcastMessages = (pageNum = 1, pageSize = 20, scope: BroadcastMessageScope = 'ALL') =>
apiRequest<BroadcastMessagePage>({
url: `/api/aihr/broadcast/messages?pageNum=${pageNum}&pageSize=${pageSize}`,
url: `/api/aihr/broadcast/messages?pageNum=${pageNum}&pageSize=${pageSize}&scope=${scope}`,
method: 'GET',
timeout: 15000
});