Dealer_Onboarding_Backend/src/common/utils/workflowWorknote.ts

32 lines
997 B
TypeScript

import db from '../../database/models/index.js';
/** Must match `REQUEST_TYPES` / collaboration / `RequestParticipant` (use `constitutional`, not `constitutional-change`). */
export type WorkflowActivityRequestType =
| 'relocation'
| 'constitutional'
| 'resignation'
| 'termination';
/**
* Persists a workflow / decision line for Work Notes (UI: activity strip when noteType is internal | workflow).
* No-op if noteText is empty after trim.
*/
export async function writeWorkflowActivityWorknote(opts: {
requestId: string;
requestType: WorkflowActivityRequestType;
userId: string;
noteText: string;
noteType: 'internal' | 'workflow';
}): Promise<void> {
const text = String(opts.noteText || '').trim();
if (!text) return;
await db.Worknote.create({
requestId: opts.requestId,
requestType: opts.requestType,
userId: opts.userId,
noteText: text,
noteType: opts.noteType,
status: 'active'
});
}