import { createHash, randomBytes } from 'node:crypto';
import { PrismaClient } from '@prisma/client';
import { verifyAdminKey } from './admin-security';
const globalPrisma = globalThis as unknown as { tachyPrisma?: PrismaClient };
export const prisma = globalPrisma.tachyPrisma ?? new PrismaClient();
if (process.env.NODE_ENV !== 'production') globalPrisma.tachyPrisma = prisma;
export const digest = (s:string) => createHash('sha256').update(s).digest('hex');
export const createCode = () => randomBytes(18).toString('base64url');
export const createToken = () => randomBytes(32).toString('base64url');
export const THIRTY_DAYS = 30*24*60*60*1000;
export function adminKeyMatches(provided:string|null){
 return verifyAdminKey(provided, process.env.TACHY_ADMIN_KEY);
}
