2026-01-30 13:41:32 +01:00
|
|
|
import { PrismaClient } from '@prisma/client'
|
|
|
|
|
|
|
|
|
|
const globalForPrisma = globalThis as unknown as {
|
|
|
|
|
prisma: PrismaClient | undefined
|
|
|
|
|
}
|
|
|
|
|
|
Performance optimization, applicant portal, and missing DB migration
Performance:
- Convert admin dashboard from SSR to client-side tRPC (fixes 503/ChunkLoadError)
- New dashboard.getStats tRPC endpoint batches 16 queries into single response
- Parallelize jury dashboard queries (assignments + gracePeriods via Promise.all)
- Add project.getFullDetail combined endpoint (project + assignments + stats)
- Configure Prisma connection pool (connection_limit=20, pool_timeout=10)
- Add optimizePackageImports for lucide-react tree-shaking
- Increase React Query staleTime from 1min to 5min
Applicant portal:
- Add applicant layout, nav, dashboard, documents, team, and mentor pages
- Add applicant router with document and team management endpoints
- Add chunk error recovery utility
- Update role nav and auth redirect for applicant role
Database:
- Add migration for missing schema elements (SpecialAward job tracking
columns, WizardTemplate table, missing indexes)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 11:04:26 +01:00
|
|
|
function getDatasourceUrl(): string | undefined {
|
|
|
|
|
const url = process.env.DATABASE_URL
|
|
|
|
|
if (!url) return undefined
|
|
|
|
|
// Append connection pool params if not already present
|
|
|
|
|
if (url.includes('connection_limit')) return url
|
|
|
|
|
const separator = url.includes('?') ? '&' : '?'
|
|
|
|
|
return `${url}${separator}connection_limit=20&pool_timeout=10`
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-30 13:41:32 +01:00
|
|
|
export const prisma =
|
|
|
|
|
globalForPrisma.prisma ??
|
|
|
|
|
new PrismaClient({
|
Performance optimization, applicant portal, and missing DB migration
Performance:
- Convert admin dashboard from SSR to client-side tRPC (fixes 503/ChunkLoadError)
- New dashboard.getStats tRPC endpoint batches 16 queries into single response
- Parallelize jury dashboard queries (assignments + gracePeriods via Promise.all)
- Add project.getFullDetail combined endpoint (project + assignments + stats)
- Configure Prisma connection pool (connection_limit=20, pool_timeout=10)
- Add optimizePackageImports for lucide-react tree-shaking
- Increase React Query staleTime from 1min to 5min
Applicant portal:
- Add applicant layout, nav, dashboard, documents, team, and mentor pages
- Add applicant router with document and team management endpoints
- Add chunk error recovery utility
- Update role nav and auth redirect for applicant role
Database:
- Add migration for missing schema elements (SpecialAward job tracking
columns, WizardTemplate table, missing indexes)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 11:04:26 +01:00
|
|
|
datasourceUrl: getDatasourceUrl(),
|
2026-01-30 13:41:32 +01:00
|
|
|
log:
|
|
|
|
|
process.env.NODE_ENV === 'development'
|
|
|
|
|
? ['query', 'error', 'warn']
|
|
|
|
|
: ['error'],
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma
|