'use strict';

/**
 * 消息数据模型
 *
 * @author CaiAoLin
 * @date 2017/11/23
 * @version
 */
module.exports = app => {

    class Message extends app.BaseService {

        /**
         * 构造函数
         *
         * @param {Object} ctx - egg全局变量
         * @return {void}
         */
        constructor(ctx) {
            super(ctx);
            this.tableName = 'message';
        }

        /**
         * 获取消息数据
         *
         * @param {Number} startTime - 时间标记位(获取这个时间点之后的数据)
         * @return {Array} - 返回消息数据
         */
        async getMessage(startTime) {
            this.initSqlBuilder();
            this.sqlBuilder.setAndWhere('release_time', {
                value: startTime,
                operate: '>=',
            });

            // 获取用户数据
            this.sqlBuilder.setAndWhere('type', {
                value: 2,
                operate: '=',
            });

            const [sql, sqlParam] = this.sqlBuilder.build(this.tableName);
            const result = await this.db.query(sql, sqlParam);

            return result;
        }
    }

    return Message;
};
