'use strict';

const path = require('path');
module.exports = appInfo => {
    const config = {};

    // 数据库配置
    config.mysql = {
        client: {
            // host
            host: '127.0.0.1',
            // 端口号
            port: '3306',
            // 用户名
            user: 'root',
            // 密码
            password: 'root',
            // 数据库名
            database: 'calculation',
        },
        // 是否加载到 app 上，默认开启
        app: true,
        // 是否加载到 agent 上，默认关闭
        agent: false,
    };
    // 表名前缀
    config.tablePrefix = 'zh_';

    // redis设置
    config.redis = {
        client: {
            host: '127.0.0.1',
            port: '6379',
            password: 'test',
            db: '0',
        },
        agent: true,
    };

    // should change to your own
    config.keys = appInfo.name + '_1503910434503_882';

    // view相关
    config.view = {
        mapping: {
            '.ejs': 'ejs',
        },
        root: [
            path.join(appInfo.baseDir, 'app/view'),
        ].join(','),
    };

    // 分页相关
    config.pageSize = 15;

    // 中间件
    config.middleware = ['urlParse'];

    // session配置
    config.session = {
        key: 'ZHC_SESS',
        maxAge: 3600 * 1000, // 1小时
        httpOnly: true,
        encrypt: true,
    };

    // session使用redis
    exports.sessionRedis = {
        name: 'session',
    };

    // 缓存时间
    config.cacheTime = 1800;

    // 安全性配置
    config.security = {
        csrf: {
            ignoreJSON: false, // 默认为 false，当设置为 true 时，将会放过所有 content-type 为 `application/json` 的请求
        },
    };

    // 发送短信相关
    config.sms = {
        account: '710030',
        password: 'w7pRhJ',
        extno: '10690587',
        authKey: 'fb5ef483e44b9556512a9febef376051',
    };

    // geetest验证码key
    config.geetest = {
        id: '23c50f6711966f744c93a70167c8e0a4',
        key: '9b67989994f9def437ea68bb495f0162',
    };

    // 前端验证
    config.jsValidator = {
        client: {},
        app: true,
    };

    // 上传设置
    config.multipart = {
        whitelist: ['.xls', '.xlsx', '.json'],
        fileSize: '10mb',
    };

    // 是否压缩替换前端js
    config.min = false;

    return config;
};
