41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
import { z } from "zod/v4";
|
|
|
|
import { CertificateConfigurationInputSchema } from "../api/domain/certificate-configuration-values";
|
|
|
|
export type { CertificateConfigurationInput } from "../api/domain/certificate-configuration-values";
|
|
export {
|
|
CERTIFICATE_STATE_TRANSITIONS,
|
|
CertificateConfigurationInputSchema,
|
|
} from "../api/domain/certificate-configuration-values";
|
|
export const CertificateParamsSchema = z.strictObject({ companyId: z.uuid() });
|
|
export const CertificateItemParamsSchema = CertificateParamsSchema.extend({ id: z.uuid() });
|
|
export const SaveCertificateConfigurationRequestSchema = z.strictObject({
|
|
values: CertificateConfigurationInputSchema,
|
|
});
|
|
export const CertificateConfigurationSchema = z.strictObject({
|
|
id: z.uuid(),
|
|
companyId: z.uuid(),
|
|
values: CertificateConfigurationInputSchema,
|
|
needsReview: z.boolean(),
|
|
expiresOn: z.iso.date().nullable(),
|
|
expired: z.boolean(),
|
|
history: z
|
|
.array(
|
|
z.strictObject({
|
|
id: z.uuid(),
|
|
actorId: z.uuid(),
|
|
actorName: z.string().min(1),
|
|
recordedAt: z.iso.datetime(),
|
|
values: CertificateConfigurationInputSchema,
|
|
})
|
|
)
|
|
.min(1),
|
|
});
|
|
export const CertificateConfigurationsResponseSchema = z.strictObject({
|
|
configurations: z.array(CertificateConfigurationSchema),
|
|
});
|
|
export const CertificateConfigurationResponseSchema = z.strictObject({
|
|
configuration: CertificateConfigurationSchema,
|
|
});
|
|
export type CertificateConfigurationDTO = z.infer<typeof CertificateConfigurationSchema>;
|