feat: adição de novos ícones SVG e configuração do ambiente

- Adicionados ícones SVG para ChatGPT, Claude, Gemini e OpenRouter
- Implementados ícones para modos claro e escuro do ChatGPT
- Criado script de inicialização para PostgreSQL com extensão pgcrypto
- Adicionado script de configuração de ambiente que faz backup do .env
- Configurado tsconfig.json para TypeScript com opções de compilação
This commit is contained in:
Felipe Coutinho
2025-11-15 15:49:36 -03:00
commit ea0b8618e0
441 changed files with 53569 additions and 0 deletions

39
lib/db.ts Normal file
View File

@@ -0,0 +1,39 @@
import * as schema from "@/db/schema";
import { drizzle, type PgDatabase } from "drizzle-orm/node-postgres";
import { Pool } from "pg";
const globalForDb = globalThis as unknown as {
db?: PgDatabase<typeof schema>;
pool?: Pool;
};
let _db: PgDatabase<typeof schema> | undefined;
let _pool: Pool | undefined;
function getDb() {
if (_db) return _db;
const { DATABASE_URL } = process.env;
if (!DATABASE_URL) {
throw new Error("DATABASE_URL env variable is not set");
}
_pool = globalForDb.pool ?? new Pool({ connectionString: DATABASE_URL });
_db = globalForDb.db ?? drizzle(_pool, { schema });
if (process.env.NODE_ENV !== "production") {
globalForDb.pool = _pool;
globalForDb.db = _db;
}
return _db;
}
export const db = new Proxy({} as PgDatabase<typeof schema>, {
get(_, prop) {
return Reflect.get(getDb(), prop);
},
});
export { schema };