metis-desk/modules/resources/src/common/index.ts
David fe6ec361b7 feat(companies): vincular identidades locales a activos y añadir cuenta de acceso a FolderMapping
- Asociar entornos locales con activos y conservar su trazabilidad.
- Registrar la cuenta de acceso del mapeo con historial de cambios.
- Calcular cobertura documental específica sin alterar la cobertura general.
- Añadir migraciones, validaciones, endpoints protegidos, pruebas y documentación.
2026-10-21 11:25:23 +02:00

47 lines
1.7 KiB
TypeScript

import { z } from "zod/v4";
import { FieldTypeSchema, ResourceDefinitionSchema } from "../api/domain/resource-definition";
export type { ResourceDefinitionSpec, ResourceFieldType } from "../api/domain/resource-definition";
export { FieldTypeSchema, ResourceDefinitionSchema };
export const CatalogParamsSchema = z.strictObject({
scope: z.union([z.literal("global"), z.uuid()]),
});
export const CatalogItemParamsSchema = CatalogParamsSchema.extend({ id: z.uuid() });
export const SaveDefinitionRequestSchema = z.strictObject({ values: ResourceDefinitionSchema });
export const AvailabilityRequestSchema = z.strictObject({ active: z.boolean().nullable() });
export const CatalogItemSchema = z.strictObject({
id: z.uuid(),
companyId: z.uuid().nullable(),
builtin: z.boolean(),
builtinKey: z.string().nullable().optional(),
active: z.boolean(),
effectiveActive: z.boolean(),
overridden: z.boolean(),
values: ResourceDefinitionSchema,
bindings: z.array(z.strictObject({ id: z.uuid(), fieldId: z.uuid(), required: z.boolean() })),
});
export const CatalogResponseSchema = z.strictObject({ items: z.array(CatalogItemSchema) });
export const SaveDefinitionResponseSchema = CatalogResponseSchema.extend({ savedId: z.uuid() });
export type CatalogItemDTO = z.infer<typeof CatalogItemSchema>;
export type CatalogResponseDTO = z.infer<typeof CatalogResponseSchema>;
export type SaveDefinitionResponseDTO = z.infer<typeof SaveDefinitionResponseSchema>;
export * from "./directory-domain-options";
export type { DirectoryDomainDTO } from "./directory-domains";
export { DirectoryDomainSchema } from "./directory-domains";
export * from "./inventory";
export * from "./network-shares";
export { resourceTemplateCapability } from "./resource-capabilities";