const path = require('path');
const ExpirationUnits = require('./lib/expirationunits');


/*

  Copy this file and rename it to 'config.js' to customize the configuration.
  This will ensure your changes are not overwritten during updates.

  Any settings not configured in your own 'config.js' will use the default
  defined in 'config.defaults.js'.

*/


module.exports = {
  port: 3000,

  nodeModulesPath: path.join(__dirname, 'node_modules'),

  database: {
    path: path.join(__dirname, 'data'),
    autocompactionInterval: 60000
  },

  fileUpload: {
    path: path.join(__dirname, 'data', 'files'),
    url: '/files'
  },

  jwtSecret: 'change me to a random generated string',

  code: {
    // Use https://alex7kom.github.io/nano-nanoid-cc/ to check for the chance of collisions.
    // If a collision occurs, a new code will be generated and tested again for up to 100 times.
    alphabet: '1234567890abcdef',
    length: 8,

    defaultExpiration: null,
    maxExpiration: null

    /*
    To set a maximum expiration of 7 days:

    maxExpiration: {
      units: ExpirationUnits.Days,
      value: 7
    }

    defaultExpiration follows the same format
    */
  },

  // How often codes and uploads are checked for expiration and deleted
  cleanupInterval: 300,

  notifications: {
    // How often the notification queue is flushed, in seconds
    interval: 10,

    maxAttempt: 12,
    adminUrl: 'http://localhost:3001/admin/',

    mail: {
      from: '"Recv" <recv@localhost>',

      transport: {
        // passed directly to NodeMailer's createTransport. See nodemailer.com for more information.
        host: 'smtp.ethereal.email',
        port: 587,
        secure: false,
        auth: {
          user: 'recv',
          pass: 'test'
        }
      }
    }
  }
};