import { z } from 'zod'; const envSchema = z.object({ PORT: z.string().default('3001'), DATABASE_URL: z.string().url(), REDIS_URL: z.string().url().optional(), JWT_SECRET: z.string(), JWT_ISSUER: z.string().default('next-edu-cloud'), OTEL_EXPORTER_OTLP_ENDPOINT: z.string().url().optional(), LOG_LEVEL: z.enum(['fatal', 'error', 'warn', 'info', 'debug', 'trace']).default('info'), NODE_ENV: z.enum(['development', 'production', 'test']).default('development'), }); export type Env = z.infer; export function loadEnv(): Env { const result = envSchema.safeParse(process.env); if (!result.success) { console.error('❌ Invalid environment variables:', result.error.flatten().fieldErrors); throw new Error('Invalid environment configuration'); } return result.data; } export const env = loadEnv();