spb/cancerindex
Public
TypeScript 97.2%
SQL 1.5%
CSS 0.6%
JavaScript 0.5%
1import { timestamp, varchar, customType } from 'drizzle-orm/pg-core';23export const createdAt = () => timestamp('created_at', { withTimezone: true }).notNull().defaultNow();4export const updatedAt = () => timestamp('updated_at', { withTimezone: true }).notNull().defaultNow();56/** Public CancerIndex identifier column (CI-CAN-00000001 …). */7export const ciId = (name = 'id') => varchar(name, { length: 32 });89/** pgvector column (embedding model is stored alongside, never mix models in one column without it). */10export const vector = customType<{ data: number[]; driverData: string; config: { dimensions: number } }>({11 dataType(config) {12 return `vector(${config?.dimensions ?? 1536})`;13 },14 toDriver(value) {15 return `[${value.join(',')}]`;16 },17 fromDriver(value) {18 return value19 .slice(1, -1)20 .split(',')21 .map((v) => Number(v));22 },23});24