metis-desk/modules/companies/src/common/application-configurations.ts

39 lines
1.4 KiB
TypeScript

import { z } from "zod/v4";
import { ApplicationConfigurationInputSchema } from "../api/domain/application-configuration-values";
export type { ApplicationConfigurationInput } from "../api/domain/application-configuration-values";
export {
APPLICATION_STATE_TRANSITIONS,
ApplicationConfigurationInputSchema,
} from "../api/domain/application-configuration-values";
export const ApplicationParamsSchema = z.strictObject({ companyId: z.uuid() });
export const ApplicationItemParamsSchema = ApplicationParamsSchema.extend({ id: z.uuid() });
export const SaveApplicationConfigurationRequestSchema = z.strictObject({
values: ApplicationConfigurationInputSchema,
});
export const ApplicationConfigurationSchema = z.strictObject({
id: z.uuid(),
companyId: z.uuid(),
values: ApplicationConfigurationInputSchema,
needsReview: z.boolean(),
history: z
.array(
z.strictObject({
id: z.uuid(),
actorId: z.uuid(),
actorName: z.string().min(1),
recordedAt: z.iso.datetime(),
values: ApplicationConfigurationInputSchema,
})
)
.min(1),
});
export const ApplicationConfigurationsResponseSchema = z.strictObject({
configurations: z.array(ApplicationConfigurationSchema),
});
export const ApplicationConfigurationResponseSchema = z.strictObject({
configuration: ApplicationConfigurationSchema,
});
export type ApplicationConfigurationDTO = z.infer<typeof ApplicationConfigurationSchema>;