metis-desk/modules/companies/src/common/work-profiles.ts
2026-10-05 09:53:29 +02:00

31 lines
1.1 KiB
TypeScript

import { z } from "zod/v4";
import { WorkProfileInputSchema } from "../api/domain/work-profile-values";
export type { WorkProfileInput } from "../api/domain/work-profile-values";
export { WorkProfileInputSchema };
export const ProfileParamsSchema = z.strictObject({ companyId: z.uuid() });
export const ProfileItemParamsSchema = ProfileParamsSchema.extend({ id: z.uuid() });
export const SaveWorkProfileRequestSchema = z.strictObject({ values: WorkProfileInputSchema });
export const WorkProfileSchema = z.strictObject({
id: z.uuid(),
companyId: z.uuid(),
values: WorkProfileInputSchema,
needsReview: z.boolean(),
history: z
.array(
z.strictObject({
id: z.uuid(),
values: WorkProfileInputSchema,
actorId: z.uuid(),
actorName: z.string().min(1),
recordedAt: z.iso.datetime(),
})
)
.min(1),
});
export const WorkProfilesResponseSchema = z.strictObject({ profiles: z.array(WorkProfileSchema) });
export const WorkProfileResponseSchema = z.strictObject({ profile: WorkProfileSchema });
export type WorkProfileDTO = z.infer<typeof WorkProfileSchema>;