import { z } from "zod"; /** * The cached column-metadata entry shape (TASK-0135). Defined in its own * module — imported by BOTH `database.service.ts` (`listProperties`) and * `query.service.ts` (record-open) — because those two already import each * other (circular): a third module keeps the shared cache key * `perf:metadata:{db}:properties` validated with the SAME schema on both * read paths, so neither path can write an entry the other rejects (a * rejected entry = a cache miss on every cross read). */ export const PROPERTY_CACHE = z.object({ id: z.string(), databaseId: z.string(), name: z.string(), type: z.string(), position: z.string(), isTitle: z.boolean(), isVisible: z.boolean(), required: z.boolean(), config: z.unknown(), default: z.unknown().nullable(), deletedAt: z.string().nullable(), createdAt: z.string(), updatedAt: z.string() });