import { z } from "zod"; const envSchema = z.object({ // Server PORT: z.coerce.number().default(4003), HOST: z.string().default("0.0.0.0"), NODE_ENV: z.enum(["development", "production", "test"]).default("development"), CORS_ORIGIN: z.string().optional(), SERVICE_NAME: z.string().default("platform-service"), // Database COSMOS_ENDPOINT: z.string().min(1, "COSMOS_ENDPOINT is required"), COSMOS_KEY: z.string().min(1, "COSMOS_KEY is required"), COSMOS_DATABASE: z.string().default("lysnrai"), // Auth JWT_SECRET: z.string().min(1, "JWT_SECRET is required"), // Blob Storage AZURE_BLOB_CONNECTION_STRING: z.string().optional(), AZURE_BLOB_ACCOUNT_NAME: z.string().optional(), AZURE_BLOB_ACCOUNT_KEY: z.string().optional(), // Features RATE_LIMIT_CONFIG_JSON: z.string().optional(), }).refine(data => data.AZURE_BLOB_CONNECTION_STRING || (data.AZURE_BLOB_ACCOUNT_NAME && data.AZURE_BLOB_ACCOUNT_KEY), { message: "Must provide AZURE_BLOB_CONNECTION_STRING or AZURE_BLOB_ACCOUNT_NAME/KEY" } ); export const config = envSchema.parse(process.env);