import { drizzle } from "drizzle-orm/mysql2";
import mysql from "mysql2/promise";
import { createConnection } from "mysql2";
import { env } from "@/lib/env";
import * as schema from "@/db/schema";

const poolConnection = mysql.createPool({
  uri: env.DB_URL,
});

export const db = drizzle(poolConnection, { schema, mode: "default", casing: "snake_case" });

export async function openConnection() {
  const connection = createConnection(env.DB_URL);
  const db = drizzle(connection, { schema, mode: "default", casing: "snake_case" });
  const closeConnection = async () => await connection.end();
  return {
    db,
    closeConnection,
  }
}