metis-desk/modules/resources/src/common/inventory.ts

35 lines
1.3 KiB
TypeScript
Raw Normal View History

2026-10-05 11:13:51 +00:00
import { z } from "zod/v4";
import {
ResourceInputSchema,
ResourceSpecificationSchema,
ResourceValueSchema,
} from "../api/domain/resource-values";
export type { ResourceCharacteristic, ResourceInput } from "../api/domain/resource-values";
export { ResourceInputSchema, ResourceSpecificationSchema, ResourceValueSchema };
export const InventoryParamsSchema = z.strictObject({ companyId: z.uuid() });
export const ResourceParamsSchema = InventoryParamsSchema.extend({ id: z.uuid() });
export const SaveResourceRequestSchema = z.strictObject({ values: ResourceInputSchema });
export const ResourceRevisionSchema = z.strictObject({
id: z.uuid(),
values: ResourceInputSchema,
actorId: z.uuid(),
actorName: z.string().min(1),
recordedAt: z.iso.datetime(),
});
export const ResourceSchema = z.strictObject({
id: z.uuid(),
companyId: z.uuid(),
specification: ResourceSpecificationSchema,
values: ResourceInputSchema,
history: z.array(ResourceRevisionSchema).min(1),
});
export const InventoryResponseSchema = z.strictObject({
resources: z.array(ResourceSchema),
});
export const ResourceResponseSchema = z.strictObject({ resource: ResourceSchema });
export type ResourceDTO = z.infer<typeof ResourceSchema>;
export type ResourceResponseDTO = z.infer<typeof ResourceResponseSchema>;