import { cleanEnv, str, port, num } from 'envalid';

export const env = cleanEnv(process.env, {
  NODE_ENV:             str({ choices: ['development', 'test', 'production'] }),
  PORT:                 port({ default: 3000 }),
  API_VERSION:          str({ default: 'v1' }),
  DB_HOST:              str(),
  DB_PORT:              num({ default: 3306 }),
  DB_NAME:              str(),
  DB_USER:              str(),
  DB_PASSWORD:          str(),
  DB_POOL_MIN:          num({ default: 2 }),
  DB_POOL_MAX:          num({ default: 10 }),
  JWT_SECRET:           str(),
  JWT_EXPIRES_IN:       str({ default: '8h' }),
  API_KEYS:             str(),
  CORS_ORIGINS:         str(),
  RATE_LIMIT_WINDOW_MS: num({ default: 900000 }),
  RATE_LIMIT_MAX:       num({ default: 100 }),
  IVA_RATE:             num({ default: 0.13 })
});
