const { env } = process;

module.exports = {
  server: {
    url: env.SERVER_URL || 'http://localhost:10230',
    cms_api_url: env.SERVER_CMS_API_URL || 'http://localhost:10230',
    port: parseInt(env.SERVER_PORT, 10) || 10230,
    jwt_secret: env.SERVER_JWT_SECRET || 'testsecret',
    jwt_expire: parseInt(env.SERVER_JWT_EXPIRE, 10) || 60 * 60 * 24 * 30, // 30 day
    tos_url: env.SERVER_TOS_URL || 'http://localhost:10230',
    course_contract_url: env.SERVER_COURSE_CONTRACT_URL || 'http://localhost:10230',
    cms_limit_enabled: env.SERVER_CMS_LIMIT_ENABLED !== '0', // 啟用CMS routing 限制
    cms_limit_token: env.SERVER_CMS_LIMIT_TOKEN || '',
  },
  redis: {
    host: env.REDIS_HOST || 'localhost',
    port: parseInt(env.REDIS_PORT, 10) || 6379,
    password: env.REDIS_PASSWORD || '',
    prefix: env.REDIS_PREFIX || '',
    db: parseInt(env.REDIS_DB, 10) || 0,
  },
  sso: {
    authorized_endpoint: env.SSO_AUTHORIZED_ENDPOINT || '',
    token_endpoint: env.SSO_TOKEN_ENDPOINT || '',
    logout_endpoint: env.SSO_LOGOUT_ENDPOINT || '',
    client_id: env.SSO_CLIENT_ID || '',
    client_secret: env.SSO_CLIENT_SECRET || '',
  },
  database: {
    host: env.DB_HOST || 'localhost',
    port: parseInt(env.DB_PORT, 10) || 5432,
    user: env.DB_USER || 'postgres',
    password: env.DB_PASSWORD || '',
    dbname: env.DB_NAME || 'professor_x',
    pool_max: parseInt(env.DB_POOL_MAX, 10) || 5,
    pool_min: parseInt(env.DB_POOL_MIN, 10) || 2,
  },
};
