关联 Issue: P25-2, P25-3, P25-4, P26-2, P26-4, P28-1, P28-2, P28-3, P28-4, P24-2, P29-3
35 行
1.1 KiB
TypeScript
35 行
1.1 KiB
TypeScript
export type RiskFlag = {
|
|
id: string;
|
|
entityType: string;
|
|
entityId: string;
|
|
riskCode: string;
|
|
level: "low" | "medium" | "high";
|
|
title: string;
|
|
detail: string | null;
|
|
source: string;
|
|
status: "open" | "resolved" | "dismissed";
|
|
payloadJson: Record<string, unknown> | null;
|
|
createdAt: string | null;
|
|
createdBy: string | null;
|
|
resolvedAt: string | null;
|
|
resolvedBy: string | null;
|
|
};
|
|
|
|
export type PrecheckDecision = "pass" | "warn" | "manual_review" | "block";
|
|
|
|
export type PrecheckResponse = {
|
|
entityType: "reimbursement" | "purchase_request" | "travel_request";
|
|
entityId: string;
|
|
decision: PrecheckDecision;
|
|
matchedBudgetControlRule: {
|
|
id: string;
|
|
name: string;
|
|
controlMode: "warn" | "block" | "manual_review";
|
|
} | null;
|
|
budgetHint: Record<string, unknown> | null;
|
|
warnings: Array<{ code: string; title: string; detail: string }>;
|
|
blockingReasons: Array<{ code: string; title: string; detail: string }>;
|
|
riskFlags: Array<{ code: string; level: "low" | "medium" | "high"; title: string; detail: string; willOpenOnSubmit: boolean }>;
|
|
nextActions: string[];
|
|
};
|