/**
 * 用户表
 */

import { mySqlTableClass } from "../../db/mysqlClass";
const Sequelize =require('sequelize')
const MySequesize = require('../../db/mysqlInit');  //导入创建的sequelize对象

let userModel;
export async function initModel() {
    var model = MySequesize.mysqlDB.define('users',{
        userId:{//用户id
            type:Sequelize.INTEGER, 
            primaryKey:true,  //表示主键
            allowNull:false,   //表示当前列是否允许为空，false表示该列不能为空
            unique:true    //表示该列的值必须唯一
        },
        name:{ type:Sequelize.STRING(100), allowNull:false }, //名称
        loginId:{ type:Sequelize.STRING(200)},//登录id
        pwd:{ type:Sequelize.STRING(200)},//密码
        roleId:{ type:Sequelize.INTEGER},//角色id 外键角色表id
        exchangeTime:{ type:Sequelize.INTEGER},//调休余额
        annualLeave:{ type:Sequelize.INTEGER},//年假余额
        departmentId:{ type:Sequelize.INTEGER },//部门id 外键部门表id
        token:{ type:Sequelize.Sequelize.STRING(200) }
    },{
        freezeTableName:true, //true表示使用给定的表名，false表示模型名后加s作为表名
        timestamps:false  //true表示给模型加上时间戳属性(createAt、updateAt),false表示不带时间戳属性
    });
    // //同步数据库，force的值为false，表若存在则先删除后创建，force的值为true表示表若存在则不创建
    userModel = await model.sync({});

}


/**
 * 登录账号查询用户
 * @param loginId 
 */
export async function findUserByLoginId(loginId:string) {
    let dataList = await userModel.findAll({ where:{loginId}});
    return dataList[0] || {};
}


/**
 * 登录账号查询用户
 * @param loginId 
 */
export async function findUserByUserId(userId:string) {
    let dataList = await userModel.findAll({ where:{userId:parseInt(userId)}});
    return dataList[0] || {};
}

/**
 * 修改数据
 * @param param 修改内容
 * @param select 修改条件
 * @returns 
 */
export async function updateData(param:object, select:object) {
    let res = await userModel.update(param, {where:select});
    console.log();
}
