import { z } from "zod"; // Minimal validated env for the foundation. When the Next.js app is added this // will move to @t3-oss/env-nextjs (the habbo-next pattern), but the data layer // only needs the DB connection + a couple of values today. const schema = z.object({ NODE_ENV: z.enum(["development", "test", "production"]).default("development"), DATABASE_URL: z.string().url(), DATABASE_POOL_SIZE: z.coerce.number().int().positive().default(40), DATABASE_IDLE_TIMEOUT_MS: z.coerce.number().int().positive().default(300_000), HOTEL_NAME: z.string().default("Atom"), }); type Env = z.infer; // SKIP_ENV_VALIDATION lets tooling (typecheck, tests that don't touch the DB) // import modules transitively without a populated .env. export const env: Env = process.env.SKIP_ENV_VALIDATION ? (process.env as unknown as Env) : schema.parse(process.env);