import type { Config } from 'drizzle-kit';

// drizzle-kit@0.31.10 serializes the schema snapshot with JSON.stringify, which
// throws on bigint({ mode: 'bigint' }) columns. Loaded by every drizzle-kit
// invocation (generate/check/migrate), so the polyfill is in place before serialization.
(BigInt.prototype as unknown as { toJSON: () => string }).toJSON = function () {
  return this.toString();
};

export default {
  schema: './src/server/db/schema/*.ts',
  out: './src/server/db/migrations',
  dialect: 'postgresql',
  dbCredentials: {
    url: process.env.DATABASE_URL ?? '',
  },
  verbose: true,
  strict: true,
  casing: 'snake_case',
} satisfies Config;
