import { PostgresDialect } from "kysely"; import { Pool } from "pg"; import { KyselyAuth } from "@auth/kysely-adapter"; import { CamelCasePlugin } from "kysely"; import type { GeneratedAlways } from "kysely"; interface Database { User: { id: GeneratedAlways; name: string | null; email: string; emailVerified: Date | null; image: string | null; }; Account: { id: GeneratedAlways; userId: string; type: string; provider: string; providerAccountId: string; refresh_token: string | null; access_token: string | null; expires_at: number | null; token_type: string | null; scope: string | null; id_token: string | null; session_state: string | null; }; Session: { id: GeneratedAlways; userId: string; sessionToken: string; expires: Date; }; VerificationToken: { identifier: string; token: string; expires: Date; }; WhatsAppBot: { id: GeneratedAlways; userId: string; phone: string; password: string; }; } export const db = new KyselyAuth({ dialect: new PostgresDialect({ pool: new Pool({ host: process.env.DATABASE_HOST, database: process.env.DATABASE_NAME, user: process.env.DATABASE_USER, password: process.env.DATABASE_PASSWORD, }), }), plugins: [new CamelCasePlugin()], });