import 'dotenv/config';
import { z } from 'zod';

const envSchema = z.object({
  PORT: z.coerce.number().int().positive().default(3080),
  OLLAMA_URL: z.url().default('http://localhost:11434/api/chat'),
  OLLAMA_MODEL: z.string().min(1).default('llama3.2:1b'),
  OLLAMA_TIMEOUT_MS: z.coerce.number().int().positive().default(180000),
  FINANCE_API_URL: z.url(),
  LOG_LEVEL: z.string().default('info'),
});

const result = envSchema.safeParse(process.env);

if (!result.success) {
  const details = result.error.issues.map((issue) => `${issue.path.join('.')}: ${issue.message}`).join('; ');
  throw new Error(`Invalid environment configuration: ${details}`);
}

export const env = result.data;
