31 lines
1.1 KiB
TypeScript
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>;
|