/**
 * 请假表
 */

import { mySqlTableClass } from "../../db/mysqlClass";

const Sequelize =require('sequelize')
const MySequesize = require('../../db/mysqlInit');  //导入创建的sequelize对象
//创建StudentModel模型，该模型对应的表名是student

let askforleaveModel;
export async function initModel() {
    var model = MySequesize.mysqlDB.define('askforleave',{
        id:{
            type:Sequelize.INTEGER, 
            primaryKey:true,  //表示主键
            allowNull:false,   //表示当前列是否允许为空，false表示该列不能为空
            unique:true    //表示该列的值必须唯一
        },
        des:{ type:Sequelize.STRING(100) }, 
        startTime:{ type:Sequelize.DATE, allowNull:false },
        endTime:{ type:Sequelize.DATE, allowNull:false },
        userId:{ type:Sequelize.INTEGER, allowNull: false },//填报人
        approval:{ type:Sequelize.INTEGER, allowNull: false },//填报人
        time:{ type:Sequelize.INTEGER, allowNull: false },//填报人
        day:{ type:Sequelize.INTEGER, allowNull: false },//填报人
        type:{ type:Sequelize.INTEGER, allowNull: false },//填报人

        contractId:{ type:Sequelize.STRING(200),  },//合同号
       
        dateKey:{ type:Sequelize.DATE, allowNull:false },//填报时间
    },{
        freezeTableName:true, //true表示使用给定的表名，false表示模型名后加s作为表名
        timestamps:false  //true表示给模型加上时间戳属性(createAt、updateAt),false表示不带时间戳属性
    });
    // //同步数据库，force的值为false，表若存在则先删除后创建，force的值为true表示表若存在则不创建
    askforleaveModel = await model.sync({});

}


export async function addData(des:string, startTime:Date, endTime:Date, userId:string, time:number, type:number, day:number) {
    await askforleaveModel.create({des, startTime, endTime, userId, time, type, day});
}

export async function selectData(userId:string) {
    let dataList = await askforleaveModel.findAll({
        where:{userId}
    });
    return dataList;
}