import { timestamp, varchar, customType } from 'drizzle-orm/pg-core'; export const createdAt = () => timestamp('created_at', { withTimezone: true }).notNull().defaultNow(); export const updatedAt = () => timestamp('updated_at', { withTimezone: true }).notNull().defaultNow(); /** Public CancerIndex identifier column (CI-CAN-00000001 …). */ export const ciId = (name = 'id') => varchar(name, { length: 32 }); /** pgvector column (embedding model is stored alongside, never mix models in one column without it). */ export const vector = customType<{ data: number[]; driverData: string; config: { dimensions: number } }>({ dataType(config) { return `vector(${config?.dimensions ?? 1536})`; }, toDriver(value) { return `[${value.join(',')}]`; }, fromDriver(value) { return value .slice(1, -1) .split(',') .map((v) => Number(v)); }, });