metis-desk/modules/companies/src/common/processes.ts

63 lines
1.7 KiB
TypeScript
Raw Normal View History

import { z } from "zod/v4";
import {
ProcessReferenceSchema,
ProcessTemplateInputSchema,
ProcessValuesSchema,
} from "../api/domain/process-values";
export type {
ProcessReferenceInput,
ProcessTaskInput,
ProcessTemplateInput,
StartProcessInput,
UpdateProcessInput,
} from "../api/domain/process-values";
2026-10-10 10:01:58 +00:00
export {
ProcessReferenceSchema,
ProcessTemplateInputSchema,
ProcessValuesSchema,
StartProcessInputSchema,
UpdateProcessInputSchema,
} from "../api/domain/process-values";
const audit = {
id: z.uuid(),
actorId: z.uuid().nullable(),
actorName: z.string().min(1),
recordedAt: z.iso.datetime(),
};
2026-10-10 10:01:58 +00:00
export const ProcessTemplateSchema = z.strictObject({
id: z.uuid(),
values: ProcessTemplateInputSchema,
history: z.array(z.strictObject({ ...audit, values: ProcessTemplateInputSchema })).min(1),
});
2026-10-10 10:01:58 +00:00
export const PersonProcessSchema = z.strictObject({
id: z.uuid(),
companyId: z.uuid(),
values: ProcessValuesSchema,
history: z.array(z.strictObject({ ...audit, values: ProcessValuesSchema })).min(1),
review: z.array(ProcessReferenceSchema),
});
2026-10-10 10:01:58 +00:00
export const ProcessTemplatesResponseSchema = z.strictObject({
templates: z.array(ProcessTemplateSchema),
});
2026-10-10 10:01:58 +00:00
export const ProcessTemplateResponseSchema = z.strictObject({ template: ProcessTemplateSchema });
2026-10-10 10:01:58 +00:00
export const ProcessesResponseSchema = z.strictObject({ processes: z.array(PersonProcessSchema) });
2026-10-10 10:01:58 +00:00
export const ProcessResponseSchema = z.strictObject({ process: PersonProcessSchema });
2026-10-10 10:01:58 +00:00
export const ProcessReviewResponseSchema = z.strictObject({
review: z.array(ProcessReferenceSchema),
});
2026-10-10 10:01:58 +00:00
export type ProcessTemplateDTO = z.infer<typeof ProcessTemplateSchema>;
2026-10-10 10:01:58 +00:00
export type PersonProcessDTO = z.infer<typeof PersonProcessSchema>;