Files
Jyotisha/frontend/src/lib/consultation-workflow-request.ts
T

32 lines
1.0 KiB
TypeScript

import {
consultationDomainDefinition,
consultationDomainIds,
type ConsultationDomain,
type ConsultationTheme,
} from "./consultation-domain-registry.ts";
export { consultationDomainIds as consultationThemeValues };
export type { ConsultationTheme };
export type ConsultationWorkflowRoute = ConsultationDomain | "rectification" | "prashna";
type WorkflowProjection = {
question: string;
themes: readonly ConsultationDomain[];
strictWorkflowRoute: ConsultationWorkflowRoute;
requiredLayers: readonly string[];
claimBoundary: string;
};
export function projectConsultationWorkflowRequest(question: string, theme: ConsultationTheme) {
const requirement = consultationDomainDefinition(theme);
const prefix = theme === "timing" ? "应期与阶段问题:" : "";
return {
question: `${prefix}${question}`,
themes: requirement.workflowThemes,
strictWorkflowRoute: requirement.strictWorkflowRoute,
requiredLayers: requirement.requiredLayers,
claimBoundary: requirement.claimBoundary,
} satisfies WorkflowProjection;
}